如何在 linux 中创建和挂载文件以作为 HFS+ 文件系统进行读写?

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

我正在尝试挂载一个文件,该文件将充当 read/write HFS+ 文件系统。我正在使用基于 arch linux 的发行版,所以我安装了 hfsprogs 和 hfsutils。在基于 debian 的发行版中,hfsprogs 应该足够了。

我创建了这样一个 8G 的文件:

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

然后我做了格式化:

mkfs.hfsplus -v TestImg test.img

在那之后,当我尝试挂载文件时,我得到:

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 表明可以抵消它:

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

我还尝试对文件使用 fdisk 创建 sun 分区 table 但这也没有帮助。你能帮我把 HFS+ rw 文件系统创建成一个文件吗?

我不恰当地使用了循环设备。 正确的步骤是: 创建文件

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

创建映射到该文件的被阻止设备:

losetup -fP test.img

此时已创建被阻止的设备 /dev/loop0。 创建文件系统:

mkfs.hfsplus test.img

装载到您的文件夹

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