組み込みの ARM ボードがあり、initramfs を試しています。
私のルート ファイルシステムは EXT4 であり、EXT4 ドライバーはカーネルに組み込まれている(モジュールとしてコンパイルされていない) ため、カーネルを直接起動してルート ファイルシステムをマウントできます。initramfs は必要ありません。もちろん、 initramfsがないと、カーネルはファイルシステムの UUID を認識しないため、カーネルのドキュメントに記載されているように、パーティション識別子 PARTUUIDでルートを指定しました。問題のブート引数は次のようになります: root=PARTUUID=7acc80f1-01 これは問題なく動作します。
ここで、initramfs を使用して同じカーネル バージョンを起動しようとすると、システムが起動しません。ルートデバイスが見つからないと不平を言います。PARTUUID の代わりにファイルシステム UUIDを使用するようにブート引数を変更すると、再び動作します: root=UUID=c9fd552c-921c-4ddb-bb46-fe557943d311 そもそもカーネルが PARTUUID をネイティブにサポートしているのに、initramfs を使用すると起動オプションが少なくなるのはなぜですか?
initramfs が使用されているかどうかに関係なく、両方のセットアップで機能する独自の方法でルートを指定したいと思います。/dev/sda1 などのデバイス名は、ブート中に変化する可能性がある (複数のディスクが接続されている) ため、オプションではありません。
手がかりはありますか?
よろしくお願いいたします。
ティモ
PS: カーネルのバージョンはメインライン 4.4.16 です。U-Boot は 2015.5 です。ディストリビューションは Debian 8 です。