我有一个带有 Windows 7、Windows 10 和 OpenSUSE 的 UEFI 多重启动系统。
目前,当我想要启动 Windows 时,我首先需要在 Grub2 中选择 Windows 启动管理器,然后它会链式加载 Windows 启动管理器,然后我必须选择 Windows 版本。
不过,我希望能够直接在 Grub 中选择 Windows 版本,这样我就不需要两个引导加载程序菜单。
答案1
你应该能够通过使用单独的EFI 系统分区 (ESP)对于每个版本的 Windows。这需要进行一些分区调整。在全新设置中,您可以执行以下操作:
- 安装 Windows 的第一个版本(假设是 7)。在磁盘上留出未分配的空间以用于后续操作系统。
- 使用允许更改类型代码的分区编辑器,将步骤 #1 中创建的 ESP 和 Windows 分区的类型代码更改为其他值。例如,
gdisk
您可以将它们都更改为 8300(gdisk
Linux 文件系统的代码)。 - 安装第二个 Windows(10)。
- 安装您的 Linux 发行版(OpenSUSE)。
- 在 OpenSUSE 中,将您在步骤 2 中更改的类型代码改回其原始值。
理想情况下,在 Linux 安装期间设置 GRUB 的脚本将正确检测两个 Windows 版本,您现在应该能够启动两个版本的 Windows。如果不行,您可以手动自定义 GRUB 菜单或更改为其他启动管理器。
由于听起来您已经安装了所有内容,因此您可能能够通过将一个分区缩小一点(~550MiB)并在释放的空间中创建第二个 ESP 来调整此过程。然后,您可以调整类型代码并使用 Windows 修复实用程序为 Windows 安装新的引导加载程序。然后,您需要重新安装 GRUB 或将其重置为默认引导加载程序,然后更新 GRUB 条目,以便它可以引导任一 Windows 引导加载程序。
答案2
据我所知你不能这样做。(如果我错了,请告诉我怎么做。我也想知道!)。
但是,您可以避免手动进入 Windows bootlader 菜单,方法是将超时设置为很短的时间(0 秒),这样它就会自动继续使用默认启动选项。
您可以在 Windows 中通过“我的电脑”的属性、高级选项卡、启动选项进行配置。
(或类似的东西。我目前手边没有 Windows 系统可以检查。Windows 版本之间也存在一些细微的差异。)