6

I know the specs are available somewhere because Paragon Software already offers a very capable APFS driver for Windows at https://www.paragon-software.com/home/apfs-windows/

I'm looking for a driver like hpfsutils that would let my now multi boot system interoperate more fully.

Bryan Dunphy
  • 179
  • 1
  • 1
  • 6
  • 2
    The fact that someone sells a good **proprietary** software does not mean the full specs are available to the general public and/or that is easy to implement. You are inventing stuff. – Rui F Ribeiro Nov 15 '18 at 14:57
  • Did you consider the possibility that I was unaware of what you just said and thought that it simply meant "If entry X can get the specs then anyone can, possibly in a less detailed form?" – Bryan Dunphy Nov 15 '18 at 15:08
  • Is [this](https://developer.apple.com/support/apple-file-system/Apple-File-System-Reference.pdf) a spec or only a programming guide? –  Nov 15 '18 at 23:40
  • @RuiFRibeiro: Apple has recently (IIRC Oct 2018) released the [APFS specification](https://developer.apple.com/support/apple-file-system/Apple-File-System-Reference.pdf), if you missed the news. I am aware of apfs-fuse, but I also would very much like to see the official spec incorporated, and it would be nice to know if someone is working on it. – dirkt Nov 16 '18 at 09:25

2 Answers2

7

Through the magic of Google, I quickly discovered that there is an APFS FUSE filesystem project currently in progress:

https://github.com/sgan81/apfs-fuse

It seems to be based on reverse engineering, so it is likely that the specifications are only available from Apple under a NDA and/or for a price.

telcoM
  • 87,318
  • 3
  • 112
  • 232
  • 2
    Apple has released the [APFS specifications](https://developer.apple.com/support/apple-file-system/Apple-File-System-Reference.pdf) recently, IIRC Oct 2018, and it was in the news. Like the OP I hoped this could be used to improve apfs-fuse, which is read-only, and it would be nice to know if someone is working on it. – dirkt Nov 16 '18 at 09:27
2

In case it is helpful to someone, this is how I could install the apfs-fuse suggested by telcoM, in Ubuntu 16.04:

sudo apt install fuse libfuse-dev bzip2 libbz2-dev cmake g++ git libattr1-dev
git clone --recursive https://github.com/sgan81/apfs-fuse.git
cd apfs-fuse
mkdir build
cd build
cmake ..

Ubuntu 16 has fusermount version 2.9.4, which needs adapting the make file to "change the option USE_FUSE3 to OFF" as explained in the readme file.

sed -i.bak 's/USE_FUSE3:BOOL=ON/USE_FUSE3:BOOL=OFF/' CMakeCache.txt

or it can be done through a ncurses GUI:

sudo apt install cmake-curses-gui
ccmake .

Finally:

make
sudo cp apfs* /usr/local/bin/

To mount :

apfs-fuse /dev/$diskpart $mountpoint

And fusermount -u $mountpoint to unmount.

Note that it is read-only for now.

mivk
  • 3,446
  • 29
  • 31
  • 1
    Just noting that instead of using sed or curses gui, you can just go into the build folder and then run cmake with the flag turning off fuse 3... e.g. `cd build && cmake -DUSE_FUSE3=OFF .. && cd .. && make` which would build the tools from apfs-fuse. Optionally, you can run `sudo make install` after all those commands, to install the tools (instead of using `sudo cp apfs* /usr/local/bin/`) – Andrew Larson Feb 04 '21 at 08:18