カーネルパニック - 非同期:VFS:新しいカーネルのコンパイル後にルートfsをマウントできません。

カーネルパニック - 非同期:VFS:新しいカーネルのコンパイル後にルートfsをマウントできません。

それで私はこの問題についてしばらく研究し、数日間答えを探していて、今助けを求める時だと思いました。私はVMWare FusionでUbuntu 10.10を実行しており、3.2カーネルのコピーをダウンロードしてすべてのデフォルト設定でビルドしました。 make installを呼び出した後に新しいカーネルで起動しようとすると、次のメッセージが表示されます。

[    1.581916] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[    1.582260] Pid: 1, comm: swapper/0 Not tainted 3.2.4 #1
[    1.582444] Call Trace:
[    1.582552]  [<ffffffff815e7447>] panic+0x91/0x1a7
[    1.582666]  [<ffffffff815e75c5>] ? printk+0x68/0x6b
[    1.582799]  [<ffffffff81ad2152>] mount_block_root+0x1ea/0x29e
[    1.582929]  [<ffffffff81ad225c>] mount_root+0x56/0x5a
[    1.583047]  [<ffffffff81ad23d0>] prepare_namespace+0x170/0x1a9
[    1.583178]  [<ffffffff81ad16f7>] kernel_init+0x144/0x153
[    1.583304]  [<ffffffff815f45f4>] kernel_thread_helper+0x4/0x10
[    1.583436]  [<ffffffff81ad15b3>] ? parse_early_options+0x20/0x20
[    1.583570]  [<ffffffff815f45f0>] ? gs_change+0x13/0x13

再起動するたびにこの現象が発生しました。仮想マシンのハードドライブの種類を変更すると、少なくともGRUBを起動できますが、新しくコンパイルされたカーネルをロードしようとすると、上記のメッセージが表示されます。古いカーネルは以前と同じように動作します。私のルートが実行されているファイルシステムであるext4のサポートを確認してコンパイルしました。また、「sudo update-initramfs -c -k 3.2.4」を呼び出してinitrdファイルを作成しようとしましたが、役に立ちませんでした。

私はコンパイルがかなり標準的だと思います。

make menuconfig
make
make modules_install
make install
update-grub
reboot

これは一般的なステップです。オプションの観点から、私は主にデフォルト値に固執しました。関連がある場合、私のfstabは次のようになります。

proc            /proc           proc    nodev,noexec,nosuid 0       0
#UUID=c75eddd9-f4fa-49be-927b-8c2da7074135 /               ext4    errors=remount-ro 0       1                                                                                                                                                                                                                                                  
/dev/sda1                                  /               ext4    defaults          0       1
#UUID=5bc6915e-fdfa-479a-885f-ea03cb14f9cd none            swap    sw              0       0                                                                                                                                                                                                                                                    
/dev/sda5                                  none            swap    sw              0       0
/dev/fd0        /media/floppy0  auto    rw,user,noauto,exec,utf8 0       0

UUIDと/dev/sd*表記を使って試しました。とても残念なので、助けやアドバイスをいただきありがとうございます。

ありがとうございます。

答え1

カーネルで使用するinitrdをビルドするのを忘れました。実行update-initramfs -c -k kernelversionしてupdate-grub検索し、grub メニューに追加します。

答え2

ルートパーティションをマウントするために必要なすべてのドライバを組み込みましたか? I/Oコントローラドライバ、ファイルシステムドライバなどを意味しますか?

このエラーの意味は、カーネルがルートファイルシステムをマウントできないことです。

unknown block正確には何かを覚えていませんが、I / Oコントローラドライバがないことを意味しているようです。

ドライバはカーネルに組み込まれている必要があり、モジュールは機能しません(モジュールにアクセスするにはファイルシステムをマウントする必要があるため)。

関連情報