I'm looking for a way to reboot into Windows from Ubuntu on a 10.10/Vista dual boot system. The specific use case is that I would like to be able to ssh into my running Ubuntu instance and issue a command that will initiate a reboot directly into Windows.
I found a promising blog post, but the script that it suggests isn't working:
#!/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
isn't much help, but it seems to be leading me in the right direction:
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
This returns the expected value, but on reboot the first menu entry is still highlighted. Any ideas why this isn't working or suggestions for other solutions?
Best Answer
You have to edit your grub first.
Search for the line GRUB_DEFAULT=0 and modify it to GRUB_DEFAULT=saved
Update your grub using the following command.
Now create a script file,
Then add these lines.
Make the script executable.
And now you can run this script from terminal to reboot into windows.
Or you can execute the following command in your terminal
Where X is the menuentry position of the OS you want to restart in from the GRUB menu.(starting with 0 as the first entry)
For Example:
sudo grub-reboot 5