I just bought an HP ProBook with windows 10 pre-installed. But for development purpose I wanted to have a dual boot Linux installation. So like every time, I made a bootable Linux USB stick and tried to install Ubuntu 16.04 with it.I have a free space on my last partition of windows. As learned from the several tutorials about ‘How to install Ubuntu alongside Windows’, I know that I should create a ‘Swap area’, a ‘Root’ and at least a ‘Home’ partition for Ubuntu. But as soon as I created any of the partitions above, the rest of the free space got ‘Unusable’. What’s the problem?
As a first attempt, I posted on a facebook group about some suggestions. Someone there asked me whether my HDD has MBR or GPT partitioning. Now I am even more confused than before. What the heck are MBR and GPT? So, rather just searching for the specific solution to my problem I decided to study about BIOS, partitions, and related things. Here are the gist of what I have learned.
The BIOS (pronounced “bye-ose”) is a computer’s Basic Input-Output System. It’s a low-level software that’s so important integrally that resides on a chip that’s built into the motherboard. When a computer starts up, it’s the BIOS’s job to wake up the various components and make sure they’re functioning, then it passes off functionality to the operating system or another boot loader. It also uses a Master Boot Record, or MBR, to specify the computer’s partition table, which in turn tells the BIOS where the operating system is.
UEFI is short for “Unified Extensible Firmware Interface”. It’s an advanced interface standard of firmware for operating system compared to legacy BIOS, such as it supports fast PC startup, bootable GPT hard drive, larger capacity more than 2T etc. Almost all recent PCs are EFI/UEFI. UEFI uses the GUID Partition Table, which utilizes Globally Unique IDs to address partitions and allows booting from hard disks as large as 9.4 ZB. A terabyte (technically, a tebibyte) is 1024 GB, and a zettabyte (zebibyte) is 1024x1024x1024 GB. UEFI allows more boot options, doesn’t prescribe particular file systems, and has excellent network booting abilities. OS boot loaders can also serve as extensions to the UEFI, which itself can function as a proper boot loader.
MBR and GPT:
MBR (Master Boot Record) and GPT (GUID Partition Table) are two different ways of storing the partitioning information on a drive. This information includes where partitions start and begin, so the operating system knows which sectors belong to each partition and which partition is bootable.
It’s called Master Boot Record because the MBR is a special boot sector located at the beginning of a drive. This sector contains a boot loader for the installed operating system and information about the drive’s logical partitions. The boot loader is a small bit of code that generally loads the larger boot loader from another partition on a drive. If you have Windows installed, the initial bits of the Windows boot loader reside here — that’s why you may have to repair your MBR if it’s overwritten and Windows won’t boot. If you have Linux installed, the GRUB boot loader will typically be located in the MBR.
MBR works with disks up to 2 TB in size, but it can’t handle disks with more than 2 TB of space. MBR also only supports up to four primary partitions — if you want more, you have to make one of your primary partitions an “extended partition” and create logical partitions inside it.
GPT stands for GUID Partition Table. It’s a new standard that’s gradually replacing MBR. It’s associated with UEFI — UEFI replaces the clunky old BIOS with something more modern, and GPT replaces the clunky old MBR partitioning system with something more modern. It’s called GUID Partition Table because every partition on your drive has a “globally unique identifier,” or GUID — a random string so long that every GPT partition on earth likely has its own unique identifier.
This system doesn’t have MBR’s limits. Drives can be much, much larger and size limits will depend on the operating system and its file systems. GPT allows for a nearly unlimited amount of partitions, and the limit here will be your operating system — Windows allows up to 128 partitions on a GPT drive, and you don’t have to create an extended partition.
On an MBR disk, the partitioning and boot data is stored in one place. If this data is overwritten or corrupted, you’re in trouble. In contrast, GPT stores multiple copies of this data across the disk, so it’s much more robust and can recover if the data is corrupted. GPT also stores cyclic redundancy check (CRC) values to check that its data is intact — if the data is corrupted, GPT can notice the problem and attempt to recover the damaged data from another location on the disk. MBR had no way of knowing if its data was corrupted — you’d only see there was a problem when the boot process failed or your drive’s partitions vanished.
Windows can only boot from GPT on UEFI-based computers running 64-bit versions of Windows 10, 8.1, 8, 7, Vista, and corresponding server versions. All versions of Windows 10, 8.1, 8, 7, and Vista can read GPT drives and use them for data — they just can’t boot from them without UEFI.
Other modern operating systems can also use GPT. Linux has built-in support for GPT. Apple’s Intel Macs no longer use Apple’s APT (Apple Partition Table) scheme and use GPT instead.
Where is the solution to my problem?
After go through the above things, I checked my HDD and confirmed that it is MBR and I saw that I already had 3 primary partitions (along with the system reserved partition) in Windows.
So, that’s it! As soon as I had created another primary partition for Ubuntu it doesn’t let me create any other partition and the rest of the space get ‘Unusable’. So now I wanted to make sure if I need to make the partitions for Ubuntu as ‘Primary’. I found the following in Stackoverflow about ‘If primary partitions are better than logical partitions’.
There are no OS-specific advantages other than older versions of Windows must be installed on a primary partition and that the legacy MBR bootloader can only boot from a primary partition. There’s no difference in how they function or anything.
So, I created all the partitions for Ubuntu as ‘Logical’, and it is fine till now.
Maybe you have learned something like me from these long boring article. If not, then sorry for wasting your time.