LinuxCommandLibrary

grub-reboot

Reboot into a different GRUB entry

TLDR

Set the default boot entry to an entry number, name, or identifier for the next boot

$ sudo grub-reboot [entry_number]
copy

Set the default boot entry to an entry number, name, or identifier for an alternative boot directory for the next boot
$ sudo grub-reboot --boot-directory /[path/to/boot_directory] [entry_number]
copy

SYNOPSIS

grub-reboot [-h, --help] [-v, --version] MENU_ENTRY

PARAMETERS

-h, --help
    print this message and exit

-v, --version
    print the version information and exit

DESCRIPTION

grub-reboot is a GRUB utility that temporarily sets the default boot menu entry for the next reboot. It records the specified MENU_ENTRY in GRUB's environment block, typically /boot/grub/grubenv, using variables like saved_entry. After the next boot, GRUB automatically reverts to the previous default, making it ideal for one-time changes without permanent configuration edits.

Use cases include testing new kernels, entering recovery mode, or booting alternative OS entries safely. It requires root privileges and GRUB support for environment blocks (standard in most distributions). Run as sudo grub-reboot 'entry title' or by index/UUID. The change persists across shutdowns until the boot occurs.

If the environment file is unwritable or missing (e.g., on read-only filesystems), it fails silently or with error. Pairs well with scripts for automated testing. Unlike grub-set-default, it does not overwrite the permanent default.

CAVEATS

Requires root privileges; affects only next boot; fails if environment block unsupported or unwritable (e.g., /boot/grub/grubenv); MENU_ENTRY must match exactly.

MENU_ENTRY FORMATS

Exact title (up to first tab), numeric index (from 0), or UUID (via grub-menuentry-get-uuid).

ENVIRONMENT FILE

Defaults to /boot/grub/grubenv; override with GRUBBEDITENV_EDITENV_FILE.

EXAMPLES

sudo grub-reboot 0 # First menu entry
sudo grub-reboot 'Ubuntu' # By title
sudo grub-reboot $uuid # By UUID

HISTORY

Introduced in GRUB 2 development (ca. 2009); stable in GRUB 2.00 (2012) as part of core utilities for menu management.

SEE ALSO

grub-set-default(8), grub-editenv(8), grub-menuentry-get-uuid(8)

Copied to clipboard