私は独自のカーネル (4.19.37) を構築しており、ビルド ( make
) またはインストール ( make install_modules
+ make install
) 中に問題はありません。 を実行するまではすべて順調に進んでいるようですgrub2-mkconfig -o /boot/grub2/grub.cfg
。このコマンドを実行すると、grub は の既存vmlinuz-*
カーネルと新規カーネル/boot/
の両方と、それらに対応する を見つけますinitramfs-*.img
。ただし、その時点でシステムは無期限 (数時間以上) にハングします。 Ctrl+C
では停止しないようで、再起動する必要があります。この問題を調べたところ、問題になる可能性があるのは、リムーバブル ディスクのブート可能 OS の検出だけで、これを削除し、パーGRUB_DISABLE_OS_PROBER=true
に追加することで排除しました。/etc/default/grub
このSEの投稿どちらも役に立ちませんでした。
再起動すると、コマンドラインに戻ります。grub>
おそらく、grub2-mkconfig
grub 構成ファイルが終了せず破損しているためです。ここでは、問題なく古いカーネルと新しいカーネルの両方、および initramfs をロードできますが、ブートを実行するとカーネル パニックが発生します。
end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(1,0)
当然、ビルド プロセスによって作成された に何か問題があると推測していますinitramfs-4.19.37.img
。実験として、新しいカーネルをロードできるかどうかをテストしましたが、古い initramfs (4.19.10) を使用できました。確かに で起動しますemergency mode
。ただし、その逆、つまり古いカーネルを新しい initramfs で使用することはできません。つまり、新しい initramfs イメージに何か問題があるということです。
さらに賢くなって、私の最後の実験は、 で古い initramfs イメージと新しい initramfs イメージをマウントすることでしたmount
。両方ともエラーなしで正常にマウントされ、ファイル構造が同一のようです。また、カーネル ビルドの新しいファイルと古いファイルの両方を比較しましたが.config
、違いはわずかでした。
その他の注意点/観察事項:
- 上の画像では
List of all partions:
何も生成されていないので、ファイル システムの種類に問題があるのではないかと考えています。私のハード ドライブは ですがxfs
、? CPIO のファイル システムは何ですかinitramfs
? - コマンドラインでは
grub>
、ls /
で表示されるはずのものが出力されます/boot
。 これには、すべての myvmlinuz-*
およびinitramfs-*.img
fileが含まれます。 - 私のファイルシステムは
xfs
- 他のカーネルバージョンも試してみましたが結果は同じでした
- ビルドとインストールは 2 回成功しました。1 回は既存のカーネル (4.19.10) で、アップグレードでした。2 回目は同じカーネルで
low-latency
プリエンプション モデルを使用しました。そのとき何を違ったやり方で行ったのか、どうしてもわかりません。
最後の質問は、initramfs
これらのビルドのフォームの何が問題なのか、整合性を検証するために他に何ができるのか、ファイル システム.config
のカーネルをビルドするときに何か変更する必要があるのか、ということです。xfs
免責事項:これは実際にはこの質問ただし、問題を少し単純化しました。背景情報が関連している可能性があります。