GRUB

GRUB is a bootloader responsible for loading vmlinuz and initrd.img into RAM at booting.

Configuration

Configuration files.

Parameters.

Parameters Meaning Examples
GRUB_TIMEOUT Timeout for grub menu -1, 0, 5
GRUB_TIMEOUT_STYLE Menu style menu, countdown, hidden
GRUB_DEFAULT Default entry to boot Index or ID of meny entry
GRUB_CMDLINE_LINUX Kernel parameters console=ttyS0
GRUB_DISABLE_OS_PROBER Menu entries for other OS true, false

Change configuration.

# edit config
$ vi /etc/default/grub

# validate config
$ grub-script-check -v /etc/default/grub

# apply change
$ grub-mkconfig -o /boot/grub/grub.cfg

Add menu entry.

$ vi /etc/grub.d/40_custom
menuentry 'Ubuntu' {
    insmod gzio
    insmod part_gpt
    insmod ext2

    linux /vmlinuz-5.15.0-164-generic /dev/mapper/ubuntu--vg-ubuntu--lv ro
    initrd /initrd.img-5.15.0-164-generic
}
$ grub-mkconfig -o /boot/grub/grub.cfg

Installation

Install grub to a device.

# install grub
$ grub-install /dev/sdb

# verify
$ xxd -l 512 /dev/sdb

Master Boot Record.

Offset Size Purpose
0x0000 446 B Boot code
0x01be 64 B Partition table (4 entries × 16B)
0x01fe 2 B Boot signature (0x55aa)

Reference