OpenWrt 文件名格式,安装固件前了解
前言
在下载 OpenWrt 中文件名格式到底是什么意思,以及我该怎么选择。简单讲讲背后的逻辑,相信你看完了也能做出正确的选择。
包括文件系统,版本号,格式
SquashFS
先简单了解一下 SquashFS 是一种只读的压缩文件系统,可以大大减小文件系统的大小。常见就是运用在嵌入式系统里面,其中就包括路由器。
具体来说,SquashFS Overlay 包含两个部分:
- LOWER
这个是基础的只读 SquashFS 文件系统,包含了操作系统的所有默认文件。
- UPPER
这个是一个可写的 overlay,用来放置所有需要写访问的文件,比如配置文件等。
当 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
是内核
分区布局
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 或者系统升级中升级。