For the past 15 years, I've been running DOS, Windows, and GNU/Linux OSen, using exclusively MBR partition tables, and setting up lots of multi-boot systems for experimenting with hardware. I've recently regained an interest in running FreeBSD (ZFS anyone?), which is quite paradigm-shifting in these areas, from my point of view. (What a surprise to discover that GPT tables don't actually require UEFI!)
I've cowardly avoided delving into these matters on my previous FreeBSD and OpenBSD installations (and created pretty messy setups as a consequence); I am now trying to get a solid understanding of what can, cannot, and shouldn't be done with disks to run FreeBSD, whether by itself or together with other operating systems on the same disk.
I've tinkered with a couple of virtual machines plus a bunch of virtual disks, and read the gpart(8), fdisk(8) and bsdlabel(8) manpages these past days, but I'm having trouble linking everything together; I am often finding myself unable to simply create the partition layouts I'd like to experiment with, and when I can, I encounter minimalistic errors returned by bsdinstall(8) that don't help me understand the rules.
Hence, I have a (generous, I realize) bunch of question, ranging from confirmation seeking of things I'm almost sure of, to ones I am truly clueless about. I hope this isn't asking too much at once. Please feel free to cherry-pick the ones you like, or to just point me to online documents that might help me help myself.
Regarding what is needed to bootstrap FreeBSD
- The handbook calls freebsd-boot a "Standard FreeBSD GPT Partition". Does it imply such a partition does not have a direct equivalent in an MBR scheme?
- Can this frebsd-boot partition be located anywhere on disk?
- Can they be shared among multiple FreeBSD installations?
Regarding what is needed for the root filesystem(s)
- Is it possible to run FreeBSD in an MBR-partitioned disk, but without subpartitiong it using BSD partitions?
- It is possible to have 2 separate installations of FreeBSD stored on two separate slices. Is it possible to have 2 separate installations of FreeBSD stored on the *same* slice? (perhaps because of shortage of available primary MBR partitions)
Regarding BSD partitions
- Are disklabels nothing more and nothing less than a piece of metadata that act as a BSD partition descriptor, written to the beginning of a slice?
- Can the term disklabel or bsdlabel be used as a more elegant and less ambiguous synonym than BSD partition?
- Are bsdlabel(8) and gpart(8) the two only (FreeBSD native) tools that exist to manipulate (as in: modify) BSD partition layout? (not counting dd
)
- I have a feeling that BSD partitions are becoming less relevant or necessary than they might have been in the past. Is this true? Is it mainly due to the increased flexibility and simplicity that GPT schemes provide? It surely seems that both the handbook and bsdinstall(8) are pushing this scheme, barely if not at all mentioning the existence of BSD partitions.
- Can a GPT partition be subdivided with a BSD label? (perhaps to mark a clean separation and hierarchy between distinct FreeBSD installations, or between sets of user data)
Regarding logical MBR partitions (slices) :
- My understanding is that they are pretty much unusable by FreeBSD, except for mounting foreign filesystem located on them. Is there absolutely no way to use boot code, kernels, root filesystems inside one? More usefully given my usual multiboot partitioning layout, is there a way to use one as a swap partition? (perhaps to share swap space with other OSen, to reap the performance benefits of being located at the beginning of a hard drive, or on media where space is costly (such as SLC SSDs)
- Will fdisk(8) never see, communicate or manipulate logical MBR partitions? Is there a FreeBSD native tool to create and manipulate them? (perhaps to provision them for later foreign OSen installations)
- Is it possible to BSD-partition a logical MBR partition? (perhaps to cleanly organize and hierachize data-only FreeBSD user data partitions)
Thank you for reading.
I've cowardly avoided delving into these matters on my previous FreeBSD and OpenBSD installations (and created pretty messy setups as a consequence); I am now trying to get a solid understanding of what can, cannot, and shouldn't be done with disks to run FreeBSD, whether by itself or together with other operating systems on the same disk.
I've tinkered with a couple of virtual machines plus a bunch of virtual disks, and read the gpart(8), fdisk(8) and bsdlabel(8) manpages these past days, but I'm having trouble linking everything together; I am often finding myself unable to simply create the partition layouts I'd like to experiment with, and when I can, I encounter minimalistic errors returned by bsdinstall(8) that don't help me understand the rules.
Hence, I have a (generous, I realize) bunch of question, ranging from confirmation seeking of things I'm almost sure of, to ones I am truly clueless about. I hope this isn't asking too much at once. Please feel free to cherry-pick the ones you like, or to just point me to online documents that might help me help myself.
Regarding what is needed to bootstrap FreeBSD
- The handbook calls freebsd-boot a "Standard FreeBSD GPT Partition". Does it imply such a partition does not have a direct equivalent in an MBR scheme?
- is it meant as a cleaner way to hold bootstrap code that is otherwise stored in Volume Boot Records of MBR partitions?
- would that mean that there are no VBRs in GPT partitions?
- Is it anything more than a container for machine code, not in any way able to be organized into a filesystem that can be mounted?
- Can this frebsd-boot partition be located anywhere on disk?
- On an isolated, non-BSD-subpartitioned primary MBR partition?
- located before the root partition?
- located after the root partition? (I've taken the habit of creating boot partitions at the end of disks). (add. 2012.11.03: yes, this works, tested in VM.)
- Inside a BSD-partitioned slice?
- before the root ? after the root?
- Within a different slice than the root filesystem?
- gpart(8) describes 2 (early) boot mechanisms (/boot/mbr and /boot/boot0), both of which search for "the freebsd-boot partition". This seems to imply two separate ones cannot in fact be used, is this correct?
Regarding what is needed for the root filesystem(s)
- Is it possible to run FreeBSD in an MBR-partitioned disk, but without subpartitiong it using BSD partitions?
- using only a root filesystem and no swap partition?
- using a root filesystem and a swap partition and/or a boot partition on different primary MBR partitions?
- It is possible to have 2 separate installations of FreeBSD stored on two separate slices. Is it possible to have 2 separate installations of FreeBSD stored on the *same* slice? (perhaps because of shortage of available primary MBR partitions)
Regarding BSD partitions
- Are disklabels nothing more and nothing less than a piece of metadata that act as a BSD partition descriptor, written to the beginning of a slice?
- Can the term disklabel or bsdlabel be used as a more elegant and less ambiguous synonym than BSD partition?
- Are bsdlabel(8) and gpart(8) the two only (FreeBSD native) tools that exist to manipulate (as in: modify) BSD partition layout? (not counting dd

- I have a feeling that BSD partitions are becoming less relevant or necessary than they might have been in the past. Is this true? Is it mainly due to the increased flexibility and simplicity that GPT schemes provide? It surely seems that both the handbook and bsdinstall(8) are pushing this scheme, barely if not at all mentioning the existence of BSD partitions.
- Can a GPT partition be subdivided with a BSD label? (perhaps to mark a clean separation and hierarchy between distinct FreeBSD installations, or between sets of user data)
Regarding logical MBR partitions (slices) :
- My understanding is that they are pretty much unusable by FreeBSD, except for mounting foreign filesystem located on them. Is there absolutely no way to use boot code, kernels, root filesystems inside one? More usefully given my usual multiboot partitioning layout, is there a way to use one as a swap partition? (perhaps to share swap space with other OSen, to reap the performance benefits of being located at the beginning of a hard drive, or on media where space is costly (such as SLC SSDs)
- Will fdisk(8) never see, communicate or manipulate logical MBR partitions? Is there a FreeBSD native tool to create and manipulate them? (perhaps to provision them for later foreign OSen installations)
- Is it possible to BSD-partition a logical MBR partition? (perhaps to cleanly organize and hierachize data-only FreeBSD user data partitions)
Thank you for reading.