双启动 Ubuntu 16.04 和 Debian 8.4

双启动 Ubuntu 16.04 和 Debian 8.4

在安装 Debian 的同时安装了 Ubuntu 16.04 后,我没有 Ubuntu 的启动选项。我该如何修复启动菜单?

答案1

如果您按住

转移

在加载 Grub 期间,然后选择您想要启动的发行版。

更多信息这里

答案2

根据问题,我怀疑“Ubuntu 没有启动选项”是指 Debian 先前安装的 GRUB 2 引导加载程序,而不是属于 Ubuntu 的引导加载程序。

与此相关,我的测试机器上有 Debian 8.2 Xfce 和 Xubuntu 14.04 的双启动设置。对于我的设置,安装如下所示。

  • 先安装 Debian,然后再安装 Xubuntu

  • 安装到硬盘本身的引导加载程序,即/dev/sda属于 Debian,它将不会检测到之后安装的 Xubuntu

  • 安装到其分区的引导加载程序属于 Xubuntu,当从 处的引导加载程序进行链式加载时,/dev/sda3它将检测到位于 分区的 Debian 。/dev/sda2/dev/sda

随后,我会说“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 值,可以通过blkid在 Debian 中以 root 身份运行来检查。查找如下所示的相应行/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 用户必须os-prober通过 APT 手动安装并重新运行update-grub。下次启动时将会看到 Ubuntu 的启动选项。

也可以看看Unix SE 上的这个答案,该内容自此日期起已于近期发布。

相关内容