Capability to read and write ofd HFS disks on Mac has been removed since a long time. Capability to simply read was also removed since Catalina I think.
That is surprising and sometimes frustrating. I still use a 90's MacBook for a few tasks and need from time to time to transfer files to newer Mac or read some old files stored on 3.5" disks.
Solution I use is to read the disk on an old Mac with MacOS 10.6 (I'm lucky enough to have kept one) and transfer to USB stick or airdrop…
As there is no USB port on the Macbook of course (and I have no more a working 56k modem to transfer by mail), only option if not 3,5" disk is using PCMCIA port on the MacBook for writing to an SD Card to be read in Mac Sonoma. But reading directly 3.5" disk would be great.
Hence my questions for the forum:
- how hard would it be to write such a driver for READING only HFS on Mac Sonoma?
- There are some software like FuseHFS. Did anyone experience it ? Did anyone have a look at the source code (said to be open source).
- does anyone know why Apple removed such capability (I thought it was a tiny piece of code compared to the GB of present MacOS)?
Thanks for any insights on the matter.
how hard would it be to write such a driver for READING only HFS on Mac Sonoma?
There are two parts to this:
-
How hard is it to write code that reads HFS volumes?
-
How hard is it to package that code into a file system plug-in?
The answer to the first is largely dependent on your level of expertise. HFS is complicated, but it’s not that complicated. Implementing it read/write is definitely challenging; tmplementing it read-only isn’t too bad.
I’ll cover the second part next…
There are some software like FuseHFS. Did anyone experience it? Did anyone have a look at the source code (said to be open source).
I haven’t looked at the code, but the name makes it clear that it’s using FUSE. That presents its own challenges.
Writing VFS plug-ins for macOS is very difficult. At some point we hope to make that easier by way of FSKit. However, FSKit is not something you can use yet. See this thread.
does anyone know why Apple removed such capability … ?
I don’t think we’ve offered a specific explanation for that. I will note, however, that:
-
The HFS implementation lived in the kernel, and kernel code is costly (because it’s wired memory) and troublesome security-wise.
-
Removing old features is part of what keeps macOS under control (for some definition of that phrase :-) after more than 40 years of continuous development.
My user-level workaround for this is to run an old version of macOS in a VM.
If you’re going to tackle this as a coding project, I recommend that you:
-
Write your core HFS code as a library.
-
Test that in user space.
-
By the time you’re done, FSKit may well be available. If it is, using it is a no brainer. If not, you have to decide whether to wait for it, or use an alternative technique, like FUSE.
Share and Enjoy
—
Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"