mhx / mhx/dwarfs

Align the filesystem to 512 bytes and allow paddings to allow mounting via loop devices.

Open
#356 4 comments 0 reactions 1 assignee Claimed by @mhx View on GitHub
enhancement
Dominant language
C++
Stars
2.6k
Forks
92
PR merge metrics
No merged PRs in 30d

Description

When trying to set up a `dwarfs` file as a loop device, it does not align to the default 512B sector boundary. However, if I pad the file to multiples of 512B, it also fail to mount.
This affects automounting utilities like `udevil`, which may be used in GUI file managers and such. Another use case is when the `dwarfs` is written to a dedicated partition (in a firmware image, I imagine), which is likely to have paddings after the filesystem itself.
```
0 ~:ls -l test.dwarfs
-rw-r--r-- 1 root root 45834020970 03-28 11:28 test.dwarfs
0 ~:mkdir test
0 ~:mount -t fuse.dwarfs test.dwarfs test
0 ~:umount test
0 ~:udevil mount --verbose -t fuse.dwarfs test.dwarfs
ROOT: /sbin/losetup /dev/loop0 /root/test.dwarfs
losetup: /root/test.dwarfs: Warning: file does not end on a 512-byte sector boundary; the remaining end of the file will be ignored.
ROOT: /bin/mount -v -t fuse.dwarfs -o nosuid,noexec,nodev,lazytime,ro /dev/loop0 /run/mount/test.dwarfs
E 11:26:54.892551 error initializing file system: dwarfs::runtime_error: [fs_section.cpp:68] truncated section data: 45834020970 > 45834020864
mount exit status = 1
ROOT: /sbin/losetup -d /dev/loop0
0 ~:echo $((45834020970%512))
106
0 ~:echo $((45834020970-106+512))
45834021376
0 ~:truncate -s 45834021376 test.dwarfs
0 ~:udevil mount --verbose -t fuse.dwarfs test.dwarfs
ROOT: /sbin/losetup /dev/loop0 /root/test.dwarfs
ROOT: /bin/mount -v -t fuse.dwarfs -o nosuid,noexec,nodev,lazytime,ro /dev/loop0 /run/mount/test.dwarfs
E 11:29:02.360347 error initializing file system: dwarfs::runtime_error: [fs_section.cpp:52] truncated section header: 45834021354 + 64 > 45834021376
mount exit status = 1
ROOT: /sbin/losetup -d /dev/loop0
```
Also, please consider adding a filesystem label and UUID, so the mountpoint can be displayed better in GUI file managers.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.