| GUID | Description |
|---|---|
516E7CB6-6ECF-11D6-8FF8-00022D09712B |
FreeBSD UFS |
0394Ef8B-237E-11E1-B4B3-E89A8F7FC3A7 |
MidnightBSD UFS |
55465300-0000-11AA-AA11-00306543ECAC |
Apple UFS |
49F48D5A-B10E-11DC-B99B-0019D1879648 |
NetBSD UFS |
49F48D82-B10E-11DC-B99B-0019D1879648 |
NetBSD LFS |
The common ‘lingua franca’ filesystem format for Windows NT is NTFS, even though the operating system can also speak FAT12, FAT16, FAT32, EXFAT, and RFS. The common ‘lingua franca’ filesystem format for Linux‐based operating systems is ext, as you are probably well aware, even though Linux can also speak BTRFS, XFS, minix, msdos, umsdos, and vfat.
The common filesystem format for the BSDs is Berkeley Fast FileSystem, an improvement on the prior Unix FileSystem (‘UFS’) format that was, after all, a UCB invention for 4.2BSD in 1983. If you want to know all of the details of it, it is covered at great length in chapter 7 of The Design and Implementation of the 4.3BSD Unix Operating System by Samuel Leffler, Marshall Kirk McKusic, Michael J. Karels, and John S. Quarterman. The follow‐up book from 7 years later is The Design and Implementation of the 4.4BSD Operating System by Marshall Kirk McKusic, Keith Bostic, Michael J. Karels, and John S. Quarterman. The Berkley FFS is in chapter 8, there, alongside the then new (first proposed the same year that the first book was published) Log-Structured Filesystem, Berkeley LFS.
Although BSD doco still mostly refers to the FFS as FFS, there is a fair degree of confusion. Some FreeBSD doco calls FFS ‘UFS2’. NetBSD calls FFS ‘FFS’, notes that it is sometimes called ‘UFS1’ or ‘UFS2’, and recognizes four different versions: FFSv1 level 1, FFSv1 level 4, plain FFSv2, and FFSv2 with EA and ACL support. According to OpenBSD doco, there are just the Fast FileSystem (FFS) and the Enhanced Fast FileSystem (FFS2).
The BSDs all understand and speak, even if they cannot agree on naming and versioning, the Berkeley FFS from the books. NetBSD also understands the Berkeley LFS, although FreeBSD and OpenBSD do not.
There is only one GUID Partition Table type code for LFS and several for UFS/FFS.
Although the Berkeley LFS was explicitly a journalled filesystem, writing both data and metadata to disc as a ‘log’, both NetBSD and FreeBSD have since invented journalling layers that can sit on top of FFS.
NetBSD has WAPBL, which you can find out more about from the wapbl(4) manual (Always read the manual.) and the 2008 announcement to the tech-kern mailing list. There is also background in this 2006 proposal posted to tech-kern and the ensuing thread.
FreeBSD has gjournal, on top of what (it calls) UFS, originally invented for the new GEOM mechanism that came out in FreeBSD 5.0 in 2003. However, it has pulled back from this and nowadays recommends the old ‘soft updates’ system that is described in the books, to which has been added a metadata‐only journalling mechanism. A lengthy discussion can be found in the FreeBSD doco article Implementing UFS Journaling on a Desktop PC which hyperlinks to an on‐line copy of the gjournal(8) manual.
| GUID | Description |
|---|---|
516E7CBA-6ECF-11D6-8FF8-00022D09712B |
FreeBSD ZFS |
85D5E45D-237C-11E1-B4B3-E89A8F7FC3A7 |
MidnightBSD ZFS |
6A898CC3-1DD2-11B2-99A6-080020736631 |
MacOS ZFS |
ZFS is not the ‘lingua franca’ nowadays simply because neither DragonFlyBSD nor OpenBSD speak it, the former obviously preferring its own native HAMMER2 filesystem that it began (with HAMMER1) almost a decade before any of the other BSDs started to support ZFS, and the latter not even going beyond Berkeley FFS to the 1990s Berkeley LFS let alone to filesystems from the early years of the 21st century.
ZFS provides an official interchange mechanism amongst operating systems through its ‘send’ and ‘receive’ mechanism, which you can read about in the OpenZFS doco or even in old dead doco from Oracle from the OpenSolaris days.
FreeBSD has spoken ZFS since FreeBSD 7.0 in 2008, and has been able to bootstrap from a ZFS root partition since FreeBSD 8.0 in 2008, although the installer did not automate installing the filesystems and bootloader onto a ZFS pool until FreeBSD 9 in 2012. NetBSD has (non‐experimentally) spoken ZFS since NetBSD 9.0 in 2020.
If interchange between the non‐ZFS BSDs is not a concern, or if data interchange between operating systems is not a concern at all, then in the second quarter of the 21st century, ZFS is a better choice than the ‘lingua franca’. The use of snapshotting for boot environments is well integrated into FreeBSD nowadays, the tooling is well established, and knowledge of ZFS is fairly widespread to the extent that there are many ‘how I set up and use ZFS’ articles on the WWW from the past decade or so outwith the FreeBSD WWW site, discussion fora, and wiki. I've used it myself since installing PC-BSD 9 in the early 2010s.
© 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.