FOSSPicks
macOS filesystem
apfs-fuse
Even when you're not using other operating systems, it's always been important for Linux to be able to access other filesystems. For example, most of us read and write to Microsoft VFAT- and FAT32-formatted devices without even thinking about it, whether it's USB storage, a camera, or a shared hard drive partition. That's because FAT has been part of the kernel from almost the very beginning and subsequently built into many embedded devices. But most foreign filesystems are more esoteric. Even VFAT's successor on Windows, NTFS, doesn't enjoy the same ubiquitous compatibility, even with the open source ntfs-3g
implementation, and it's the same for Apple-native macOS filesystems. For many years, this was HFS+, which did enjoy a certain level of compatibility on Linux systems. But then Apple went and replaced it all with APFS, which was designed for privacy and the solid state storage on both Apple's Macs and iOS devices.
APFS uses a GPT partitioning scheme with volume containers, often encrypted, that operate a little like LVM on Linux, which makes it difficult to access from Linux. But thanks to the brilliant apfs-fuse
project, it can be done, and it works remarkably well. Like any Filesystem in USErspace (FUSE), it can be built and run locally, mounting an APFS device to a local directory with an appropriately furnished mount
command, for example:
apfs-fuse -o allow_other /dev/sdb2 /mnt/macos
There are arguments for mounting specific containers and mounting a software encrypted volume, plus debug options for troubleshooting and for ignoring unknown chunks of data. There's support for macOS and iOS, extended attributes, symlinks, and direct mounting of transparent decompression for zlib and LZVN. As brilliant as all this is, it can't write files or access drives encrypted with Apple's T2 chip. Regardless of this limitation, other operating systems just can't get close to this cross-filesystem compatibility. It's great to see that this vital Linux capability is keeping up with the times.
Project Website
https://github.com/sgan81/apfs-fuse
File sync
Buy this article as PDF
(incl. VAT)