我正在寻找一种在 10.10/Vista 双启动系统上从 Ubuntu 重新启动到 Windows 的方法。具体的用例是我希望能够通过 ssh 进入我正在运行的 Ubuntu 实例并发出一个命令,该命令将直接启动重新启动到 Windows。
我找到了一篇很有前途的博客文章,但它建议的脚本不起作用:
#!/bin/bash
WINDOWS_ENTRY=`grep menuentry /boot/grub/grub.cfg | grep --line-number Windows`
MENU_NUMBER=$(( `echo $WINDOWS_ENTRY | sed -e "s/:.*//"` - 1 ))
sudo grub-reboot $MENU_NUMBER
sudo reboot
man grub-reboot
没有太大帮助,但它似乎引导我朝着正确的方向前进:
为 GRUB 设置默认启动项,仅用于下次启动
WINDOWS_ENTRY=`grep menuentry /boot/grub/grub.cfg | grep --line-number Windows`
MENU_NUMBER=$(( `echo $WINDOWS_ENTRY | sed -e "s/:.*//"` - 1 ))
echo $MENU_NUMBER
这将返回预期值,但在重新启动时,第一个菜单项仍然突出显示。任何想法为什么这不起作用或对其他解决方案的建议?
你必须先编辑你的 grub。
搜索GRUB_DEFAULT=0这一行,修改为GRUB_DEFAULT=saved
使用以下命令更新您的 grub。
现在创建一个脚本文件,
然后添加这些行。
使脚本可执行。
现在您可以从终端运行此脚本以重新启动到 Windows。
或者您可以在终端中执行以下命令
其中 X 是您要从 GRUB 菜单重新启动的操作系统的菜单条目位置。(以 0 作为第一个条目开始)
例如:
sudo grub-reboot 5
有一个 grub 命令可以做到这一点,它是
grub-reboot
.它似乎仅在您将 grub 配置为从最后保存的条目开始时才有效。因此,如果您还没有这样做,请修改
/etc/default/grub
并设置然后更新 grub 配置文件:
从现在开始,在每次启动时,grub 都会启动最后使用的条目。
现在,如果您想提前设置下次引导的系统,请使用
其中
ENTRY
可以是与菜单条目相关的数字(从 0 开始编号),或确切的菜单条目标题,例如这个命令可以很容易地用作启动器
但我不知道如何将它集成到系统菜单中。
您可以通过以下方式获取可用的菜单条目标题
我想我已经找到了一种更好的方法,让那些想要在没有 ssh 的个人电脑上也能做到这一点的人更好。
刚刚在 webupd8 上发布了通过统一启动器选择的特定系统重新启动的解决方案。见http://www.webupd8.org/2011/05/custom-unity-launcher-to-reboot-in.html
我知道这不完全是问题所在,但如果以后有人有类似的问题,这可能会有所帮助。
所以对我来说最好的是用
grub-reboot
命令创建以下脚本我不确定这是否 100% 也适用于 ubuntu,但我曾经在 centos 机器上完成这项工作
基本上你必须告诉 grub 下一个应该运行的 grub.conf 中的哪个 id #。id # 可以通过以下方式找到
所以在我的情况下,这将例如输出“4-1”,因为我的 grub.conf 中的第四个条目包含文本“Windows”。(将其替换为您要使用的实际条目名称(也是部分名称)。然后您可以将其提供给 grub,如下所示:
并且在下次重新启动时,它应该会自动启动您告诉它的条目。
这一切都可以放在一个脚本中,如下所示:
该脚本将自动确定 grub.conf 中的哪个条目对应于文本“Windows”,并将其提供给 grub 以告知下次启动时应加载的内容并重新启动您的电脑。
对于 gui,您可以例如在桌面上添加一个快捷方式图标来实现这一点。
只需编辑
/boot/grub/grub.cfg
并更改默认条目以指向您要引导的条目。该值可以是条目的序号(第一个从零开始),也可以将所需条目的完整标题放在引号中。