Grub 错误 15(未找到文件)

Grub 错误 15(未找到文件)

我正在尝试解决新安装的问题。我正在运行这个现有的发行版(Ubuntu),并/dev/sdb安装了新的操作系统 Gentoo /dev/sda。我很高兴我不厌其烦地将它们设置在不同的磁盘上,因为我无法启动到新的操作系统。我得到的只是 grub 错误 15“找不到文件”。它还给出了我已验证正确的 UUID:

sudo blkid
/dev/sda1: LABEL="boot" UUID="b891774a-0b2d-4ab4-bcfa-23a11a97cae5" TYPE="ext2" 
/dev/sda2: UUID="fc34999a-e85d-4c7b-8775-30510eb4c396" TYPE="swap" 
/dev/sda3: LABEL="main" UUID="65a90a0d-a651-4215-8552-0c1859ab61dd" TYPE="ext4"

/dev/sdb新操作系统的menu.lst (on ) 是

title Gentoo Linux 3.10.7-r1
uuid b891774a-0b2d-4ab4-bcfa-23a11a97cae5
#root (hd0,0)
kernel /kernel-3.10.7-gentoo root=UUID=65a90a0d-a651-4215-8552-0c1859ab61dd

我也尝试过

kernel /boot/kernel-3.10.7-gentoo root=UUID=65a90a0d-a651-4215-8552-0c1859ab61dd

但由于 UUID 直接进入启动分区,我认为这是错误的。

内核应该是正确的;如果我登上去dev/sda1ls我就会看到

grub  kernel-3.10.7-gentoo

有什么想法我做错了吗?这可能是非常基本的;我只使用 Linux 几年,除了在chroot.


我应该提到我还安装了 grub2,dev/sda1尽管我还没有做到这一点:它只是显示 grub“命令行”。

答案1

我认为问题出在 root (hd0,0) 上。你说这是一个sdb,所以尝试取消注释你的root...并将其设置为root (hd1,0)

答案2

我同意@rMistero 关于该错误的观点。所以现在 grub 从 mbr 和分区引导记录引导,但无法加载基本模块,因为它们无法在该分区的预期位置(/boot/grub)找到它。因此,重新安装 grub 可以解决这个问题,最好的解决方案是启动到 grub 旧版所有者操作系统 Gentoo(我说得对吗?),然后重新安装 grub。
当您有 grub2 可用时,请在 grub2 提示符下一一运行以下命令。

set UUID=65a90a0d-a651-4215-8552-0c1859ab61dd

search -u $UUID --set=root
linux /kernel-3.10.7-gentoo root=UUID=$UUID
boot

如果它不起作用,请给出上述命令以及此命令 search -u $UUID和 的输出search -l main。还告诉 Ubuntu 和 Gentoo 的版本、存储设备的数量、每个存储设备上安装的操作系统、是否安装了 Windows

答案3

看起来您正在 ubuntu 上使用 grub-legacy,这是启动时使用的引导加载程序。

This error is returned if the specified file name cannot be found, 
but everything else (like the disk/partition info) is OK.
Frequently, the error notes a missing kernel image file. 
Make sure that the file it is referring to exists on your boot partition. 

以下是不正确的,您需要定义一个从中启动的分区(使用 root 参数)。这里root被注释掉了。

uuid b891774a-0b2d-4ab4-bcfa-23a11a97cae5
#root (hd0,0)

删除 uuid 条目并取消注释root (hd0,0)

如果gentoo内核不在/dev/sda1上,那么你需要更改(hd0,0)到正确的分区或将内核复制到那里。

如果 gentoo 内核存在于 /dev/sda1 中,那么您需要确认使用的是什么 grub。由于您在 sdb 上的 MBR 上启动,我想知道 BIOS 将驱动器视为什么。 ubuntu 的根 hdX 是什么,是 (hd1,0) 吗?

既然你已经在 Gentoo 上安装了 grub2,你也许可以使用它。

 # Gentoo entry in menu.lst ( in Ubuntu)
 title Gentoo
 root (hd0,0)
 kernel /boot/grub/core.img

https://wiki.gentoo.org/wiki/GRUB_Error_Reference#Grub_Error_15

答案4

对于 grub2,您可以发出grub.cfg以下命令来生成正确的结果:

grub2-mkconfig -o /boot/grub2/grub.cfg

它将拾取您的内核并使用/etc/grub.d/配置文件中的模板将它们放入配置中/etc/default/grub。不要忘记写入正确的 MBRgrub2-install

相关内容