BSDs use the GUID Partition Table scheme, too.

The doco for the BSDs gives the misleading impression that BSD ‘disklabels’ are the BSD way of doing things. They are not.

Do not be put off by ‘disklabels’. You can totally ignore them, and still use a modern BSD. I have not bothered with them since the 1990s.

Being installable alongside other operating systems on PC/AT class machines, modern BSDs have been able to use the old MBR‐style partition table sans ‘disklabels’ since last century, and they have for much of this century been able to use the EFI partitioning system, the so‐called GUID Partition Table. There are well‐known GUID partition types for UFS/FFS and ZFS, as well as for things like FreeBSD's gptboot(8) and gptzfsboot(8), which live in dedicated disc partitions.

I have not bothered with MBR‐style disc partitioning in decades, either.

The BSDs do have fdisk(8) (NetBSD), fdisk(8) (OpenBSD), fdisk(8) (FreeBSD), and fdisk(8) (DragonFlyBSD) utilities, but for almost all of them this is not the utility to use any more. Microsoft Windows people find it a little odd that some Linux people are still wedded to fdisk, when in the Windows world it was supplanted by the explicitly command‐line driven diskpart in 1999. (Other Linux people have known about Roderick W. Smith's gdisk for years, and are probably better prepared for the BSD world because of it.)

FreeBSD created a new GEOM system that came out in FreeBSD 5.0 in 2003. As part of that, it has a gpart(8) command for doing disc partitions. (If you see doco that talks about FreeBSD having a gpt command, it is mistaken. There was one, for a few years, which was removed in FreeBSD 8.0 in 2009 in favour of gpart.) The ‘g’ refers to GEOM, not to the GUID Partition Table. gpart handles several different partitioning schemes, can start partitioning schemes from scratch on a blank disc, can add and delete partitions (with optional names if the partitioning scheme has that capability), and can copy FreeBSD boot programs from files in /boot into their right locations outwith any filesystem. GEOM stops random programs (like Rod Smith's gdisk ported to FreeBSD) from directly writing to partition tables. Instead, programs like gpart call GEOM APIs to safely do partition table and bootstrap loader manipulation under kernel control.

NetBSD also re‐vamped its ideas about discs significantly. Modern NetBSD has a gpt(8) command for GUID Partition Table manipulations, and there's a ‘wedge’ system (c.f. dk(4) and dkctl(8)) that like FreeBSD's GEOM limits programs from accessing partition tables and out‐of‐partition bootstrap loaders directly.

Alas, the NetBSD Guide is still stuck showing people with SCSI controllers how to add to NetBSD that disc that they bought with a pre‐installed copy of MS-DOS in a FAT partition. This makes NetBSD look a lot more arcane than it actually has been for years, now. I have written an updated version of that part of the NetBSD Guide, but so far there have been no takers for bringing the Guide up‐to‐date with the actual operating system that is 16 years ahead of it.

DragonFlyBSD took FreeBSD's gpt command when it came out, and never adopted GEOM or gpart, presumably because of complexities related to its own native HAMMER2 filesystem. It has gpt(8) to this day.

Only OpenBSD retains the old MS-DOS utility name. However, in a move that may seem very famliar, it re‐wrote the utility to understand the EFI partitioning scheme. Moreover, unlike the util-linux fdisk utility and Microsoft's original fdisk from MS-DOS, OpenBSD's fdisk is like Microsoft's diskpart and has an interactive command‐line mode.


© Copyright 2026 Jonathan de Boyne Pollard. "Moral" rights asserted.
Permission is hereby granted to copy and to distribute this web page in its original, unmodified form as long as its last modification datestamp is preserved.