Skip to content
 
 

Repository files navigation

dynblk

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.

Requirements

  • Linux with FUSE2 support
  • libfuse2 for native dynamically linked builds
  • A loop-capable kernel when virtual.dat is 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.

Usage

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 exposes virtual.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/image

Example /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

Build

./autogen.sh
./configure
make -j"$(nproc)"
make check

Build a native Debian package with:

dpkg-buildpackage -b -us -uc

Reproducible 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.

License

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.

About

Fuse filesystem for dynamically-enlarged file (to be mounted as loop)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages