设置 grub2 在工作日启动 Ubuntu,周末启动 Windows

设置 grub2 在工作日启动 Ubuntu,周末启动 Windows

使用来自此主题我已经能够安排在一天中的不同时间启动不同的操作系统。

但是,我希望获得社区的建议,关于如何在工作日启动 Ubuntu 而在周末启动 Windows,而不必自己反复试验,让笔记本电脑坏掉。

我的现有/boot/grub/custom.cfg样子如下:

insmod datehook

if [ $MINUTE -lt 10 ]; then PADDING="0"; else PADDING=""; fi
TIME=$HOUR$PADDING$MINUTE

if [ $TIME -ge 0 -a $TIME -lt 559 ]; then
  set default="Windows Boot Manager (on /dev/nvme0n1p2)"
fi

if [ $TIME -ge 1000 -a $TIME -lt 1659 ]; then
  set default="Ubuntu"
fi

if [ $TIME -ge 1700 -a $TIME -lt 2359 ]; then
  set default="Windows Boot Manager (on /dev/nvme0n1p2)"
fi

即使有人知道沙盒模式,可以让我通过反复试验找到很好的答案,但我也希望社区能提供一些最佳实践的意见。

谢谢你!

答案1

如果你想尝试 grub,你可以使用 grub 命令行(c当你在 grub 菜单中时点击)。你应该看到 grub 提示符:

grub>

如果你想安全地进行实验,我建议使用虚拟机(虚拟盒例如)。

进入 grub 命令行界面后,您可以像在 中一样输入命令/boot/grub/custom.cfg

grub> insmod datehook
grub> date

我还没有找到 datehook 模块文档;然而datehook 源代码表示$WEEKDAY变量可用。

grub> echo $WEEKDAY

所以你可以这样做

grub> if [ $WEEKDAY = "saturday" -o $WEEKDAY = "sunday"  ]; then
 echo "Setting Windows as default"
 set default="Windows Boot Manager (on /dev/nvme0n1p2)"
else
 echo "Setting Ubuntu as default"
 set default="Ubuntu"
fi

请注意 $WEEKDAY 可能已被本地化,因此在使用此代码之前请进行测试。

如果你没有使用 QWERTY 键盘,请按照以下说明在 grub 中设置键盘映射:如何更改 grub 命令行(grub shell)键盘布局?

相关内容