gentoo 启动时出现内核恐慌(未找到根分区)

gentoo 启动时出现内核恐慌(未找到根分区)

内核崩溃 - 未同步:VFS:无法挂载根文件系统未知块(1,0)

grub配置文件

default 0
timeout 30
splashimage=(hd0,0)/boot/grub/splash.xpm.gz

title Gentoo Linux 2.6.34-r6
root (hd0,0)
kernel /boot/kernel-2.6.34-gentoo-r6 root=/dev/ram0 real_root=/dev/sda3
vim:ft=conf:

fdisk -l

Device Boot Start End Blocks Id System
/dev/sda1 * 1 5 40131 83 Linux
/dev/sda2   6 71 530145 82 Linux swap / Solaris
/dev/sda3   72 1044 7815622+ 83 Linux

所以我在启动 gentoo 时遇到了麻烦,我怎样才能将其从在 block(1,0) 处查找 root 改为在 block(0,0) 处查找,而 block(0,0) 正是我的 root 分区的创建位置?我以为将它设置为在 grub 中查找该 hdd 就足够了?这是我对可能导致问题的原因的初步猜测,但不确定为什么会出现此错误。请指教...

答案1

您正在尝试启动一个 init ram 块设备 (initrd),但是您还没有向 grub 提供 initrd,因此/dev/ram0不存在。

此外,initrd 是老式的。如果您正在构建新服务器,则应该使用 initramfs 而不是 initrd,并且您根本不应该指定root=,它会自动处理。

如果你不使用 initrd 或 initramfs,你应该将 更改为root=root=/dev/sda3删除real_root=

答案2

您是否在 /dev/sda3 (或您想要的任何文件系统)上创建了文件系统mkfs.ext3 /dev/sda3

你的内核是否包含该文件系统驱动程序(内核菜单中的 Y)以及不是模块(内核菜单中的 M)?如果没有,您必须从 livecd 启动并从 chroot 重新进行内核配置。

此外,您似乎正在尝试使用 /dev/ram0 作为根文件系统,但您指定的内核看起来并不是 genkernel。您也没有加载 initrd/initramfs,而这需要像 genkernel 一样从 /dev/ram0 启动。请尝试root=/dev/sda3

我认为你混淆了 genkernel 指南和正常指南...恕我直言,它们不应该在同一页面上,因为我完全这样做了。

答案3

尝试:

title Gentoo Linux 2.6.34-r6
kernel /boot/kernel-2.6.34-gentoo-r6 root=/dev/sda3
root (hd0,0)

并运行:

grub
root (hd0,0)
setup (hd0)
quit

然后尝试重新启动...

相关内容