Looking at the picture below from BSDCan 2008 FreeBSD Developer Summit – https://people.freebsd.org/~bz/200805DevSummit/ – You may get impression that FreeBSD developers does not use FreeBSD on their desktops and/or laptops, which was often true in 2008. Ten years later this seem to have changed and more FreeBSD developers use FreeBSD. At least more then in 2008 😉
For those ones that still use Mac OS X on their desktops/laptops instead of FreeBSD there is now possibility to mount HFS+ filesystem volumes under FreeBSD in read only thanks to FUSE subsystem. The project that allows this – FUSE driver for HFS+ filesystems – https://github.com/0x09/hfsfuse – states that its “Created for use on FreeBSD which lacks a native driver (…)”.
Thanks to Tobias Kortkamp this driver is now available in the FreeBSD Ports tree as sysutils/fusefs-hfsfuse port.
The installation is simple:
# pkg install fusefs-hfsfuse
My buddy that uses Mac OS X created a new HFS+ volume for me and put a file on it, lets mount it for a test.
# gpart show da0 => 34 15356093 da0 GPT (7.3G) 34 6 - free - (3.0K) 40 409600 1 efi (200M) 409640 14684336 2 apple-hfs (7.0G) 15093976 262151 - free - (128M)
Lets verify that with file(1) command.
# file -s /dev/da0p2 /dev/da0p2: Macintosh HFS Extended version 4 data last mounted by: 'HFSJ', created: Wed Mar 14 16:59:41 2018, last modified: Wed Mar 14 15:00:44 2018, last checked: Wed Mar 14 14:59:41 2018, block size: 4096, number of blocks: 1835542, free blocks: 1827692
Yep, that’s the one, lets mount it.
# /usr/local/bin/hfsfuse --force -o noatime /dev/da0p2 /mnt # mount sys/ROOT/default on / (zfs, local, noatime, nfsv4acls) devfs on /dev (devfs, local, multilabel) /dev/fuse on /mnt (fusefs.hfs, local, noatime, read-only, synchronous)
Now lets try to list and access its contents.
# ls /mnt new-document.pdf # cp /mnt/new-document.pdf ~ # echo $? 0 # ls ~/new-document.pdf new-document.pdf # mupdf new-document.pdf
Everything seems to work flawlessly. If time permits I would update sysutils/automount port to add HFS filesystem support for convenient automount.