In this post, we are going to see UEFI boot. It generally means to boot an operating system with the help of UEFI. But to understand that we have to understand what is the difference between MBR and GUID. In this post, we will start with a brief understanding of what is the difference between MBR and GUID.
- Difference between MBR and GUID.
- GPT stands for GUID Partition Table.
- BIOS: Basic Input Output System.
- UEFI stands for Unified Extensible Firmware Interface.
- What is UEFI?
- What is Bootloader?
In the second part of this post, we will see what is BIOS and what is UEFI and what it is to boot from UEFI. Without further delay let us jump into it.
Difference between MBR and GUID:
Before creating partitions on the drive, we need to decide whether we want to have MBR or GPT partitions structure on the disk.
MBR and GUID are partition structure. A partition structure defines how the information is stored in a drive. Here, the information is about the structure of the hard drive itself. It will include the information on where a partition starts and ends. Which sector belongs to which partition and also, which among the available partition is bootable.
MBR was introduced by IBM. It consists of a special boot selector located at the beginning of the drive. This contains the bootloader for the installed OS and also the information about the drive’s logical partitions. In Windows, a part of Windows bootloader is partly residing on the MBR partition. While the Linux bootloader is located in the MBR only. For this reason, the bootloader needs to repair in Windows system when it gets overwritten. This also comes to work as only a part of bootloader resides in the MBR and the other part is capable of running recovery on the overwritten MBR.
GPT stands for GUID Partition Table. It is associated with UEFI. It has a random string that is very long such that it can identify a large number of partitions on a single hard drive. Unlike MBR, GPT stores the boot data in multiple locations on the same disk. Even if the main boot data gets corrupted, it can use the other boot data to boot the system.
GPT also uses a cyclic redundancy check. This helps ensure that the boot data is intact. If the boot data is corrupted, it will get fixed using the boot data that is stored elsewhere in the disk.
GPT also tends to include a protective MBR. It means that if an old MBR software that can read only MBR if reads a new GPT partitioned hard drive, it will see a full unpartitioned MBR drive. This will prevent the MBR drive from overwriting the GPT partitioned drive from getting overwritten.
BIOS: Basic Input Output System:
The BIOS is a very small piece of code that is saved in as a read-only or a flash memory-chip on a computer’s motherboard. It is often referred to as the mother board’s firmware. The BIOS first checks settings that are stored in a CMOS chip to determine how the user wants the system to run. It then initializes the device’s components accordingly. If everything is working correctly, it gives out a beep. If things are not working correctly, it will give out a series of beeps.
After everything is alright, it will find a bootable image of the operating system in the secondary storage and hand over the control of the device to the operating system. The old BIOS often found a link between the keyboard, mouse and the OS. But the newer operating system handles the hardware on its own. Once the OS has loaded, the OS directly controls the hardware.
A system that a conventional BIOS uses to access the hard drive or the SSD is called the Master Boot Drive (MBR). It can only handle partitions that is less than 2 TB. With modern hard drive with way more data, there was a need for something newer.
Unified Extensible Firmware Interface: It can handle multiple hard drives and it can also have a user interface with keyboard and mouse. It is better than having to deal with the UI of the BIOS as it is generally handled with only the arrow keys of the keyboard.
What is UEFI?
GPT allows the users to have a partition that is greater than 2TB. MBR is where the users can have only up to 2TB. If the user has a large hard disk to boot from, they are highly recommended to use the GPT partition scheme. If the user does a GPT drive, the user is probably going to use UEFI. To set that up, we need to ensure that the BIOS settings are correct. If UEFI is enabled, we need to disable the legacy boot and disable legacy options. Depending on the motherboard, we need to disable additional options before we completely move on the UEFI. It is more difficult to set up UEFI boot.
The benefit to UEFI is that we get advanced graphics in the boot loader. We can have icons to each one of the boot drives. Also, it is suitable for large boot drives. If you have 2TB of harddrive to boot directly from, UEFI is what the user should be using.
Legacy boot is mainly for compatibility. In the Legacy boot, we can not use a graphic interface for the boot menu and it is going to be a traditional text style menu. The partition structure is set up completely different from GPT. From legacy boot, we are limited to 4 partitions.
We also need to understand how bootloader will interface with the structure. For legacy boot, we are going to need MBR or DOS-based drives. We can use a partition tool such as GParted or more. There are many tools out there that can assist us with this.
The partition table on the hard drive will tell Windows operating system on what kind of bootable hard drive to look for.
Windows uses boot MGR that creates a small partition. Boot MGR is usually about 500 MB and it is usually called the system reserve. It is actually called a BCD and it is a database that the boot loader needs to load the system. windows have tools in their recovery so that we can go into the recovery and go into the terminal and fix the boot, or fix BCD. Lots of this is built into windows 10. They have compiled lots of different tools into one tool. New laptop use UEFI. MBR is going to have the other partition and if the user deletes the other partition, the user will not be able to boot. In Windows XP, it was called NTLDR. It was a completely different bootloader. In Vista, UEFI was possible in windows.
GRUB segregated out and can do both legacy and UEFI easily. In windows, there is multiple version boot MGR. Some versions of Windows use UEFI and some do not. In windows, some of the versions of the operating system have to stay with the particular kind of bootloader as it is incapable of doing the other one.
In GRUB the user has lots of facilities. From the root, it goes into the boot and it can actually put the grub configuration in and boot into a legacy configuration from there.
The EFI directory in the boot is mounted to a completely separate partition. And when that partition is set up for the GPT drive, it will be set up at the very front of the drive. At 2048 your GPT drive will be there for a minimum of 300 MB.
While setting up a UEFI, there will be 2 partitions. The very first partition is 500MB and it has to be classified as an EFI file system. And then when we go to format that partition, make sure that it is fat32 otherwise the EFI partition will not work. Formatting the legacy partition in MBR is easier because it is doing only one partition. In MBR, we make that one partition and mark it bootable and then we go.
MBR has flags that tell that the specific partition is bootable and the GPT does not have flags.
UEFI boot has two partitions, the first one is going to be formatted as an EFI file system and the second is formatted as FAT32. For legacy boot, we just do legacy boot or MBR or DOS. We just format it as the data drive and mark it bootable.