HFS+ is the files system used on many Apple Macintosh computers by Mac OS. You can mount this filesystem in Ubuntu with read only access by default. If you need read/write access then you have to disable journaling with OS X before you can continue.

In OS X, open a terminal and type:

diskutil list

You will obtain an output similar to the following:

/dev/disk0
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *256.1 GB   disk0
   1:                        EFI                         209.7 MB   disk0s1
   2:                  Apple_HFS Macintosh HD            230.0 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
   4:       Microsoft Basic Data                         25.2 GB    disk0s4

Note down the identifier of your OS X partition. It is of type "Apple_HFS" and usually named "Macintosh HD". In our example, it is disk0s2.

To disable journaling, type the following in the terminal:

sudo diskutil disableJournal volumeName

Where volumeName is the previously discovered identifier for OS X partition (disk0s2 in our example).

There was a bug in certain versions of OS X that would allow this command to complete successfully, but still not disable journaling. In order to fix this issue, you may need to enable journaling first with the command:

sudo diskutil enableJournal volumeName

Disabling journaling on your main OS X partition is not recommended however as journaling is an important feature of any filesystem that can prevent damage and data loss: http://en.wikipedia.org/wiki/Journaling_file_system

Enable HFS+ read/write for a non-root Ubuntu user

After disabling journaling on your OSX HFS+ partition, you are likely to find that you cannot write any data to the partition under Ubuntu unless you use sudo or log in as root. You can enable read/write access to your OSX home directory by changing your Ubuntu User ID (UID) to match your UID under OSX.

By default, the first user in OS X has a UID of 501, but you can double check this (or discover the correct UID for the required user) by opening the terminal under OSX and running the id command. If your User ID is something different from 501, replace 501 with your other UID in the terminal commands below.

After verifying the correct UID, you need to log into Ubuntu as either root or as any other user that is a member of the sudo group except the one you wish to grant write access to as we don't want to edit a user that we're currently logged in as. If you're running Ubuntu on a PPC Mac, you are likely using yaboot to boot Linux and OSX in which case you can log in as root by typing Linux single at the yaboot prompt.

The following commands presume you are logged in as a regular user who has sudo rights. Simply substitute username for the Linux user you wish to enable HFS+ write access for and 501 for the relevant OSX UID. If you are logged in as root then run the commands without the sudo prefix.

sudo usermod --uid 501 username
sudo chown -R 501:username /home/username

You may also want to fix your login screen as by default Ubuntu doesn't list users with a UID of less than 1000. To do this, just open a Terminal and run sudo nano /etc/login.defs and search for UID_MIN. Change that value from 1000 to 501, and when you reboot your user will be listed on the login screen.

hfsplus (last edited 2014-09-02 16:36:12 by allcoms)