Should I boot the operating system on an MBR or a GPT disk? Should I partition my disks to MBR or GPT in general?

To continue from here. I put this question intentionally into the PureOS category, not into any of the more generic chitchat categories.

As I understand PureOS only boots on an MBR disk. At least I was not able to write the boot USB stick as a GPT partition. Every person at various levels of involvement in the food chain has their opinion on MBR vs. GPT booting, but I’m curious on PureOS people’s high level, not so technical overview on the issue. Every major Linux distribution seems to boot on both MBR and GPT disks these days.

MBR if you want max 4 partitions on your non-volatile storage device. also if you use MBR you can’t use more than 2 TB of data.

GPT is more modern. it has UEFI suport for the /boot/efi partition (if you do that) then it also allows more than 2 TB disk space and more than 4 active partitions can be set.

MBR doesn’t have a max of 4 partitions. It has a max of 4 “primary” partitions, any one of which can be an “extended partition”. In theory, this has worse performance, since the data structure is more complicated to parse. In practice, that means an extra ms or two on mounting the partition, which is the only time that data structure has to be parsed. In the event of disk corruption, it’s also slightly harder to recover, but that is also a fairly minor problem.

That said, GPT has support for bigger partitions. MBR can in theory support 2**33-1 sectors (4TiB), but in practice not all OSes actually handle the case of a 2TiB partition starting at 2**32-1 sectors in. Of course, devices with larger sectors can store more data, but yeah, if it’s a large disk, GPT is strongly preferred.

All that aside, the MBR and GPT data structures actually align well enough that, for disks under 2TiB, and with 4 or fewer partitions, you can actually put both an MBR and a GPT table on the disk, allowing it to work properly both ways. If you are uncertain which you need, I recommend doing that.


Sorry I may have been not clear about what I really wanted to ask here. An interesting discussion in the preceding thread.

So regarding MBR vs. GPT. I’m more or less familiar with the 2TB and 4 partitions limitations. My point is I wasn’t able to make a PureOS USB stick to boot under GPT. I wrote that everyone has their technical and philosophical opinions on MBR vs GPT and most importantly, secure boot and it’s real world implementations from Linus Torvalds through Mark Shuttleworth to Richard Stallman. I’m curious about the PureOS team’s view. Is this a bug or a feature that I was unable to make the USB stick boot under GPT? Can I, or am I supposed to install PureOS under GPT or am I supposed to use MBR if possible? If so, why? Philosophically and technically, from the standpoint of secure boot.

1 Like

UEFI is a semi-open standard. (Semi-open because it was unilaterally written by Intel, but anyone is free to implement it). To my knowledge, there is one open implementation of it: TianoCore. Most everyone else uses a closed source implementation, with changes, from AMI. TianoCore is used in qemu, and works with a handful of small development boards and the like, but no real-hardware x86_64 machines.

Given Purism’s fascination with only free software, and the fact that coreboot works on some x86_64 machines, they’re likely to recommend Bios/MBR for those systems. Given that they don’t have PureOS available for the systems which can run TianoCore, I doubt they will have any interest in supporting that use case.


I would only add that we’re not only fascinated by free software but that we require it so that we can guarantee users can have control over their device. :slight_smile:


You might also wants to try out the GPT+legacy boot solution. MBR does not mean legacy boot, and GPT does not mean UEFI.

If you use grub, you need to prepare a special partition for grub to store its binary. It should be easy.

Technically, GPT disk has a protective mbr, so it can work as the boot record. However, GPT cannot preserve hidden sectors, that is why grub need a special partition.

Btw, if you need many partitions, you might also want to try LVM