(very OT) Ideal partition schemes (history of partitioning)

Thomas Mueller mueller6722 at twc.com
Sun Aug 30 05:34:06 UTC 2020

from Polytropon (excerpt):
> Most multi-OS settings seem to work best with BIOS + MBR.  
> Boot selection can either happen using a PF key at system
> startup, if it's more than one disk, or you have a separate
> software solution, like GRUB or FreeBSD's boot manager, if
> all systems are on one and the same disk.

How is that?  It seems to me that GPT would be practically the only way for multi-OS.

Grub 2 can be used to select the partition to boot.

Some or many OSes can not run on a logical partition, only a primary partition, using MBR scheme.

And what if hard disk > 2 TB, or would that be 16 TB in the case of 4096-byte sectors?

> With MBR, you can have up to 4 "DOS primary partitions",
> i. e., slices. FreeBSD needs only one, other systems may
> need one or more. If 4 isn't enough, you need to remove 
> one, and put an "DOS extended partition" in the free slot,
> which then can hold "logical volumes inside a DOS extended
> partition". This is typically called EBR.

> The limitations of MBR are no longer valid with GPT: Any
> new partition gets a new number, and if you want to have
> 20 partitions, that's no problem - it's natively possible.
> The problem could be systems not properly understanding 
> GPT layout, and if I remember correctly, FreeBSD's boot
> manager does not support multiboot from GPT.

> On systems that do not have BIOS or "legacy mode", if I
> did understand everything correctly, MBR is not supported
> unless a EFI partition has been prepared beforehand.
> And in case of ... I won't name it to avoid trouble, 
> even that won't work - you need to enable a Compatibility
> Support Module (if present!) and so on...; all this
> because you "should" use UEFI + GPT. 

> It's actually quite complicated... ;-)

> You can avoid all this for FreeBSD-only systems by not
> using any partitioning at all - you just add labels (using
> the disklabel / bsdlabel command). Note that only letters
> 'a' to 'h' are possible (with exception of 'c').

> To summarize, you have the following usable (!) options:

>         a) BIOS + dedicated

>       b) BIOS + MBR

>       c) BIOS + GPT

>       d) UEFI + GPT

> In case of MBR, FreeBSD gets one slice; in case of
> GPT, FreeBSD gets as many partitions as it needs.
> The partition types are also different for GPT and MBR,
> and depending on the desired layout, the partitions you
> need can change.

> Within a slide*, you can create multiple partitions. The 
> common approach today is to have one big / and some swap.
> The idea of "functional partitioning" typically suggests 
> a layout like this:

slide?  Did you mean slice?

>                         ------------ device in /dev -----------
>                         dedicated       MBR             GPT
>         /boot           -               -               ada0p1
>         /               ada0a           ada0s1a         ada0p2
>         swap            ada0b           ada0s1b         ada0p3
>         /tmp            ada0d           ada0s1d         ada0p4
>         /var            ada0e           ada0s1e         ada0p5
>         /usr            ada0f           ada0s1f         ada0p6
>         /opt            ada0g           ada0s1g         ada0p7
>         /home           ada0h           ada0s1h         ada0p8

> This is just a very simplified example.

> Also remember that most other systems fail to understand
> dedicated partitioning. The idea of "partitions within a
> slice" comes from BSD coming from non-PC systems to the PC,
> where MBR was required for multi-boot interoperability (to
> a certain, often quite limited degree). With GPT, there are
> plenty of types, so this is no longer needed.

I run several versions of FreeBSD and NetBSD, also need to save partitions for Linux and Haiku.

FreeBSD and NetBSD can't read each other's disklabel or bsdlabel-type subpartitions, and sub-partitioning a NetBSD slice with disklabel is very tricky, drives me crazy.

GPT means I never have to deal with traditional BSD disklabels any more; I don't run OpenBSD or DragonFlyBSD.


More information about the freebsd-questions mailing list