Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / Languages / Java

Access HFS+ from Windows (read-only) without installing any drivers

4.00/5 (1 vote)
2 Nov 2014CPOL3 min read 11.8K  
A way to access files on HFS+ filesystems that side-steps alltogether the tar-pit called windows-drivers-from-hell (tm).

Introduction

This article is a lay-man's guide to accessing HFS+ filesystems from your Windows OS mainly to transfer over data / back them up / salvage them. This method comes in handy when all other methods out there (Windows HFS+ drivers and so on) fail to recognize said HFS+ filesystems, thus restricting the options available.

Prerequisites

  1. IQ > 1
  2. 20mins of your time
  3. Willingness to get your hands a bit dirty
  4. Having Administration Privileges on the Windows OS you are planning to perform the procedure
  5. Having a working Java installation on your Windows machine

Steps

  1. Connect your HFS+ harddrive to your Windows OS (doesn't matter how you do it IDE, SATA, USB, Firewire all work)
     
  2. Ensure that Windows does recognize the physical disk as connected.

    To do that you have to use the "Create and Format Hard Disk Partitions" utility that comes with every Windows Installation out there.

    WARNING - HERE BE DRAGONS: The utility will prompt you to format said disks because Windows, by default, cannot recognize the underlying HFS+ filesystem, deeming it "unhealthy". Press "Cancel". Tweaking the disks will ruin your HFS+ partition(s) and your day along with it.

    You should be able to see the hfs+ physical disk marked as "Unhealthy" through-and-though. Don't worry, this is normal. Just jot down the index-number assigned to said physical disk (it's probably been named "Disk 1" in which case its index is 1).
     
  3. Download the stand-alone version of the utility called HFSExplorer and extract its contents:

    http://www.catacombae.org/hfsexplorer/
     
  4. Open a file explorer and go to:

    [download directory]/hfsexplorer-x-y-z/bin
     
  5. We will now set hfsexplorer to always run with administrator privileges.

    Omiting this step will probably cause the utility to not work as intended. In fact it will probably fail to even detect the hfs+ drive you attached to begin with.

    Open the properties of the hfsexplorer.exe file:

    Right click on hfsexplorer.exe -> Properties -> Compatibility -> Check the checkbox named "Run this program as administrator" -> OK

    You might get some sort of a confirmation dialog in the process. Press OK.
     
  6. Double-click on hfsexplorer.exe
     
  7. Once the application launches access the menu option:

    File -> Load file system from device

    And select the radio button that reads:

    "Specify device name"
     
  8. Copy-paste the following to the textbox right below "Specify device name", replacing [IndexOfHardDisk] with the index you had jot-down above:

    \\?\GLOBALROOT\Device\Harddisk[IndexOfHardDisk]\Partition0

    In most cases the path looks something like:

    \\?\GLOBALROOT\Device\Harddisk1\Partition0
     
  9. If you've done everything correctly so far and the HFS+ partition is in a decent state you should get from hfsplus a dialog with a drop down list which prompts you to select the partition to mount in the hfs-harddrive. Select the item in the drop down list which explicitly mentions the HFS+ keyword.

The hfsplus utility at this point should display the contents of the hfs+ partition. You may browse the contents of the drive freely, but bare in mind that in order to open them you have to first copy them over to a partition of your Windows machine. To do that you have to right click in the hfs+ file/folder and select the extraction-option. Follow through with the dialogs that will pop up and you should be on your way.

Points of Interest

Bare in mind that such stand-alone utilities need administration privileges to access harddrives and file-systems in general. If they lack such privileges they tend to silently fail leaving users in the dark in terms of what's wrong.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)