Bad news (sort of). You can’t run HFS+ with journalling enabled on linux distros.
So first of all we’ll have to disable it (and yes, at this point we need the drive to be connected to something with macOS on board).
Disk Utility won’t let you turn in off these days, so we are going to do it via terminal:
find your disk with
diskutil list and then disable journalling:
sudo diskutil disableJournal /dev/diskXsY
Install needed software
We need a few addtional packages first:
sudo apt-get install hfsplus hfsutils hfsprogs
First we need to find where does the drive live with
sudo fsdisk -l command. The output will be a list of all drives where each ‘entry’ will look something like this:
What we need here is the path of the drive. It is
/dev/sda2 in my case.
Now we need to get the
UUID of the drive with
sudo blkid /dev/sdx2 command:
/dev/sda2: UUID="840adb20-d411-3474-ad41-21052e6c6119" LABEL="Abyss 1" TYPE="hfsplus" PARTUUID="c2717a9e-6042-43d4-be19-d7e202163034"
x2with whatever the path is in your case of course.
Last piece of the puzzle is the user UID. Simply
echo $UID and you will get a number representing your user UID. Let’s say it’s
Add this line (with the correct UUID and mount point absolute path) to the
UUID="the-uuid" /the/mount/point hfsplus defaults,uid=UID,rw 0 0
Reboot. Or you can try to just mount it right away:
sudo mount /the/mount/point.
Now we have read-write HFS+ volume we can work with.
A few times I’ve encountered an error that looks like this:
cannot touch 'test': Read-only file system
Most likely I’ve turned off the external drive without unmounting it properly or something similar happens.
This can be solved by running HFS file system consistency check:
sudo fsck.hfsplus /dev/sdxN
and then you can either remount the device via
sudo umount -l /dev/sdxN and
sudo mount /the/mount/point or reboot.