Mounting multiple regular files as a filesystem
I'm trying to create a multi-device filesystem on top of regular files (not actual disks), and mount that to a loopback device. For a filesystem created on a single file, it works fine, but for a filesystem across multiple files, it doesn't.
dd if=/dev/zero of=img1 bs=4096 count=65536
dd if=/dev/zero of=img2 bs=4096 count=65536
dd if=/dev/zero of=img3 bs=4096 count=65536
dd if=/dev/zero of=img4 bs=4096 count=65536
mkfs.btrfs img1
mount -o loop -t btrfs img1 /mnt/test # works
mkfs.btrfs img1 img2 img3 img4
mount -o loop -t btrfs img1 /mnt/test # fails
When I try to mount with multiple files, it also prints a message to syslog:
Jun 15 00:32:10 3vil device fsid a147d6b950f66dca-3e2e7f52011c93b0 devid 4 transid 9 /dev/loop/0 Jun 15 00:32:10 3vil btrfs: failed to read chunk tree on loop0 Jun 15 00:32:10 3vil btrfs: open_ctree failed
Am I doing something wrong, or is this use case broken right now?
--Ravi
2009/6/15 Ravi Pinjala <[email protected]>:
Quoted 12 lines
I'm trying to create a multi-device filesystem on top of regular files (not actual disks), and mount that to a loopback device. For a filesystem created on a single file, it works fine, but for a filesystem across multiple files, it doesn't.
dd if=/dev/zero of=img1 bs=4096 count=65536
dd if=/dev/zero of=img2 bs=4096 count=65536
dd if=/dev/zero of=img3 bs=4096 count=65536
dd if=/dev/zero of=img4 bs=4096 count=65536
Quoted 7 lines
mkfs.btrfs img1
mount -o loop -t btrfs img1/mnt/test# worksmkfs.btrfs img1 img2 img3 img4
mount -o loop -t btrfs img1/mnt/test# fails
Please setup loop devices for the image files manually. In this case, 'mount -o loop' can't do it for you.
For example:
mkfs.btrfs img1 img2 img3 img4
for i in seq 1 4; do losetup /dev/loop$ img$i; done btrfsctl -a
mount -t btrfs /dev/loop1 /mnt/test
See below for more information:
http://btrfs.wiki.kernel.org/index.php/Using_Btrfs_with_Multiple_Devices
Yan, Zheng