Fukastor Repack -

Fukastor Repack: Assembling the Ultimate Minimalist Powerhouse Every few years, a project comes along that’s so niche, so fiercely opinionated, and so ruthlessly efficient that it only survives through community repacks. Fukastor is one such beast. Originally a bare‑bones storage abstraction layer for embedded Arch Linux systems, its original maintainer vanished in 2023. But the core idea — lightning‑fast block‑device mapping, zero‑bloat Lua configuration, and a surreal level of user control — refused to die. Enter the Fukastor Repack : a community‑driven, hardened, and extended resurrection. I spent the last three weeks building, breaking, and polishing this repack on a ThinkPad X270. Here’s everything you need to know — and why you might want to roll your own. What is Fukastor, anyway? Fukastor started as a fuse‑based userspace filesystem and a dynamic device mapper. Think of it as devtmpfs on steroids, crossed with the flexibility of rclone — but for local raw disks and loop devices. Its killer feature? Transactional block pointers with instant snapshots, even on non‑copy‑on‑write block devices. Original features:

Sub‑millisecond metadata caching (via a custom radix tree) Lua‑scriptable I/O filters (encrypt, compress, checksum, replicate on‑the‑fly) Zero‑copy loop mounts from arbitrary files Stateless operation — no config file required, everything from CLI or env

But the original was brittle: memory leaks under heavy parallel I/O, incomplete documentation, and an odd build system (meson + handwritten ninja fragments). That’s where the repack comes in. Why a repack? The three pillars A “repack” isn’t just recompiling from source. It’s:

Patching critical bugs and adding sane defaults. Rebundling with quality‑of‑life tools and examples. Testing on real hardware across kernel versions. fukastor repack

The community identified five showstopper issues in vanilla 0.9.2:

Memory leak in the Lua JIT finalizer (fixed with luaL_ref backport) Deadlock when removing a snapshot during heavy writeback No native systemd integration (the repack adds a fukastord socket‑activated service) Missing ARM64 builds (now provided for Raspberry Pi 4/5 and RK3588) Cryptic error messages — replaced with human‑readable codes and hints

Building your own Fukastor repack from source Ready to get your hands dirty? Here’s the clean, tested method. Prerequisites Here’s everything you need to know — and

Linux 5.15+ (6.6 LTS recommended) meson ≥ 1.2, ninja , gcc 13+, pkg-config Dependencies: libfuse3-dev , liblua5.4-dev , liburing-dev (for io_uring backend)

Step‑by‑step # Clone the repack repository (community maintained) git clone https://git.cyberpunks.xyz/fukastor-repack/fukastor.git cd fukastor Switch to the stable repack branch git checkout repack/2025.03 Configure with repack defaults (optimized for NVMe + SATA) meson setup build -Dbuildtype=release -Duse_io_uring=true -Dlua_version=5.4 -Dman_pages=enabled -Dtests=disabled Compile (use all cores) ninja -C build Run the quick selftest build/fukastor --selftest Install system-wide (or use sudo ninja -C build install ) sudo ninja -C build install

The repack adds a fukastor.conf example in /etc/fukastor/ and a fukastor-mount helper script that mimics mount syntax. Real‑world usage: my daily driver setup I use the Fukastor repack to manage three layers on my laptop’s 512GB NVMe: pkg-config Dependencies: libfuse3-dev

Base – ext4 on LVM (no COW, low overhead) Fukastor overlay – adds per‑directory snapshots via fukastor snapshot add /home /snaps/home Transient tmpfs‑backed filter – for /var/cache and browser profiles

Example command to snapshot /home before a risky upgrade: fukastor snapshot create /dev/nvme0n1p5 --name pre-upgrade-$(date +%Y%m%d) --atomic





Made with ❤️ in Europe 🇪🇺 by Sandoche