我正在运行带有GPT的多引导笔记本电脑。操作系统包括Windows,Fedora,Debian和Ubuntu。
每个发行版都试图控制计算机的启动,但是每个发行版都有自己的小怪癖。例如,两个发行版的grub缺少Windows(无法启动到它),另一个发行版的grub缺少Fedora(无法启动到它),而另一个发行版的grub缺少Debian(无法启动到它)。
清理多少次/boot
然后sudo grub2-mkconfig -o /boot/grub2/grub.cfg
在当前操作系统和其他发行版上发布都没有关系。问题仍然存在。
我发现引导到每个操作系统而不会出现问题的方法是使用UEFI的加载程序。但是,如果我使用固件的加载器,我发现它仍然可以带我进入残破条目的grub菜单。
如何禁用对grub菜单项的探测,以使每个发行版的grub风味仅能找到自己,而没有其他风味?
在系统引导之前,将通过中的文件控制每个操作系统的GRUB的探测/etc/grub.d
。特别是,通常有一个名为的脚本30_os-prober
来控制OS探测过程。但是,这可能对配置造成很大的威胁。您需要运行update-grub
或grub-mkconfig
在调整探测脚本之后才能创建新的配置文件。
有一个名为GRUB Customizer的工具可以大大简化此类过程。它描述了这里,其他地方。我从未亲自使用过它,因此我无法直接提供更多详细信息,但这可能值得研究。
另一个选择是放弃GRUB,转而使用另一个适用于Linux的EFI引导加载程序。我自己的rEFInd可能相对容易设置和配置,因为它在启动时会扫描内核,因此在安装新内核时不需要重新配置。最大的警告是,安装了四个OS /发行版后,菜单最初会很混乱,包括三个单独的GRUB条目。因此,您需要通过编辑refind.conf
,取消注释该dont_scan_dirs
行以及添加条目以将这些多个GRUB条目排除在清单之外来对其进行清理。您可能还需要调整图标,如此处所述。为了舒适起见,您最终仍然可能有太多的内核条目。最好的方法是通过发行版的程序包管理器卸载未使用的内核。您可能需要mkrlconf.sh
在每个发行版中运行(rEFInd附带的脚本)来创建/boot/refind_linux.conf
文件,尽管有时并非必须这样做。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句