How to Mount & Copy HFS Classic Mac Drives on MacOS
Modern versions of MacOS no longer support HFS, meaning that new Macs can no longer read, mount, or write to classic HFS drives. But a fair amount of longtime Mac users continue to have older Macs and old Mac hard drives that are in HFS format, way back from the days of Mac OS 8, Mac OS 9, and early Mac OS X, and thus may wish to mount, read, and copy files from those old classic HFS volumes, to their modern Mac.
If you attempt to mount an HFS drive in modern MacOS, you will see an error message stating “Could not mount “Name”. (com.apple.DiskManagement.disenter error 49153.)” But don’t despair, there’s a solution available.
Officially, MacOS abandoned support for writing and formatting to HFS in Mac OS X Snow Leopard, and then MacOS abandoned HFS read support in macOS Catalina 10.15, so basically any modern MacOS system does not have the ability to do anything with these drives, including Sonoma, Ventura, Monterey, etc.
If you need to mount and read data from a classic HFS formatted drive or volume, and you’re running macOS Sonoma, Ventura, or newer operating systems, you can still do so with the help of a HomeBrew tool called hfsutils.
How to Mount & Copy Data from HFS Drives to Modern MacOS
- If you haven’t done so already, install Homebrew on macOS Sonoma or Ventura or newer before anything else, this is required to be able to easily install hfsutils
- Install hfsutils by using the following brew command:
- With hfsutils installed, connect the HFS drive to the Mac, then back at the command line, use the following command to discover the device identifier:
- Locate the name of the HFS volume, and then look under the “IDENTIFIER” column to find the device ID, it will be something like “disk3s5”
- Now mount the HFS drive based on that identifier, like so:
- With the drive mounted, you can now list out the contents of that HFS drive using the ‘hls’ command (regular ls will not work)
- The paths for HFS are delineated by : colon rather than forward slash /, so you need to use : instead, for example to look into “Documents” it would be:
- To copy files from the “:Documents” folder on the HFS volume to the current Mac, it is recommended to change your PWD to the destination folder you have in mind, then use the following type of syntax, in this example we’re using a wildcard * to copy everything from the Documents folder to the PWD:
- Confirm in the Finder (or Terminal) that your data copied from the HFS volume to the modern Mac
- When finished copying data from the HFS volume, you can unmount the drive with:
brew install hfsutils
diskutil list
sudo hmount /dev/disk3s5
sudo hls
sudo hls ":Documents"
sudo hcopy -r ":Documents*" ./
humount
Your files and/or data should now be copied from the classic HFS volume to the modern Mac file system, even if it’s running macOS Sonoma or a new operating system.
This tip was inspired by a post I found on MJTSai, and made me remember that I have at least a half-dozen old Mac drives with some ancient digital content that I don’t want to lose access to. MJTSai pointed to this from MattthewHughes.co.uk, which referenced this from SwissMacUser.ch, so each of those posts were used as some reference material for this article, cheers to them!
Do you still have any old Mac classic drives or volumes in HFS format that contain data you’d like to access? Did the hfsutils solution discussed here work for you to copy data from those volumes? Did you find another solution? Let us know what worked for you, to access and copy data from old HFS drives, to modern MacOS!
Ich habe versucht meine alte Festplatte zu mounten. Hier das Ergebnis. Immer “Busy”?!
joachimfalkenhagen@iMacvonJoachim ~ % diskutil Liste /dev/disk0 (intern, physisch): #: TYP NAME GRÖSSENKENNUNG 0: GUID_partition_schema *1,0 TB Festplatte0 1: EFI EFI 209,7 MB Festplatte0s1 2: Apple_APFS Container-Festplatte2 1000,0 GB Festplatte0s2 /dev/disk1 (intern, physisch): #: TYP NAME GRÖSSENKENNUNG 0: GUID_partition_schema *28,0 GB Festplatte1 1: EFI EFI 314,6 MB Festplatte1s1 2: Apple_APFS Container-Festplatte2 27,6 GB Festplatte1s2 /dev/disk2 (synthetisiert): #: TYP NAME GRÖSSENKENNUNG 0: APFS-Containerschema – +1,0 TB Festplatte2 Physische Speicher disk1s2, disk0s2 1: APFS Volume Macintosh HD – Daten 149.4 GB disk2s1 2: APFS Volume Preboot 2,2 GB disk2s2 3: APFS Volume Recovery 1,2 GB Festplatte2s3 4: APFS Volume Macintosh HD 10,2 GB Festplatte2s4 5: APFS Snapshot com.apple.os.update-… 10,2 GB Festplatte2s4s1 6: APFS Volume VM 1,1 MB Festplatte2s5 /dev/disk3 (extern, physisch): #: TYP NAME GRÖSSENKENNUNG 0: FDisk_partition_scheme *2.0 TB Festplatte3 1: Apple_HFS sicherung_1 1.8 TB disk3s1 2: Apple_HFS Programm-Installer 200,0 GB Festplatte3s2 /dev/disk4 (extern, physisch): #: TYP NAME GRÖSSENKENNUNG 0: Apple_partition_schema *40,0 GB Festplatte4 1: Apple_partition_map 32,3 KB disk4s1 2: Apple_Driver43 28,7 KB Festplatte4s2 3: Apple_Driver43 28,7 KB Festplatte4s3 4: Apple_Driver_ATA 28,7 KB Festplatte4s4 5: Apple_Driver_ATA 28,7 KB Festplatte4s5 6: Apple_FWDriver 262.1 KB Festplatte4s6 7: Apple_Driver_IOKit 262.1 KB Festplatte4s7 8: Apple_Patches 262.1 KB Festplatte4s8 9: Apple_HFS Macintosh HD 37,2 GB Festplatte4s9 (freier Speicherplatz) 2,8 GB – joachimfalkenhagen@iMacvonJoachim ~ % sudo hmount /dev/disk4s9 hmount: /dev/disk4s9: Fehler beim Öffnen des Mediums (Ressource besetzt) joachimfalkenhagen@iMacvonJoachim ~ %
While I deeply appreciate learning about (and installing!) `hfsutils`, there is a simpler way of accessing old disks: mount them on a Mac running an appropriate version of MacOS, share that volume, then mount it on the “too new” Mac as a network volume.
This is the only reason I keep an old Mac Pro 1,1 around. But it could be done on a Mac Mini and USB or FireWire disk adapter.
Last login: Tue Feb 27 14:44:52 on ttys000
You have new mail.
mckemper@iMac-45320 ~ % brew install hfsutils
==> Downloading https://ghcr.io/v2/homebrew/portable-ruby/portable-ruby/blobs/sha256:02180ca8b8295422ae84921bcf034b7ee8ce5575488bd5e6a37a192e53cd5d34
### 5.5%curl: (92) HTTP/2 stream 1 was not closed cleanly: PROTOCOL_ERROR (err 1)
Error: Checksum mismatch.
Expected: 02180ca8b8295422ae84921bcf034b7ee8ce5575488bd5e6a37a192e53cd5d34
Actual: 46f4a429aa00094683ee7f23ef1e818c4c905083d3850d61501ba2ce710b5da4
Archive: /Users/mckemper/Library/Caches/Homebrew/portable-ruby-3.1.4.el_capitan.bottle.tar.gz
To retry an incomplete download, remove the file above.
Error: Failed to install Homebrew Portable Ruby (and your system version is too old)!
mckemper@iMac-45320 ~ %
I am running the latest version of Ventura, 13,6.4
Hmm. Try running the brew update command first, and then brew cleanup, and then try the install gain.
brew update
and
brew cleanup