Linux Jargon Buster: What is Grub in Linux? What is it Used for?

If you ever used a desktop Linux system, you must have seen this screen. This is called the GRUB screen. Yes, it is written in all capital letters.

Grub Screen Linux
Remember this screen? This is GRUB

In this chapter of the Linux Jargon Buster series, I’ll tell you what is Grub and what is it used for. I’ll also briefly touch upon the configuration and customization part.

What is GRUB?

GRUB is complete program for loading and managing boot. It is the most common bootloader for Linux distributions. A bootloader is the first software that runs when a computer starts. It loads the kernel of the operating system and then the kernel initializes the rest of the operating systems (shell, display manager, desktop environment etc).

Boot loader vs boot manager

I didn’t want to confuse you at this stage but I see no option to avoid bringing this topic. There is a blur line between a bootloader and a boot manager.

You already know that bootloader starts first and then loads the kernel into memory and executes it. A boot manager program allows you to choose between operating systems (if there are more than one OS on your system). A boot manager doesn’t load the OS directly,

With Linux kernel version 3.3, the Linux kernel includes a built-in EFI bootloader. In fact, any operating system that is capable of working EFI system includes an EFI bootloader. In EFI capable systems, the firmware reads the EFI System Partition (ESP) for the EFI files for boot information.

Insert Image: Show partition table with ESP partition.

Disk Partition Gparted

GRUB is both a bootloader and a boot manager. I’ll come back to GRUB in a moment. Let’s see other GRUB like programs.

Trivia

GRUB is acronym for GRand Unified Bootloader.

What are some other boot managing programs like GRUB?

GRUB is the most popular boot manager for Linux. But it is not the only one. There is this highly customizable rEFInd boot manager that some Linux users love to use.

Refind Boot Manager
Customized rEFInd Boot Manager Screen | Image Credit

There is systemd-boot text-based boot manager. You can guess that this is exclusively for systemd-based Linux distributions. Some distributions like Pop OS use the systemd-boot.

systemd-Boot in Pop OS
systemd-Boot in Pop OS | Image Credit

Accessing or editing GRUB

The usual GRUB screen you see is its menu interface. It allows you to choose the operating systems if there are more than one operating system. You can also choose to load a different kernel if your Linux distribution as more than one kernel installed.

Depending upon the configuration set by the Linux distribution, you may have some other entries on the GRUB menu.

You can edit GRUB menu entry by pressing the key e. This way, you can change the kernel parameters before loading it. For example, in some cases, disabling the graphics driver from the kernel helps you with Linux system stuck at boot.

Editing grub to fix frozen boot issue with Ubuntu Linux

You can also enter the command line menu of GRUB using the key c at the GRUB menu interface.

GRUB configuration file

Any changes you make to the GRUB from the menu interface is temporary. If you want to make some permanent changes to GRUB like changing the default timeout, you can change the configuration file after you boot into your Linux system.

The default GRUB configuration file is located at /etc/default/grub. There is also a /etc/default/grub.d directory. You may edit the /etc/default/grub file directly, however it is advised to make additional changes by adding config files (.cfg files) in this directory.

Default Grub Config File
Default GRUB Config File

You must update GRUB for the changes to take into effect.

GRUB customizer in Ubuntu

If you think editing file with a text editor in the terminal is not something you feel comfortable with, you can use a graphical tool called GRUB Customizer.

Make Windows default option in Grub in dual boot mode

It allows you to change the boot order, default timeout etc. You can also use it to change the background of GRUB with a custom wallpaper.

This tool is unfortunately available for Ubuntu-based Linux distributions only.

Conclusion

I have touched everything on the surface. EFI, boot loading and GRUB itself is detailed and complicated topic and not in the scope of this article. This article intended to give you a high level overview of GRUB boot program.

Perhaps I’ll write a detailed guide on GRUB explaining the low level details. For now, if you want to learn more on GRUB, you can access the GRUB documentation in your Linux terminal using info grub command.

Grub Manual Linux Terminal
GRUB Manual can be accessed via Terminal

I hope you have a tad bit better understanding of what is GRUB now. Here’s a GIF to humor you.

What Is Grub
What Is GRUB? UEFI don’t hurt me, no more… 🙂

I may not have answered all questions you have about GRUB. Please feel free to let me know in the comment section. I may update the article with your questions or suggestions.



Source link

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.