如何远程控制 Grub 启动的操作系统?

Nat*_*man 16 grub2 dual-boot windows

考虑以下双引导设置:

  • Grub 安装到 /dev/sda
  • /dev/sda1 安装为 /boot
  • /dev/sda6 安装为 /
  • Windows 10 安装到 /dev/sdb2

就目前而言,Grub 在启动时默认选择 Ubuntu,我可以通过 SSH 远程登录。也可以在 Grub 启动时选择 Windows,我可以通过 RDP 远程登录。

问题是当我不在场时,我无法选择要启动的操作系统。

这个问题描述了一种让 Grub 自动引导最后选择的操作系统的方法。但是,这行不通。如果我选择Windows,我无法远程重启PC并启动Ubuntu。

有没有办法远程控制哪个操作系统启动?

Tak*_*kat 15

我们可以使用grub-reboot 重新启动到给定的 Grub 菜单引导项。这也可以通过远程会话完成,例如通过 SSH。

要启动到另一个操作系统,请选择它在 Grub 菜单中表示的位置,从0以下位置开始:

sudo grub-reboot <num>
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

在这种情况下,我的 Windows 就位4。所以当发出

sudo grub-reboot 4 && sudo reboot
Run Code Online (Sandbox Code Playgroud)

在我们在 Grub 设置中定义的超时后,机器将重新启动到 Windows。

从 Windows 重新启动后,机器将启动到默认操作系统。这可以定义为

sudo grub-set-default <num>
Run Code Online (Sandbox Code Playgroud)

为了完成这项工作,我们可能必须GRUB_DEFAULT=saved在我们的/etc/default/grub系统中定义它,但在我的系统上它也使用默认设置。

遗憾的是,这无法从 Windows 重新启动 Windows。


Fab*_*bby 5

由于takkat 的回答,另一个想法

  1. 默认启动是 Ubuntu
  2. grub-reboot NNWindows 启动项在哪里
  3. 重新启动 Windows 将使您回到默认启动:Ubuntu。

缺点:要重新启动 Windows,您必须重新启动两次:重新启动 Windows,让 Ubuntugrub-reboot N再次启动! :-(