GRUB2 崩溃:“没有这样的分区”

GRUB2 崩溃:“没有这样的分区”

我成功地在已有 8.04 的系统上安装了 10.04(当然是单独的分区)。它还在 MBR 上安装了 GRUB2。

发现不再有 menu.lst 后,我​​编辑了 /etc/grub.d/40_custom 以指向我的其他操作系统分区所在的位置:

menuentry "Ubuntu 8.04" {
set root=(hd0,0)
linux /boot/vmlinuz-2.6.24-28-generic
initrd /boot/initrd.img-2.6.24-28-generic
}

menuentry "Windows 7 Ultimate 64-bit" {
set root=(hd0,2)
chainloader (hd0,2)+1
}

GRUB2 显示包含这些条目的菜单,但是当我选择其中任何一个时,它拒绝加载它们,并说“没有这样的分区”。

我知道分区在那里,因为 10.04 的“磁盘工具”可以毫无问题地看到它们。

我如何让 GRUB2 识别它们?

答案1

问题解决了:答案是...与旧版 GRUB 不同,GRUB2 开始计算分区数从 1 开始,而不是从 0 开始

关键是以下关于如何将 menu.lst 条目“转换”为 40_custom 条目的说明,取自以下链接

https://help.ubuntu.com/community/Grub2#Creating%20the%20Custom%20Menu

The following entries from the GRUB menu listing must be changed for them to work:

    * title is changed to menuentry. The line must end with {
    * root is changed to set root=
    * kernel must be changed to linux
    * Any partition designation (sda4, sdb6) must be changed, as GRUB and GRUB 2 count the partitions differently. The first partition for GRUB 2 is 1, not 0. Devices still start the count at 0. 

答案2

您是否使用下列形式的命令使所编辑的 40_custom 文件可执行:

sudo chmod +x /etc/grub.d/filename

查看教程:

https://ubuntuforums.org/showthread.php?t=1195275

https://www.dedoimedo.com/computers/grub-2.html

当然,除了编辑 40_custom 文件之外,还有一系列步骤,如下所示:

  • 运行sudo update-grub以获取当前可用的内核。

  • 将所需的“menuentry”列表从复制/boot/grub/grub.cfg/etc/grub.d/40_custom该条目以“menuentry”开头的行开始,以包含“}”的行结束。

  • 添加您希望在启动菜单上看到的任何其他“菜单项”。

  • 如果需要,编辑“menuentry”行的标题(在引号之间)。不要更改“menuentry”行后面的行。每个条目都应以“menuentry”行开头,并以最后一行的“}”结尾。

  • 从 中删除可执行位/etc/grub.d/10_linux/etc/grub.d/20_memtest86+/etc/grub.d/30_os-prober
    从 中的任何文件中删除可执行位都/etc/grub.d将排除该文件被包含在 grub 更新中。
    代码:

    sudo chmod -x /etc/grub.d/10_linux /etc/grub.d/20_memtest86+ /etc/grub.d/30_os-prober
    
  • 跑步sudo update-grub

相关内容