如何远程控制哪个OS Grub启动?

请考虑以下双启动设置:

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

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

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

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

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

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

要引导到另一个OS,请从0开始选择它在Grub菜单中表示的位置:

 sudo grub-reboot  

在此处输入图像描述

在这种情况下,我的Windows位于第4 。 发行时

 sudo grub-reboot 4 && sudo reboot 

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

从Windows重新启动后,计算机将启动到默认操作系统。 这可以用

 sudo grub-set-default  

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

遗憾的是,无法通过Windows重新启动Windows。

另一个想法归功于takkat的回答 :

  1. 默认启动是Ubuntu
  2. grub-reboot N其中N是Windows启动项
  3. 重新启动Windows将使您恢复默认启动:Ubuntu。

缺点 :要重新启动Windows,您必须重新启动两次:重新启动Windows,让Ubuntu启动并grub-reboot N启动grub-reboot N🙁