Openwrt编译后生成的固件区别
Openwrt编译后生成的固件区别
固件格式:
-
kernel:内置最简文件系统的Linux内核,适用于首次安装或故障恢复
-
sysupgrade:从本来就是openwrt的固件基础上升级,或者无刷机引导限制的机器上直接刷入此格式文件
-
factory:用于从设备的原厂固件刷入factory,再刷入breed之类不死使用
-
ext4 :可以扩展磁盘空间大小
-
squashfs :可以使用 重置功能(恢复出厂设置)
-
efi : efi引导,非BIOS引导(优先使用efi固件,无法启动时再换无efi固件)
-
rootfs :不带引导,可自行定义用grub或者syslinux来引导
-
combined :带引导
-
.img :物理机使用
-
.vmdk :虚拟机 ESXi/VMware 使用
-
.qcow2 :虚拟机 PVE 使用
-
.vdi :虚拟机 VirtualBox 使用
-
.vhdx :虚拟机 Hyper-V 使用
-
.tar:容器 Docker、LXC 使用
make menuconfig命令后,配置界面Openwrt configuration-->Target images中可以配置自己所需的固件版本,可以同时配置多个,将会生成对应的固件版本
常见编译固件介绍
1. ext4-combined-efi.img.gz
-
使用可读写的ext4分区,没有squashfs的只读文件系统
-
根分区可以使用更大的驱动器(e.g. SSD/SATA/mSATA/SATA DOM/NVMe/etc)进行扩展
-
没有故障安全模式和出厂重置等功能,这些功能需要squashfs的支持
-
自带引导分区和根分区以及主引导记录 (MBR) 区域以及更新的 GRUB2
-
支持efi引导
2. ext4-combined.img.gz
-
同1,但不支持efi引导
3. ext4-rootfs.img.gz
-
只有根分区的镜像,重新安装不会覆盖引导分区和主引导记录 (MBR),
-
由于不带引导分区,首次安装需要自行使用grub或者syslinux来引导
-
使用ext4分区
4. kernel.bin
-
独立的内核
5. squashfs-combined-efi.img.gz
-
squashfs是个只读的文件系统, 相当于windows的ghost, 支持故障安全模式和出厂重置等功能
-
包含一个只读的根文件系统和一个存储设置以及安装软件可读写的分区
-
组合模式,只有不到
100MB
的空间来存储额外的包和配置,并且无法扩展根分区 -
支持efi引导
6. squashfs-combined.img.gz
-
同5,但不支持efi引导
7. squashfs-rootfs.img.gz
-
没有查到这个是做什么,有知道的大佬可以说下
8. rootfs.tar.gz
-
所有的文件都在根目录下
-
不带引导,需要自行使用grub或者syslinux来引导
建议:
-
需要扩展分区使用: ext4-combined-efi.img.gz和ext4-combined.img.gz
-
不需要扩展分区使用: squashfs-combined.img.gz和squashfs-combined-efi.img.gz