mountddhfs+

How to create and mount file for read and write as a HFS+ filesystem in linux?


I am trying to mount a file that will act as a read/write HFS+ filesystem. I am using arch linux based distro so I installed hfsprogs and hfsutils. In debian based distros hfsprogs should be enough.

I created a 8G file like this:

dd if=/dev/zero of=test.img bs=1024 count=0 seek=$[1000*8000]

Then I did the formatting:

mkfs.hfsplus -v TestImg test.img

After that when I try to mount the file I get:

mkdir /tmp/sun
sudo mount -t hfsplus -o loop,rw,offset=0 test.img /tmp/sun
mount: /tmp/sun: mount failed: Operation not permitted

Parted shows that offset it ok:

sudo parted -m test.img unit B print
1:0B:8191999999B:8192000000B:hfs+::;

I also tried to use fdisk with the file creating sun partition table but that did not help either. Can you help me please with creating HFS+ rw filesystem as a file?


Solution

  • I used loop device inappropriately. The correct steps are: Create file

    dd if=/dev/zero of=test.img bs=100MB count=10 seek=$[10*8]
    

    Create blocked device mapped to that file:

    losetup -fP test.img
    

    At this point blocked device /dev/loop0 got created. Create filesystem:

    mkfs.hfsplus test.img
    

    Mount to your folder

    mount -o rw,loop /dev/loop0 /tmp/loop_test