I started to reverse engineer APFS and want to share what I found out so far.
Notice: I created a test image with macOS Sierra 10.12.3 (16D32). All results are guesses and the reverse engineering is work in progress. Also newer versions of APFS might change structures. The information below is neither complete nor proven to be correct.
Why there is no checksum for data in APFS is still beyond my comprehension. I understand they have a reasoning but I do not get it. The one reason I use btrfs everywhere is the checksum. I have been bitten by the lack of it before, many times.
Although, not saying any of the filesystems in Linux are doing it flawlessly. BTRFS for desktop is still problematic. So many times I have to balance and scrub my data only because metadata part is full.
I was just hopeful APFS can do something I care!
Dominic Giampaolo is still the best filesystem designer (for desktop usage) that has ever lived and i can almost certainly tell you that the ten year in the making of the new apple file system will make certain aspecs either redundant
I am a huge fan of XFS (still the best stable linux FS) but i dabble with Reiser for certain transfer loads where is it incredibly fast compared to ext 1/2/3/5. Ext is fast, but in real world usage not even close to xfs (just bench boottimes with proper parmeters)
ZFS is an option, but it is hard to justify on the desktop as the overhead is just too large. (according to apple)
At least with FreeBSD, the overhead with ZFS isn’t that much on newer systems. If you’re running FreeBSD+ZFS on a 64-bit system, if you’ve got more than 2GB of ram, you shouldn’t have to do anything different. 32-bit has issues, but that is more due to limitations of address space rather than physical memory.
That is out of the box. For some workloads, ZFS is suitable for 512MB systems, with proper tuning.
What is that “checksum” entry for the block that “Each filesystem structure in APFS starts with” then?
Metadata checksums, perhaps?
On a tangential note, didn’t know of Kaitai Struct, mentioned in the article. Very nice tool.