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.
On Mac OS X side
In OS X, open a terminal and type:
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
On Ubuntu side
First, make sure that you have hfsprogs installed. Example installation command:
sudo apt-get install hfsprogs
Next, mount or remount the HFS+ drive; commands need to be as follows:
sudo mount -t hfsplus -o force,rw /dev/sdXY /media/mntpoint
sudo mount -t hfsplus -o remount,force,rw /mount/point
Finally, if the drive was improperly unmounted or has otherwise become partially corrupted run fsck.hfsplus ... as such:
sudo fsck.hfsplus -f /dev/sdXY
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.