Skip to content

Mounting

Joachim Metz edited this page Dec 19, 2018 · 5 revisions

Introduction

To mount a storage media image containing an APFS container and volume(s) you can use fsapfsmount.

There is support for the following back-ends:

  • fuse
  • OSXFuse

To build fsapfsmount see Building.

Mounting

To mount the first volume of an APFS container:

fsapfsmount -f 1 image.dmg /mnt/fuse

To mount the first volume of an APFS container at a certain offset:

fsapfsmount -f 1 -o 20480 image.dmg /mnt/fuse

To mount the first volume of an encrypted APFS container:

fsapfsmount -f 1 -p PASSWORD image.dmg /mnt/fuse

This will expose file entries contained in the first APFS volume.

/mnt/fuse/.fseventsd

If you get the error:

No sub system to mount FSAPFS.

That means fuse was not detected when building the fsapfstools, check if you have fuse-dev installed and if ./configure is able to detect it. The last part of the ./configure output shows you this in an overview.

Why is /mnt/fuse not accessible as root

By default fuse prevents root access to the mount point when an APFS container is mounted. To enable this functionality first check the fuse documentation.

Make sure the fuse configuration file:

/etc/fuse.conf

Contains:

user_allow_other

Pass "allow_root" to the fuse sub system using the fsapfsmount -X option:

fsapfsmount -X allow_root image.dmg /mnt/fuse

Windows

Windows is currently not supported.

Unmounting

You can unmount /mnt/fuse using umount:

umount /mnt/fuse

Or fusermount:

fusermount -u /mnt/fuse

Troubleshooting

First of all make sure to check the output of configure. If you're seeing something like the following output configure was unable to detect an usable fuse.

Building:
   ...
   FUSE support:                                    no

On Mac OS X:

  • make sure that you only have OSXFuse installed and not another variant, like MacFuse, besides it.
  • try adding the C pre processor flags that set the fuse API version, e.g.
CPPFLAGS=-DFUSE_USE_VERSION=26 ./configure
  • if all else fails; file a support issue and attach config.log

On Ubuntu:

fusermount – failed to open /etc/fuse.conf – Permission denied

Make sure you're part of the group fuse:

sudo addgroup <username> fuse

If fusermount keeps complaining it cannot open fuse.conf:

sudo chmod o+r /etc/fuse.conf
Clone this wiki locally