如何在远程双启动中切换操作系统?

如何在远程双启动中切换操作系统?

我想设置我的桌面具有双启动功能,以便我可以远程在两个操作系统之间切换。具体来说,是 Windows 10 和 Fedora 38。

我通常使用局域网唤醒来远程启动它,因此如果可以采用这种方式来选择要启动到哪个系统就太好了。

一些朋友建议制作脚本来从当前操作系统编辑启动顺序,然后重新启动,但没有人确定如何可靠地做到这一点,或者这是否容易被破坏。

我在这里看到的其他关于超级用户建议的问题编辑启动顺序或使用Linux 专用软件

编辑:我还没有设置双启动,我想事先了解如何解决这个问题

答案1

如果您使用的是 UEFI 固件,它同时支持多个引导加载程序(例如 GRUB 和 Windows 引导管理器),请更改BootNextEFI 变量以选择其中一个并重新启动。

(即唤醒机器;让其启动到默认操作系统;设置 BootNext;重新启动到其他操作系统。)

Linux 视窗
efibootmgr bcdedit /enum firmware
efibootmgr --bootnext NUM bcdedit /set {fwbootmgr} bootsequence GUID
efibootmgr --bootorder NUM… bcdedit /set {fwbootmgr} displayorder GUID…
rebootsystemctl 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 是第一个。
  • 通过在终端中输入来修改 grubsudo gedit /etc/default/grub以切换默认操作系统转换为相反的操作系统,例如从 Fedora 转换为 Windows。
  • 运行update-grub创建一个新的 grub.cfg。
  • 保存一份/boot/grub/grub.cfg使用新的启动顺序,例如启动grub

现在,编写一个脚本来将适当的文件复制到 grub.cfg 上,以便下次机器重新启动时,在设置的延迟(大约 10 秒)之后启动所选的操作系统。

另一个选择是重命名 EFI/boot 文件夹中的文件。

当然,如果需要密码,远程登录重新启动的机器就是另一个问题。

相关内容