如何远程控制哪个OS Grub引导?


10

考虑以下双重启动设置:

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

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

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

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

有什么方法可以远程控制启动哪个操作系统?


Windows端的@Takkat吗?(我可以运行Windows并用某种程序或脚本指示Grub引导Ubuntu吗?)
Nathan Osman

@Takkat哦,我明白您在说什么……可能有效。
内森·奥斯曼

您是否考虑过通过PXE引导?然后,您可以将引导配置保留在可以随时访问并进行相应调整的另一台服务器上,然后重新引导另一台计算机以启动指定的OS?
齐齐兹

Answers:


11

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

要引导到另一个操作系统,请从以下位置选择它在Grub菜单中所代表的位置0

sudo grub-reboot <num>

在此处输入图片说明

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

sudo grub-reboot 4 && sudo reboot

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

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

sudo grub-set-default <num>

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

可悲的是,无法从Windows重新启动Windows。


3

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

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

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


请提出更多想法。:)
AB

1

您可以根据时间使用grub设置默认操作系统,请参见可以计划GRUB吗?这意味着:在定义的时间段内自动更改默认的“输入”(自动登录)?。因此,例如,您可以将grub配置为在$ MINUTE为奇数时引导至Windows,而在$ MINUTE为偶数时引导至Linux。

insmod datehook
if [ $MINUTE -eq 0 -o $MINUTE -eq 2  -o $MINUTE -eq 4 -o $MINUTE -eq 6 -o $MINUTE -eq 8]; then
    set default="Ubuntu"
else
    set default="Windows"
fi

如果要特定的OS; 只是等到时间到了。

使用此方法应考虑到达Grub所需的时间。使用5分钟的时间范围可能更可靠。


我认为也可以在启动项之间交替。就像是 :

if [ $default = "Ubuntu" ]; then
  set default="Windows"
else
  set default="Ubuntu"
fi

将grub配置为记住上次引导的操作系统时(如何使grub2记住最后的选择?

如果您的PC无法引导至所需的操作系统,则只需重新引导即可。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.