GNU GRUB(GRUB)是一个来自 GNU 项目的启动引导程序。它允许用户在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统。
今年 6 月,由于上游 GRUB 引导程序在发布 2.06 版本时禁用 OS_Prober 后所带来的一些变化,Ubuntu 的开发者正在考虑如何在 Ubuntu 22.04 LTS 中管理双引导/多引导方案。
Ubuntu 依靠 OS-Prober 来检查其他已安装的操作系统,以便能够方便地在 GRUB 引导程序中显示它们。这意味着随着 Ubuntu 22.04 转向 GRUB 2.06,非 UEFI BIOS 用户不能再启动任何其他操作系统,而基于 UEFI 的系统如果通过 UEFI 引导程序,则仍然可以启动其他操作系统。这个问题主要是会阻碍那些仍然运行传统 BIOS 启动程序的用户使用已安装的系统。
默认禁用OS-Prober旨在通过操作系统检测功能解决潜在的安全问题,因为它在检查其他操作系统时,会检查并挂载系统上的所有分区,如果利用文件系统的漏洞,启用该功能会引发一个能被黑客利用的安全问题。
因此,面对安全和用户体验这个两难的选择下,Ubuntu 开发者也不得不考虑是否要重新启用 OS-Prober。
因为 OS_Prober 存在潜在安全风险,所以重新启用它并不是一个理想的解决方案,目前 Ubuntu 团队内部也在仔细思考这个问题,但不排除这个可能性。
Ubuntu 团队考虑的其他解决方案包括:创建一个新的 GRUB 模块,该模块只在用户查找系统时才执行 OS-Prober 的一些功能,用于增加一个链式启动选项专门处理用户需要启动 Windows 的需求;亦或是仅在安装系统时运行 OS-Prober,然后依靠该信息进行后续启动;最后一种可能性是,从以前的 Ubuntu 版本升级到 Ubuntu 22.04 时启用 OS-Prober。
我们还不清楚 Ubuntu 团队在上述选择中最终会如何进行抉择,在 Ubuntu 22.04 正式推出之前还有充足的考虑时间,可以访问 ubuntu-devel 了解更多详情。我们也将关注 GRUB 上游在此期间是否也会推出相应的解决方案。
本文地址:https://www.oschina.net/news/174751/ubuntu-22.04-multi-boot-changes