and*_*ing 36 reboot grub2 dual-boot
我正在寻找一种在 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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
这将返回预期值,但在重新启动时,第一个菜单条目仍然突出显示。任何想法为什么这不起作用或其他解决方案的建议?
kar*_*k87 46
您必须先编辑您的 grub。
sudo gedit /etc/default/grub
Run Code Online (Sandbox Code Playgroud)搜索行GRUB_DEFAULT=0并将其修改为GRUB_DEFAULT=saved

使用以下命令更新您的 grub。
sudo update-grub
Run Code Online (Sandbox Code Playgroud)现在创建一个脚本文件,
sudo gedit switch-to-windows.sh
Run Code Online (Sandbox Code Playgroud)然后添加这些行。
#!/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
Run Code Online (Sandbox Code Playgroud)使脚本可执行。
sudo chmod +x switch-to-windows.sh
Run Code Online (Sandbox Code Playgroud)现在您可以从终端运行此脚本以重新启动到 Windows。
./switch-to-windows.sh
Run Code Online (Sandbox Code Playgroud)或者您可以在终端中执行以下命令
sudo grub-reboot X
Run Code Online (Sandbox Code Playgroud)其中 X 是您要从 GRUB 菜单重新启动的操作系统的菜单项位置。(从 0 开始作为第一个条目)
例如:
sudo grub-reboot 5

enz*_*tib 12
有一个 grub 命令可以这样做,它是grub-reboot.
它似乎只在您将 grub 配置为从最后保存的条目开始时才有效。因此,如果您还没有这样做,请修改/etc/default/grub并设置
GRUB_DEFAULT=saved
Run Code Online (Sandbox Code Playgroud)
然后更新 grub 配置文件:
sudo update-grub
Run Code Online (Sandbox Code Playgroud)
从现在开始,在每次启动时,grub 将启动最后使用的条目。
现在,如果您想预先设置下次启动的系统应该是什么,请使用
sudo grub-reboot ENTRY
Run Code Online (Sandbox Code Playgroud)
例如, whereENTRY可以是相对于菜单项的数字(从 0 开始编号),或确切的菜单项标题
sudo grub-reboot "Microsoft Windows XP Professional (on /dev/sda1)"
Run Code Online (Sandbox Code Playgroud)
此命令可以轻松用作启动器
#!/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
Run Code Online (Sandbox Code Playgroud)
但我不知道如何将其集成到系统菜单中。
您可以使用以下命令获取可用的菜单项标题
sed -n '/menuentry/s/.*\(["'\''].*["'\'']\).*/\1/p' /boot/grub/grub.cfg
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
62919 次 |
| 最近记录: |