当前位置: 首页>>技术教程>>正文


如何从Ubuntu重启进入Windows?

, , ,

问题描述

我正在寻找一种在10.10 /Vista双启动系统上从Ubuntu重启进入Windows的方法。具体的用例是,我希望能够通过ssh进入正在运行的Ubuntu实例,并发出将直接启动重新启动到Windows的命令。

我找到了a promising blog post,但是它建议的脚本不起作用:

#!/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并没有多大帮助,但似乎可以将我引向正确的方向:

set the default boot entry for GRUB, for the next boot only

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。

    sudo gedit /etc/default/grub
    
  • 搜索行GRUB_DEFAULT = 0并将其修改为GRUB_DEFAULT = saved

  • 使用以下命令更新您的grub。

    sudo update-grub  
    
  • 现在创建一个脚本文件,

    sudo gedit switch-to-windows.sh
    
  • 然后添加这些行。

    #!/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
    
  • 使脚本可执行。

    sudo chmod +x switch-to-windows.sh
    
  • 现在,您可以从终端运行此脚本以重新启动进入Windows。

    ./switch-to-windows.sh
    
  • 或者您可以在终端中执行以下命令

    sudo grub-reboot X  
    
  • X是要从GRUB菜单重新启动的操作系统的菜单项位置(第一个条目以0开头)

例如:

  • 如果这是您的grub菜单,并且要引导进入Windows,则应将X的值设置为5。

  • sudo grub-reboot 5

  • 您也可以为上述命令创建启动器,以便双击启动器将重新启动进入Windows。

次佳回答

有一个grub命令就是这样做的,它是grub-reboot

它似乎仅在将grub配置为从最后保存的条目开始时才起作用。因此,如果您尚未这样做,请修改/etc/default/grub并设置

GRUB_DEFAULT=saved

然后更新grub配置文件:

sudo update-grub

从现在开始,在每次启动时,grub都会启动上一次使用的条目。

现在,如果要预先设置下次启动的系统,请使用

sudo grub-reboot ENTRY

例如,其中ENTRY可以是相对于菜单条目的数字(从0开始编号),也可以是确切的菜单条目标题,例如

sudo grub-reboot "Microsoft Windows XP Professional (on /dev/sda1)"

该命令可以很容易地用作启动器

#!/usr/bin/env xdg-open
#
# save as ~/Desktop/reboot-into-windows.desktop
#

[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Exec=sh -c 'gksu "grub-reboot 2" && gnome-session-save --shutdown-dialog'
Name=Reboot into Windows
Icon=gnome-panel-launcher

但我不知道如何将其集成到系统菜单中。

您可以通过以下方式获得可用的菜单条目标题:

sed -n '/menuentry/s/.*\(["'\''].*["'\'']\).*/\1/p' /boot/grub/grub.cfg 

第三种回答

我想,对于在本地使用ssh而不使用SSH的用户来说,我找到了一种更好的方法。

重新启动到通过统一启动器选择的特定系统的解决方案刚刚发布在webupd8上。参见http://www.webupd8.org/2011/05/custom-unity-launcher-to-reboot-in.html

我知道这并不是问题的实质,但是如果以后有人遇到类似的问题,这可能会有所帮助。

第四种回答

据我了解,这不是您想要的,但我想还很接近。只需点击链接webupdate article

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/7624.html,未经允许,请勿转载。