Translation(s): English - Italiano
GrubReboot
GRUB contains the ability to reboot into a specified menuentry once. This can be useful with DualBoot / a different Kernel and no direct access to the system.
As an example on how to use grub-reboot(8) with submenus we look at the following output.
# awk -F\'\|\" '/(submenu|menuentry) / { printf "%s\t%s\n", $1, $2}' /boot/grub/grub.cfg menuentry Debian GNU/Linux submenu Advanced options for Debian GNU/Linux menuentry Debian GNU/Linux, with Linux 6.6.13-amd64 menuentry Debian GNU/Linux, with Linux 6.6.13-amd64 (recovery mode) menuentry Debian GNU/Linux, with Linux 6.6.9-amd64 menuentry Debian GNU/Linux, with Linux 6.6.9-amd64 (recovery mode) menuentry Memory test (memtest86+x64.bin, serial console)
This will result in the following MENU_ENTRYs we can use. The submenu entry won't work but is listed here for clarification.
0 menuentry Debian GNU/Linux 1 submenu Advanced options for Debian GNU/Linux 1>0 menuentry Debian GNU/Linux, with Linux 6.6.13-amd64 1>1 menuentry Debian GNU/Linux, with Linux 6.6.13-amd64 (recovery mode) 1>2 menuentry Debian GNU/Linux, with Linux 6.6.9-amd64 1>3 menuentry Debian GNU/Linux, with Linux 6.6.9-amd64 (recovery mode) 2 menuentry Memory test (memtest86+x64.bin, serial console)
So if we want to boot the "6.6.9" kernel the next time we boot the system.
# grub-reboot '1>2'
To check what is currently configured you can use grub-editenv.
# grub-editenv - list next_entry=1>2
No further configuration is necessary for booting a different boot-entry once.
Configuration
With GRUB v1
In your /boot/grub/menu.list you need to set "default" to "saved". For example.
default saved ## important. timeout 5 color cyan/blue white/blue title Debian GNU/Linux, kernel 2.6.18-4-k7 root (hd0,2) kernel /boot/vmlinuz-2.6.18-4-k7 root=/dev/sda3 ro initrd /boot/initrd.img-2.6.18-4-k7 title WinXP root (hd0,0) makeactive chainloader +1
Next you need to run grub-install to set up the default change.
With GRUB v2
in your /etc/default/grub GRUB_DEFAULT should be set to saved, for example:
# If you change this file, run 'update-grub' afterward to update # /boot/grub/grub.cfg. # For full documentation of the options in this file, see: # info -f grub -n 'Simple configuration' GRUB_DEFAULT=saved ## important. GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian` GRUB_CMDLINE_LINUX_DEFAULT="quiet" GRUB_CMDLINE_LINUX=""
Next you need to run update-grub to set up the default change.
grub-set-default
Next you need to specify the default OS for grub to boot. This is the OS booted if we don't use grub-reboot. For this we use the grub-set-default command.
grub-set-default [num]
Where [num] is the number of a entry in /boot/grub/menu.lst or /boot/grub/grub.cfg
To set the first OS (Debian in example) as the default run
grub-set-default 0
Usage
We can use the grub-reboot command to select the OS we want to boot only once.
grub-reboot [num]
Where [num] is the number of a entry in /boot/grub/menu.lst or /boot/grub/grub.cfg.
For example:
grub-reboot 1
Will select WinXP for the next boot in the example. If we reboot now, WinXP will boot once. The time after that the boot will be again on the default entry.
KDE usage
Kde has a built in implementation of this. To set this up go to Control Center > System Administration > Login Manager > Shutdown > Miscellaneous And set Boot Manager to "Grub"
Now when you go to reboot, at the shutdown screen if you click-hold the mouse over reboot you get a drop down menu where you can select which OS you want to go to.