双启动Ubuntu 16.04和Debian 8.4

在将Ubuntu 16.04与Debian一起安装后,我没有看到Ubuntu的启动选项。我该如何修复引导菜单?
2个回答

如果您在加载Grub时按住Shift键,将会出现Grub菜单,然后您可以选择要启动的发行版。
更多信息请点击这里

根据问题,我怀疑“Ubuntu没有启动选项”指的是之前由Debian安装的GRUB 2引导加载程序,而不是属于Ubuntu的引导加载程序。
在相关事项中,我的测试机上有一个Debian 8.2 Xfce和Xubuntu 14.04的双重启动设置。对于我的设置,安装如下所示:
- 首先安装Debian,然后安装Xubuntu - 安装到硬盘本身(即/dev/sda)的引导加载程序属于Debian,它不会检测到随后安装的Xubuntu - 安装到分区本身(即/dev/sda3)的引导加载程序属于Xubuntu,在从/dev/sda的引导加载程序链式加载时,它将检测到位于分区/dev/sda2的Debian
因此,我认为“Ubuntu没有启动选项”是因为Debian中的GRUB 2引导加载程序在某种程度上无法检测到随后安装的其他操作系统。然而,我未能重新配置Debian中的GRUB 2配置以实现检测。
解决方法:
解决方法是在/etc/grub.d/40_custom中手动添加新条目,然后在Debian中运行update-grub。尽管此示例是针对Xubuntu的,但同样适用于Ubuntu。
menuentry "Chainload to Xubuntu" {
    insmod ext2
    search --no-floppy --fs-uuid --set <UUID>
    chainloader +1
}

<UUID> 是分区的 UUID 值,可以通过以 root 身份在 Debian 上运行 blkid 命令来检查。找到相应的行,看起来像是 /dev/sda3: UUID="...",然后将值复制到引号之外(你的 Ubuntu 可能安装在不同的分区)。

chainloader +1 将在下一个分区中寻找引导加载程序。链式加载比手动指定 linuxinitrd 更方便,因为用户无需在 Ubuntu 更新内核版本时编辑这些行。

无论如何,当选择菜单时,GRUB 2 引导加载程序将重定向到属于 Xubuntu 的另一个 GRUB 2 引导加载程序,该程序将显示 Xubuntu 的启动选项。

解决方案找到(2016-06-06)

根本不需要重新配置 GRUB 2 配置。相关的配置文件已经存在于 /etc/grub.d/30_os-prober。与 Ubuntu 及其衍生版不同,默认情况下 Debian 缺少一个名为 os-prober 的软件包。

因此,Debian用户将需要通过APT手动安装os-prober并重新运行update-grub。下次启动时将会看到Ubuntu的引导选项。
另请参考最近发布的Unix SE上的这个答案

我会使用multiboot而不是chainloader。这样更简单,甚至可以在同一分区上双启动多个发行版。类似于以下内容的代码可能有效:menuentry 'Ubuntu' { multiboot (hd1,1)/boot/grub/core.img } - kasperd