如何确保 grub 只安装一次?

如何确保 grub 只安装一次?

目前,我的一个分区上有 Windows,另一分区上有 Ubuntu。我想安装 Quimo,也可能安装 Mint 和/或 Lubuntu。

我如何确保只有 Ubuntu 有 Grub,而其他人也没有安装它,或者,如果更合适的话,确保 Ubuntu 是唯一使用的 Grub?

答案1

安装grub有两部分:资源文件和引导加载程序。每个操作系统安装都有自己的资源文件,但引导加载程序始终安装在主引导记录。实际上,稍后安装的引导加载程序将覆盖前者。从这个意义上说,您一次只能拥有一个功能齐全的 grub。

我想棘手的部分(也是您真正的问题)是,如何使多个操作系统以多重引导方式协同工作。这可以通过两种方式完成:

第一个是让主 grub 安装加载其他操作系统。这是通过修改 grub 配置(特别是文件/boot/grub/grub.cfg)以包含有关如何加载其他操作系统的说明来完成的。在某些发行版(我认为是 Ubuntu)上,这可以由操作系统探测器自动完成。这种方法不是很好,因为每次升级内核时都需要更改主安装,但它确实有效。

第二种是让辅助操作系统将其引导加载程序安装在分区而不是 MBR 上,并告诉主 grub 安装链式加载辅助安装。我有一个单独的问题对此(对我来说并没有真正起作用,所以如果你做到了,请添加答案)。这种方法很优雅,也是我的首选,但是设置它可能会很棘手,具体取决于您的运气。

答案2

作为关于如何执行 @phunehehe 所写内容的实用答案,我建议在其他发行版的安装过程中,您可以选择(通常在高级按钮下)取消选中在 MBR 上安装 Grub 的选项,因此您可以确定您当前的 Grub 没有被替换。

但是为了让 Ubuntu 的 Grub 能够识别新发行版,您必须使用类似这样的程序来探测磁盘上是否有其他操作系统安装操作系统探测器sudo grub-mkconfig -o /boot/grub/grub.cfg,当您运行时(当然是在备份文件之后grub.cfg),它会自动为您完成。并sudo update-grub在最后。

如果很难找到您的操作系统,您可以创建自定义文件 (40_custom) 并在其中指向您的其他操作系统内核和 initrd 文件,请参阅关于 Grub2 的 ubuntu wiki 文章它包含您需要的所有信息。

相关内容