dynblk exposes dynamically allocated block storage as a regular file through
FUSE2. The resulting virtual.dat can be used with loop devices, filesystem
tools, and disk-image utilities.
This project is a compatibility-focused fork of DynFileFS. It uses the upstream version number and preserves the DynFileFS format 400 on-disk layout. The inherited on-disk banner is intentionally unchanged so existing storage remains readable and writable by both dynblk and DynFileFS 4.04.
The canonical commands are dynblk and mount.dynblk. The names dynfilefs
and mount.dynfilefs are installed as compatibility aliases.
- Linux with FUSE2 support
libfuse2for native dynamically linked builds- A loop-capable kernel when
virtual.datis mounted as a block image
Release Debian packages are native amd64 builds produced in an Ubuntu 18.04 environment and use the system FUSE2 library. Static release binaries are i686/musl builds intended for initrd use; running them on amd64 requires kernel IA32 emulation. Static builds are smoke-tested in an Ubuntu 18.04 userland with the stock 4.15 kernel baseline.
dynblk -f storage_file -m mount_dir [-s size_MB] [-p split_size_MB] [-d]
-f,--file: base path for metadata and storage segments.-m,--mountdir: empty directory where FUSE exposesvirtual.dat.-s,--size: virtual image size in MB. A larger value grows existing storage; a+prefix grows it by the specified amount.-p,--split: maximum data size in MB per storage segment.-d: run in the foreground with debug output.-o size=N,split=N: mount-helper form of the size and split options.
Example:
sudo install -d /var/lib/dynblk /mnt/dynblk /mnt/image
sudo dynblk -f /var/lib/dynblk/changes.dat -s 1024 -m /mnt/dynblk
sudo mke2fs -F /mnt/dynblk/virtual.dat
sudo mount -o loop /mnt/dynblk/virtual.dat /mnt/imageExample /etc/fstab entries:
/var/lib/dynblk/changes.dat /mnt/dynblk dynblk size=1024,split=1000 0 0
/mnt/dynblk/virtual.dat /mnt/image auto loop 0 0
./autogen.sh
./configure
make -j"$(nproc)"
make checkBuild a native Debian package with:
dpkg-buildpackage -b -us -ucReproducible static i686/musl build instructions are in
buildroot/README.md. Static binaries are not stored in
the source repository; verified binaries and checksums are published with
GitHub releases.
dynblk is distributed under the GNU General Public License, version 2 or later.
See LICENSE. Original DynFileFS authorship is retained in the
source and on-disk compatibility banner.