前言#
OpenWrt のファイル名形式が一体何を意味するのか、そしてどのように選択すべきかについて説明します。背後にある論理を簡単に説明しますので、読み終えたら正しい選択ができると信じています。
ファイルシステム、バージョン番号、形式を含む
SquashFS#
まず、SquashFS は読み取り専用の圧縮ファイルシステムであり、ファイルシステムのサイズを大幅に縮小できます。一般的には、組み込みシステム、特にルーターに使用されます。
具体的には、SquashFS Overlay は 2 つの部分から構成されています:
- LOWER
これは基本の読み取り専用 SquashFS ファイルシステムで、オペレーティングシステムのすべてのデフォルトファイルを含んでいます。
- UPPER
これは書き込み可能なオーバーレイで、設定ファイルなど、書き込みアクセスが必要なすべてのファイルを置くために使用されます。
::: gallery
:::
OpenWrt が特定のファイルにアクセスする必要がある場合、最初に UPPER を検索し、見つからない場合は LOWER の読み取り専用 SquashFS にアクセスします。ファイルを書き込む必要がある場合は、UPPER オーバーレイに書き込みます。
このように、読み取り専用の SquashFS と書き込み可能な UPPER オーバーレイを組み合わせることで、OpenWrt は書き込み可能なルートファイルシステムを実現し、同時に SquashFS の空間効率と信頼性の利点を保持しています。
このアーキテクチャにより、OpenWrt はファームウェアのサイズが小さく、システムが安全で信頼性が高いという利点を持ちながら、実行時の設定変更も可能です。
しかし、欠点としては、ほとんどのファームウェアには固定のストレージスペースがあり、一般的にはストレージスペースのサイズを拡張する操作が必要です。EXT4 パーティションを作成してマウントすることでストレージスペースを拡張します。
用途#
ここでは、CatWrt、Lean's LEDE、ImmoralWrt の 3 つのファームウェア名を用意しました。
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
ファイルは hyper-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-60MB に折りたたまれます;
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 バージョン(2023 年 8 月リリース)、適用アーキテクチャは x86 64 ビット、ファイルシステムは sqfs の組み合わせファームウェアで、EFI を使用してブート起動(高解像度起動)、img でパッケージ化され、最終的に gz で圧縮されています。
CatWrt.v23.8.mt798x-filogic-xiaomi_redmi-router-ax6000-squashfs-sysupgrade.bin
= CatWrt リリースの Openwrt の v23.8 バージョン(2023 年 8 月リリース)、適用チップ mt798x、ここでの x は mt79 のさまざまなプロセッサの集合を指し、Redmi AX6000 の sqfs ファームウェアで、UBOOT またはシステムのアップグレード中にアップグレードされます。
この記事は Mix Space によって xLog に同期更新されました
元のリンクは https://www.miaoer.net/posts/blog/format-openwrt