GRUB is the reference implementation of the Free Software Foundation's Multiboot Specification, which provides a user the choice to boot one of multiple operating systems installed on a computer or select a specific kernel configuration available on a particular operating system's partitions.
Thus, in BIOS-based systems, the duty of a boot loader is to access the content of those files, so it can be loaded into the RAM and executed.
One possible approach for boot loaders is to load kernel images by directly accessing hard disk sectors without understanding the underlying file system.
This approach eliminates the need for hardcoded locations of hard disk sectors and existence of map files, and does not require MBR updates after kernel images are added or moved around.
[9] GNU GRUB uses the second approach, by understanding the underlying file systems.
GRUB 2 was written from scratch and intended to replace its predecessor, and is now used by a majority of Linux distributions.
GRUB presents a menu where the user can choose from operating systems (OS) found by grub-install.
If the timeout is set to zero seconds, pressing and holding ⇧ Shift, or in some modern GRUB versions loaded using UEFI, pressing Esc rapidly while the computer is booting makes it possible to access the boot menu.
Each time the computer POSTs, the hard disk connected to a specific motherboard port could be assigned the same identifier, for example hd0, hd1, ….
For example, ls (hd0,5)/) will show numbers that can be assigned to actual hard disks and partitions.
As it cannot be guaranteed that the "hd0"style numbering of hard disks via device numbers is consistent, GNU GRUB can use a Universally Unique Identifier (UUID) to identify partitions (actually file system instances).
initial ramdisk): A fancier grub.cfg will describe a menu to be presented, use multiple colors, and may specify a background picture.
[13] In 1999, Gordon Matzigkeit and Yoshinori K. Okuji made GRUB an official software package of the GNU Project and opened the development process to the public.
In late 2015, the exploit of pressing backspace 28 times to bypass the login password was found and quickly fixed.
[39] Boot-Repair is a simple graphical tool for recovering from frequent boot-related problems with GRUB and Microsoft Windows bootloader.
Boot-Repair can repair GRUB on multiple Linux distributions including, but not limited to, Debian, Ubuntu, Mint, Fedora, openSUSE, and Arch Linux.Grub2Win is a Windows open-source software package.
The setup program installs GNU GRUB version 2.12 to an NTFS partition.
All GNU GRUB scripts and commands are supported for both UEFI and legacy systems.
Grub2Win can configure GRUB for multiboot of Windows, Ubuntu, openSuse, Fedora and many other Linux distributions.
However, there are boot managers targeted at the end user that give more friendly user experience, graphical OS selector and simpler configuration: Non-graphical alternatives: Distribution wikis have many solutions for common issues and custom setups that might help you:
boot.img
) can alternatively be written into one of the
partition boot sectors
.