Bootloader or Boot Manager is a piece of code that runs before any operating system is running.
When a computer is powered-up or restarted, the basic input/output system (BIOS) performs some initial tests, and then transfers control to the master boot record (MBR) where the boot loader resides.
Used to boot other operating systems, usually each operating system has a set of bootloaders specific for it
Usually contain several ways to boot the OS kernel and also contain commands for debugging and/or modifying the kernel environment.
There are several boot loaders we can install together with Linux on our systems.
1. GNU GRUB
GNU GRUB is a bootloader (can also be spelled boot loader) capable of loading a variety of free and proprietary operating systems. GRUB will work well with Linux, DOS, Windows, or BSD. GRUB stands for GRand Unified Bootloader.
By default, MBR code looks for the partition marked as active and once such a partition is found, it loads its boot sector into memory and passes control to it.
GRUB replaces the default MBR with its own code.
Furthermore, GRUB works in stages.
Stage 1 is located in the MBR and mainly points to Stage 2, since the MBR is too small to contain all of the needed data.
Stage 1.5 also exists and might be used if the boot information is small enough to fit in the area immediately after MBR.
Stage 2 points to its configuration file, which contains all of the complex user interface and options we are normally familiar with when talking about GRUB. Stage 2 can be located anywhere on the disk. If Stage 2 cannot find its configuration table, GRUB will cease the boot sequence and present the user with a command line for manual configuration.
GRUB has the following prominent features:
GRUB can read ext2 partitions, allows GRUB to access its configuration file,
Supports multiple hardware architectures and operating systems such as Linux and Windows
GRUB provides a true command-based, pre-OS environment on x86 machines.
Enables access to GRUB editor
Supports setting of passwords with encryption for security
GRUB supports Logical Block Addressing (LBA) mode.
2. LILO (Linux Loader)
LILO is a simple yet powerful and stable Linux boot loader. The primary advantage of LILO is the fact that it allows for fast boot up of Linux when installed in the MBR. Its main limitation is the fact that not all computers tolerate modification of the MBR. In these situations, there are alternative approaches for using LILO, but it takes longer., LILO has become less popular among Linux users.
While it loads, the word “LILO” is displayed on the screen and each letter appears before or after a particular event has occurred. However, the development of LILO was stopped in December 2015, it has a number of features are:
The LILO bootstrap process involves locating the kernel by in essence pointing to the first logical-sector of the Kernel file
Does not offer an interactive command line interface
Supports several error codes
All its files are stored in the first 1024 cylinders of a drive
Faces limitation with BTFS, GPT and RAID plus many more.
3. BURG(Brand-new Universal loadeR from Grub)
Based on GRUB, BURG is a relatively new Linux boot loader. Because it is derived from GRUB, it ships in with some of the primary GRUB features, nonetheless, it also offers remarkable features such as a new object format to support multiple platforms including Linux, Windows, Mac OS, Free-BSD and beyond.
Additionally, it supports a highly configurable text and graphical mode boot menu, stream plus planned future improvements for it to work with various input/output devices.
Burg is boot loader forked of GRUB loader. It uses a new object format which allows it to be built in a wider range of OS, including Linux/Windows/OSX/Solaris/Free-BSD, etc. It also has a highly configurable menu system which works in both text and graphic mode. Additional features like stream support and multiple input/output device are also planned for BURG. BURG features superior theming and has a highly configurable menu system which works at boot time in both text and graphical mode. Since BURG is derived from GRUB, its configuration is similar in most respects. The main configuration file is /boot/burg/burg.cfg and is usually generated automatically.
Installation and emulation of Burg
Setting default O.S., timeout, resolution and much other parameters
Removing old kernel and related menu-entry
Installation themes for burg (total 27 themes)
Removing Burg e restoring Grub
Syslinux is an assortment of light weight boot loaders that enable booting from CD-ROMs, from a network and so on. It supports file-systems such as FAT for MS-DOS, and ext2, ext3, ext4 for Linux. It as well supports uncompressed single-device Btrfs.
Note that Syslinux only accesses files in its own partition, therefore, it does not offer multi-file-system boot capabilities.
Syslinux boot loader is installed on a MS-DOS floppy disk. As directed by it’s configuration file \syslinux.cfg, it will load one of the files from the floppy disk as a Linux kernel.
Syslinux presents a simple text interface that can be used to select between canned configurations defined in the configuration file and can be used to add parameters to the kernel.