Fedora 15 - 内核恐慌未同步:VFS:无法在未知块 (0,0) 上挂载根

Fedora 15 - 内核恐慌未同步:VFS:无法在未知块 (0,0) 上挂载根

快点切入正题..

我在系统上安装了一份 Fedora 15 和 Ubuntu 11.04。我首先在 /dev/sda5 上安装了 ubuntu,然后在 /dev/sda 的开头安装了 grub2。接下来我在 /dev/sda6 上安装了 Fedora,并按照一些建议在 /dev/sda6 的开头安装了它的启动系统。之后,grub 无法显示 Fedora 安装的信息,但我进入了 ubuntu 并应用了 update-grub,重新启动后我可以进入 Fedora。问题是,当我将 Fedora 发行版从 2.6.38.6-26.rc1.fc15 更新到 2.6.40-4.fc15 并在之后的 ubuntu 上应用了 update-grub 时。当我想在 grub 上运行新内核时,出现了这个内核恐慌。我不知道该怎么办,因为我找到了很多关于这个问题的信息,但没有一个具体适用于这种情况。如果您需要更多详细信息,请询问。

更新:

这些是运行 update-grub 后创建的文件 /boot/grub/grub.cfg 中的条目。

### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Fedora (2.6.40-4.fc15.x86_64) (on /dev/sda6)" --class gnu-linux --class gnu --class os {
    insmod part_msdos
    insmod ext2
    set root='(/dev/sda,msdos6)'
    search --no-floppy --fs-uuid --set=root 459a7d80-cc8f-4ae0-89cf-49593a9221e2
    linux /boot/vmlinuz-2.6.40-4.fc15.x86_64 ro root=UUID=459a7d80-cc8f-4ae0-89cf-49593a9221e2 rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYTABLE=la-latin1 rhgb quiet
}
menuentry "Fedora (2.6.38.6-26.rc1.fc15.x86_64) (on /dev/sda6)" --class gnu-linux --class gnu --class os {
    insmod part_msdos
    insmod ext2
    set root='(/dev/sda,msdos6)'
    search --no-floppy --fs-uuid --set=root 459a7d80-cc8f-4ae0-89cf-49593a9221e2
    linux /boot/vmlinuz-2.6.38.6-26.rc1.fc15.x86_64 ro root=UUID=459a7d80-cc8f-4ae0-89cf-49593a9221e2 rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYTABLE=la-latin1 rhgb quiet
    initrd /boot/initramfs-2.6.38.6-26.rc1.fc15.x86_64.img
}

第一个内核不起作用。我看到的唯一区别是正常工作的内核有一个 initrd 指令。我尝试在非正常工作的内核中复制此指令,更改 kernerl 值,但没有成功。我希望这能有所帮助。

问候。

答案1

该行initrd /boot/initramfs-kernel.version.img告诉 grub 在哪里找到内核在启动时要使用的初始 RAM 磁盘。在启动过程中,Linux 内核会挂载 initrd RAM 磁盘,其中包含临时文件系统、一些内核模块以及启动过程所需的其他实用程序。如果由于某种原因无法挂载 RAM 磁盘,则会导致内核崩溃。

您可以通过查看 /boot 目录中是否存在 RAM 磁盘映像来检查升级过程中是否创建了正确的 RAM 磁盘映像。如果没有新内核的文件,或者该文件存在但不知何故损坏,您可以使用 dracut 命令生成一个新的

以下是 Fedora 15 的文档手动内核升级,IBM 文章关于 initrd以及一篇关于Linux 启动过程

答案2

如果 Ubuntu 找到了两个 Fedora 内核,并且您可以启动其中一个,但无法启动另一个,请在 GRUB2 提示符下比较这两个条目。在我看来,新的 Fedora 内核指向不同的分区。

答案3

我使用旧内核启动,然后尝试使用 dracut 启动新内核!至少尝试了几次,没有解决方案!所以我找到了另一种解决方法。

只需在终端中调用此命令:

yum reinstall kernel

这将重建最新的内核和(太棒了)一个新的 initrd,现在启动完成

答案4

我编辑了 grub.conf,boot=/dev/sda2在内核信息之前添加了它。您的分区可能不同。我花了三天的时间反复试验才弄清楚。

相关内容