banner
miaoer

miaoer

喵二の小博客 https://www.miaoer.net xLog 分站
tg_channel
telegram
bilibili

OpenWrt 檔案名稱格式,安裝固件前了解

前言#

在下載 OpenWrt 中文件名格式到底是什麼意思,以及我該怎麼選擇。簡單講講背後的邏輯,相信你看完了也能做出正確的選擇。

包括文件系統,版本號,格式

SquashFS#

先簡單了解一下 SquashFS 是一種只讀的壓縮文件系統,可以大大減小文件系統的大小。常見就是運用在嵌入式系統裡面,其中就包括路由器。

具體來說,SquashFS Overlay 包含兩個部分:

  • LOWER

這個是基礎的只讀 SquashFS 文件系統,包含了操作系統的所有默認文件。

  • UPPER

這個是一個可寫的 overlay,用來放置所有需要寫訪問的文件,比如配置文件等。


::: gallery
1
2
:::


當 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_64x64 是計算機 x86 架構的 64 位的鏡像,一般固件都不是 32 位;

R23.4v23.8 就是版本號的意思,越對的上就越新;

generic 就是通用版本的意思;

combined 是合成版的意思包括引導系統等;


xiaomi_redmi-router-ax6000fastrhino_r68s 是產品名字和型號,非 x86 機型;

mt798x-filogicramips-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


載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。