并非所有 Linux 安装都显示在 GRUB 中。如何修复?

并非所有 Linux 安装都显示在 GRUB 中。如何修复?

为了测试目的,我安装了 Natty。在安装过程中,我选择将其安装在“安全”安装的 10.10 旁边。

此安装似乎仍在那里,但我无法再从 GRUB 启动它。它只是没有显示。不过,启动 Natty 很顺利。

我怎样才能让它再次出现,以便我可以启动该安装?

sudo update-grub输出

Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.38-1-generic
Found initrd image: /boot/initrd.img-2.6.38-1-generic
Found linux image: /boot/vmlinuz-2.6.37-12-generic
Found initrd image: /boot/initrd.img-2.6.37-12-generic
Found memtest86+ image: /boot/memtest86+.bin
done

答案1

您是否尝试运行“sudo update-grub”来查看它是否检测到其他系统?

答案2

我也遇到过同样的问题。你知道我是怎么解决的吗?是的,一个痛苦的方法——手工解决。

让我向你解释一下我是如何做到的。我需要将此条目添加到/boot/grub/grub.cfg

在继续操作之前请备份文件

menuentry 'Ubuntu, with Linux 2.6.35-25-generic' --class ubuntu --class gnu-linux --> class gnu --class os {

recordfail

insmod part_msdos

insmod reiserfs

set root='(hd0,msdos7)'

search --no-floppy --fs-uuid --set ada5fcfd-84b7-4ffa-9c52-db45d17518a7

linux   /boot/vmlinuz-2.6.35-25-generic root=UUID=ada5fcfd-84b7-4ffa-9c52-db45d17518a7 ro   quiet splash
initrd  /boot/initrd.img-2.6.35-25-generic

}

菜单项名称可以是'Ubuntu, with Linux 2.6.35-25-generic'任何您选择的名称。

将 更改为set root='(hd0,msdos7)'set root='(hd0,msdosx)'代表x驱动器的分区号

insmod reiserfs可以更改为insmod ext4或您选择的文件系统(信息来自我刚才在 google 上搜索到的链接)。由于我的所有 / 分区都是 reiserfs,因此我不需要更改它。

ada5fcfd-84b7-4ffa-9c52-db45d17518a7最后两行中的 可以用分区 UUID 替换。您可以通过运行以下命令获取分区 UUID

ls -l /dev/disk/by-uuid

/boot/vmlinuz-2.6.35-25-generic是安装 ubuntu 的分区中的 /boot 文件夹中包含的一个文件。您的版本号可能不同。该文件应以 vmlinuz 开头

就像/boot/vmlinuz-2.6.35-25-generic同样如此/boot/initrd.img-2.6.35-25-generic

启动并选择此选项后,我发现有一个错误。 将其搁置几秒钟使其继续,现在我正在从我在 grub 列表中添加的安装条目进行输入。

脚注:GRUB2 仍然是个谜。Grub Legacy 有更简单的配置文件

相关内容