How to mount HFS Classic drives on MacOS Catalina and later


, , ,

Apple discontinued support for classic HFS (also known as Mac OS Standard) volumes in MacOS 10.15 Catalina. As a result, Macs running the latest version of MacOS cannot mount volumes created on vintage machines — such as those running Mac OS 8 and Mac OS 9.

Drives using the antiquated vintage HFS file system appear in Disk Utility, but you cannot mount them. Attempting to do so will produce the following error code: “ error 49153“.

Fortunately, there’s a relatively straightforward workaround — provided you’re confident enough with the Terminal. This requires you to install the HomeBrew package manager. Instructions can be found here.

Once you’ve done that, you’ll need to download the hfsutils application. Run the following command:

brew install hfsutils

Then, you’ll need to mount the volume. First, find the name of your device. If you’re uncertain, you can identify this in Disk Utility. I’ve circled what to look for.

Once you’ve got that, you’ll need to mount it. In superuser, run the following command:

sudo hmount /dev/

Here’s where things get a bit tricky. You won’t be able to view the contents of your device through Finder. Nor can you use the standard Unix directory traversal commands — like ls, cd, and so on.

Fortunately, hfsutils come with a few helpful utilities here. Running ‘hls’ in superuser mode will list the entire contents of the volume, including the directory structure.

It’s worth noting that classic HFS volumes don’t use the standard Unix directory structure, where folders are preceded by a forward slash (“/”). Instead, it uses the colon (“:”).

Once you’ve figured out what you want to move to your modern Mac machine, run the hcopy command in superuser mode. Using the “-r” flag tells it to preserve the files as raw data. Here’s an example of the format you should use.

sudo hcopy -r “:”

According to SwissMacUser (where I first learned of this approach), you can also use the “*” wildcard to grab everything. Once you’ve finished, unmount the volume with the humount command.

As readers of The Register know, I’m something of an enthusiast when it comes to vintage Mac computers. I have a 12-inch iBook G4 which I use for much of my writing — and it works great.

I recently added a PowerBook G3 Lombard to my collection. And although it’s in dire need of a new PRAM battery and a hard drive replacement, it still works perfectly fine. But as this blog proves, getting it to talk to more modern Mac machines is somewhat tricky.

I could easily circumvent this issue by installing one of the supported versions of Mac OS X (like Panther or Cheetah), or installing an FTP server on my home network, I’d rather not bother. Not least because I’m rather partial to the mid-1990s weirdness of Mac OS Classic. This workaround saves me that effort.