我正在尝试解决新安装的问题。我正在运行这个现有的发行版(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/sda1
,ls
我就会看到
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