前言#
在下载 OpenWrt 中文件名格式到底是什么意思,以及我该怎么选择。简单讲讲背后的逻辑,相信你看完了也能做出正确的选择。
包括文件系统,版本号,格式
SquashFS#
先简单了解一下 SquashFS 是一种只读的压缩文件系统,可以大大减小文件系统的大小。常见就是运用在嵌入式系统里面,其中就包括路由器。
具体来说,SquashFS Overlay 包含两个部分:
- LOWER
这个是基础的只读 SquashFS 文件系统,包含了操作系统的所有默认文件。
- UPPER
这个是一个可写的 overlay,用来放置所有需要写访问的文件,比如配置文件等。
::: gallery
:::
当 OpenWrt 需要访问某个文件时,它会先在 UPPER 中查找,如果没有找到访问 LOWER 中的只读 SquashFS。如果需要写文件就写入到 UPPER overlay 当中。
这样通过结合只读的 SquashFS 和可写的 UPPER overlay,OpenWrt 实现了一个可写的根文件系统,同时也保持了 SquashFS 的空间效率和可靠性优势。
这个架构让 OpenWrt 具有了固件大小较小、系统安全可靠的优点,同时又可以进行一些运行时的配置修改。
但是缺点就是大部分的固件都会有固定的存储空间,在一般情况下需要对存储空间大小进行扩容操作,通过创建 EXT4 分区挂载来对存储空间进行扩容。
用途#
我这里准备了三款固件的名字,分别是 CatWrt,Lean's LEDE 以及 ImmoralWrt
CatWrt.v23.8.x86_64-squashfs-combined-efi.img.gz
openwrt-x64-R23.4.1-squashfs-combined-efi.img.gz
immortalwrt-23.05.1-x86-64-generic-squashfs-combined-efi.img.gz
CatWrt.v23.8.mt798x-filogic-xiaomi_redmi-router-ax6000-squashfs-sysupgrade.bin
CatWrt.v23.2.ARM-rockchip-armv8-fastrhino_r66s-squashfs-sysupgrade.img.gz
不同固件名字很容易看出来,这里就不过多赘述;
名字#
x86_64
和 x64
是计算机 x86 架构的 64 位的镜像,一般固件都不是 32 位;
R23.4
和 v23.8
就是版本号的意思,越对的上就越新;
generic
就是通用版本的意思;
combined
是合成版的意思包括引导系统等;
xiaomi_redmi-router-ax6000
和 fastrhino_r68s
是产品名字和型号,非 x86 机型;
mt798x-filogic
和 ramips-mt7621
指芯片架构或名字亦或者系列;
启动 & 引导#
我们推荐所有新的机器都使用 EFI 进行启动,后续教程基本上都是基于 EFI 来写;
新机器默认开启 UEFI 你装 BIOS 版本反而会卡引导,具体可以询问售卖机器的客服如何开启 UEFI。
squashfs-combined
为传统 BIOS 引导启动;
squashfs-combined-efi
为 EFI 引导启动;
EFI 是比 UEFI 的更老版本支持高清启动,老硬件或着虚拟机可以考虑传统 BIOS 引导启动比较方便,一般的 BIOS 版本不会额外标注;
格式#
rootfs.img.gz
文件是适用于 Docker,LXC 容器的文件,可以将系统容器化部署;
img.gz
文件是压缩文件,可以解压成 img 文件,常见于下载时用于减少网络负载,在线升级时搭配安装;
img
文件是物理机单系统或者虚拟机写盘使用的镜像,是最常见的格式;
建议使用 IMG 写盘工具 在 WEPE 中进行安装或者 StarWind V2V Converter 在虚拟机中安装;
vmdk
文件是 VMware 虚拟机的虚拟硬盘文件,其他系统也可以用 (PVE);
qcow2
文件是 PVE 或 KVM 虚拟机的虚拟硬盘文件,导入到 PVE 转换 RAW 文件即可使用;
vhdx
文件是 hype-v 虚拟机的虚拟硬盘文件,适用于宿主机是 Windows Pro 专业版;
bin
为二进制镜像文件
initramfs-kernel
是临时文件系统包括了 Linux 核心完成基础功能,用于在系统中更新 squashfs 完整版覆盖;
squashfs
是使用 SquashFS Overlay 的文件系统
rootfs0
是根文件系统,类似于 sqfs 但是没有内核
kernel1
是内核
分区布局#
::: warning
仅使用于 mt798x,需要 UBOOT 支持,这里以 Redmi AX6000 举例。
:::
stock layout
原版 OpenWrt 分区,a&b 最小的分区,打对折大概 50-60 MB;
OpenWrt U-Boot layout
大分区版本 110MB,CatWrt 使用的这个;
custom U-Boot layout
也可以叫 ubootmod 比大分区版本还大一点 122.5MB,不包含坏块管理 NMBM。
结合起来#
CatWrt.v23.8.x86_64-squashfs-combined-efi.img.gz
= CatWrt 发行版 Openwrt 的 v23.8 版本 (23 年 8 月发布),适用架构 x86 64 位,文件系统是 sqfs 的组合固件,使用 EFI 进行引导启动 (高清启动),使用 img 封装,最终由 gz 压缩。
CatWrt.v23.8.mt798x-filogic-xiaomi_redmi-router-ax6000-squashfs-sysupgrade.bin
= CatWrt 发行版 Openwrt 的 v23.8 版本 (23 年 8 月发布),适用芯片 mt798x 这里的 x 是指 mt79 下的各种处理器集合,是红米 AX6000 的 sqfs 固件,在 UBOOT 或者系统升级中升级。
此文由 Mix Space 同步更新至 xLog
原始链接为 https://www.miaoer.net/posts/blog/format-openwrt