Reading HFS standard and MFS on Catalina

During the lockdown I decided to use some of my time to backup all the all Mac disks and floppies I have at home so I can store them in a somewhat more readable format that SyQuest cartridges and MFS formatted SD 400k floppies and finally free up lots of space in some libraries.

Doing so I eventually discovered that macOS Catalina can neither mount HFS "non plus" (Apple removed HFS standard support in 10.15, apparently just for the sake of it... Hating this approach to "old", even more when they're keeping support for FAT12 DOS floppies and removing support for their own floppies...) nor MFS (it's actually not supported since Mac OS 8, but from Mac OS X 10.4 Apple offered sources to build a MFS read only support using the great system expandability features that OS X inherited from NeXT).

So, after the still ongoing struggle to get data off damaged floppies (I started weeks ago and still probably have a couple of weeks to go) I'm wondering how to easily access that data from disk images. I know I can use emulators such as minivmac, Sheepshaver and Mojave on VirtualBox to access that data, but that would mean a lot more work to get readable data. I'd love to simply be able to mount old disks and access data through finder.

Chapter 1: HFS Standard

  • HFS standard options are still in /System/Library/Filesystems/hfs.fs plists, so I'm wondering if Apple disabled old HFS support through some external option. Does anyone know if there's any option to enable it back? (Maybe something like boot-args="no32exec=0" to run 32-bit code). Does anyone know what would happen if I took hfs.fs from Mojave and used it in Catalina? Would it possibly work?
  • thejoelpatrol/fusehfs GitHub repo -> managed to build it botching the code but when I mount Standard HFS images I get errors such as Device not configured
  • 0x09/hfsfuse GitHub repo -> it builds and installs correctly, but when I try to mount old HFS images I get Plain HFS volumes not currently supported. Couldn't open volume: Undefined error: 0

  • hfsutils (https://www.mars.org/home/rob/proj/hfs/) -> these are the only working ones but they're a mess to work with. FuseHFS is apparently working with it, but surprisingly it doesn't seem to work

  • elliotnunn/machfs GitHub repo -> I was suggested this library, it seems a great idea, but using DumpHFS seems like using hfsutils

Chapter 2: MFS

  • MFSLives https://web.archive.org/web/20080517055506/https://developer.apple.com/samplecode/MFSLives/index.html -> this was the sample code that apple distributed from Tiger onwards. I read it was supported even on 10.8. Unfortunately it's built for 32 bit so Catalina can't use it (why do they keep removing features?) and I can't get it to build in Xcode.
  • d235j/fusemfs GitHub repo -> I can't find a way to build it either, even after updating the project, updating the code from linked repositories to the last version. Even if libfuse_ino64.2.dylib is in /usr/local/lib and that path is added to Xcode options I just keep getting ld: library not found for -lfuse_ino64.2

Unfortunately I'm too much of a noob to be able to edit those projects, but I think it would be great if Apple offered to its user the chance to read their old Mac data like we're able to do with old DOS disks.

Possible solution?

Apparently FuseMFS is using zydeco/libmfs GitHub repo (which is used in zydeco/minivmac4ios GitHub repo together with libhfs) to create a FUSE wrap to access those file systems, would it be easier to update FuseMFS making it buildable on Catalina and add there libhfs?

I'm just wondering it, but not being a developer I really don't know if it's feasible.

Thanks in advance :)


Solution 1:

Still not using the Finder, but this java-based tool was able to mount an old HFS disk image and retrieve files in my Catalina (10.15.7) environment.

https://www.catacombae.org/hfsexplorer/