我想设置我的桌面具有双启动功能,以便我可以远程在两个操作系统之间切换。具体来说,是 Windows 10 和 Fedora 38。
我通常使用局域网唤醒来远程启动它,因此如果可以采用这种方式来选择要启动到哪个系统就太好了。
一些朋友建议制作脚本来从当前操作系统编辑启动顺序,然后重新启动,但没有人确定如何可靠地做到这一点,或者这是否容易被破坏。
我在这里看到的其他关于超级用户建议的问题编辑启动顺序或使用Linux 专用软件
编辑:我还没有设置双启动,我想事先了解如何解决这个问题
答案1
如果您使用的是 UEFI 固件,它同时支持多个引导加载程序(例如 GRUB 和 Windows 引导管理器),请更改BootNext
EFI 变量以选择其中一个并重新启动。
(即唤醒机器;让其启动到默认操作系统;设置 BootNext;重新启动到其他操作系统。)
Linux | 视窗 |
---|---|
efibootmgr |
bcdedit /enum firmware |
efibootmgr --bootnext NUM |
bcdedit /set {fwbootmgr} bootsequence GUID |
efibootmgr --bootorder NUM… |
bcdedit /set {fwbootmgr} displayorder GUID… |
reboot ,systemctl reboot |
shutdown /r /t 0 |
例如,如果 GRUB 是默认条目(并启动到 Linux),但您只想选择一次 Windows 启动管理器,您可以执行以下操作:
# efibootmgr
BootCurrent: 0001
BootOrder: 0001,0000
Boot0000* Windows Boot Manager
Boot0001* Ubuntu
Boot001F USB HDD
# efibootmgr --bootnext 0000
# reboot
在 Windows 上,可以通过图形“Shift+Reboot”菜单执行相同操作,或使用它bcdedit
设置其“bootsequence”参数(使用“标识符”字段中的 GUID),两者都转换为 EFI BootNext。
这通常与 F8/F11 固件启动菜单一样可靠,因此请先确保它能正常工作。
另一方面,如果您使用 BIOS 模式(并且可能从 GRUB 菜单加载 Linux 和 Windows),则可以通过 GRUB 自己的配置获得类似的功能 - 在典型的 grub.cfg 中,与 EFI BootNext 等效的内容是$next_entry
,可以使用以下命令进行设置:
# grub-editenv set next_entry ENTRY_ID
在 Windows 上执行此操作很烦人,因此将 Linux 保留为默认选项更容易。
类似地,Windows 启动管理器也启用了“bootsequence”参数{bootmgr}
(不要与代表 EFI 参数的 {fwbootmgr} 混淆),因此如果您在 Windows 启动管理器中添加了 GRUB 条目,则可以将 Windows 设置为默认操作系统并根据需要切换到 Linux。(我还没有测试过。)
答案2
如果你通过 grub 启动,那么创建二grub.cfg 文件的版本。
- 保存一份/boot/grub/grub.cfg使用其当前的启动顺序,例如食物供给如果 Fedora 是第一个。
- 通过在终端中输入来修改 grub
sudo gedit /etc/default/grub
以切换默认操作系统转换为相反的操作系统,例如从 Fedora 转换为 Windows。 - 运行
update-grub
创建一个新的 grub.cfg。 - 保存一份/boot/grub/grub.cfg使用新的启动顺序,例如启动grub
现在,编写一个脚本来将适当的文件复制到 grub.cfg 上,以便下次机器重新启动时,在设置的延迟(大约 10 秒)之后启动所选的操作系统。
另一个选择是重命名 EFI/boot 文件夹中的文件。
当然,如果需要密码,远程登录重新启动的机器就是另一个问题。