我计划使用 UEFI 双启动 Windows 10 和 Arch Linux,目前我有一台机器使用 Windows 启动管理器启动,另一台机器通过 EFISTUB 启动 Arch。在新机器上,我更愿意保留 EFISTUB,然后通过按键启动到 Windows 10,或者打开启动菜单,几秒钟后默认为 Windows 10(这有点类似于这个问题仅适用于 Windows 和 Linux,而不是 Windows 和 Windows,并且按下按键时的默认操作系统与不按下按键时的默认操作系统不同)。
但是,如果无法实现这种精确设置,我还想知道是否可以通过另一个引导加载程序实现类似的“在启动过程中按下按键以打开其他操作系统”,或者甚至将 Windows 作为默认启动,将 Arch 作为按键启动或启动菜单访问。如果有必要,我也很乐意放弃 UEFI。
答案1
rEFInd
允许您完成此操作,如Unix 子论坛。如果您已将其安装为默认启动管理器,那么您可以编辑/boot/EFI/BOOT/refind.conf
以包含以下行timeout -1
这将告诉我们rEFInd
立即启动到默认选择并且不显示启动菜单,并且W
在启动过程中保持将启动第一个可用的 Windows 安装。
默认情况下,“默认选择”会查找上次启动的操作系统。要将其设置为 Arch 或任何其他 Linux 发行版,您必须设置第一个参数default_selection
更改为可以在其中找到的操作系统引导描述的子字符串menuentry
,或指定您定义的引导项中的引导项的 1-9 之间的数字。
default_selection "alpha,beta"
alpha
如果可用就会启动,beta
如果alpha
不可用但是可用就会启动beta
。
- 任何字符串,与启动描述匹配。请注意,rEFInd 匹配子字符串,因此您无需指定完整的描述字符串,只需指定一个唯一的子字符串。因此,default_selection vmlinuz 匹配 vmlinuz、boot\vmlinuz-5.3.0-22-generic 或任何其他包含 vmlinuz 的字符串。rEFInd 在找到第一个匹配项时停止搜索。由于 rEFInd 按文件修改时间降序对目录中的条目进行排序,因此如果您将目录(或分区根目录中的加载器的卷名)指定为 default_selection,则该目录中的最新加载器将成为默认加载器。在特殊情况下,单字符字符串与描述的第一个字符匹配,数字除外。
- 一个数字(1 到 9),在这种情况下,将启动引导列表中该位置的引导加载程序。例如,default_selection 2 将第二个引导项设为默认项。
对于 Arch 来说,如果 Windows 是系统上唯一的其他操作系统,那么vmlinuz
它将是一个足够具体的字符串。default_selection
每个操作系统的键盘快捷键通常是操作系统的首字母,但其他一些是预先定义的。
如果你对其他事情还不太清楚rEFInd
,可以查看文档,它内容全面,并且提供了很多例子。找到这里。