Linux: フォールバックでルートファイルシステムを指定する

Linux: フォールバックでルートファイルシステムを指定する

必要なことはすべて initrd/initramfs を使って実行できることはわかっていますが、可能であればこのオプションは避けたいと思います。

「通常の」動作する rootfs (組み込みシステムの SD カード上) が必要です。何らかの理由で起動が成功しない場合 (例: カーネルがこのシステムを正常にマウントできない場合)、「通常の」ファイルシステムを復元して再起動する「リカバリ」 rootfs (フラッシュ上の SquashFS) からの起動を試行する必要があります。

initramfs に頼らずにこのようなものが利用可能でしょうか?

initrd/initramfs が必要ない理由は、フラッシュ サイズの制限のためです。

答え1

「リカバリ」システムは initramfs と同じ目的で使用できます。ほぼ同じものです。

もちろん、initramfs と同じように RAM にロードされるわけではありませんが、それが唯一の違いであり、同じ目的を果たすことができます。つまり、実際の rootfs をマウントし、問題がないか確認し、pivot_root を実行して、/sbin/init を実行します。マウントが失敗した場合は、リカバリを実行します。

(逆に、デバイスにリカバリ ツールを格納するのに十分な RAM があれば、squashfs ファイルシステムを削除し、代わりにすべてのリカバリ ツールを initramfs に配置することもできます。)

関連情報