Echfs
The echfs filesystem
Install / Use
/learn @echfs/EchfsREADME
echfs
The echfs filesystem is a 64-bit FAT-like filesystem which aims to support most UNIX and POSIX-style features while being extremely simple to implement. Ideal for hobbyist OS developers who want a simple filesystem and don't want to deal with old crufty FAT (which isn't UNIX/POSIX compliant either), or complex filesystems such as ext2/3/4.
Keep in mind that this is still a work in progress, and the specification might change. I'll try to keep everything backwards compatible (in a clean way) when I add new features or make modifications to the filesystem.
In this repo you can find the full specification in the spec.md file,
and a utility to manipulate the filesystem (echfs-utils).
You can compile and install the echfs-utils program from the echfs-utils
directory.
A FUSE implementation of a filesystem driver named echfs-fuse is also provided
(thanks to Geertiebear).
Build dependencies
echfs-utils depends on libuuid, and pkg-config. (On Debian/Ubuntu based distros,
the packages are called uuid-dev, and pkg-config, respectively).
echfs-fuse depends on libfuse, and pkg-config. (On Debian/Ubuntu based distros,
the packages are called libfuse-dev, and pkg-config, respectively).
Building
In either the echfs-utils or the echfs-fuse directory, run:
./bootstrap
./configure
make
sudo make install
Usage
echfs-utils
echfs-utils is used as echfs-utils <flags> <image> <command> <command args...>, where
a command can be any of the following:
import, which copies to the image with args<source> <destination>export, which copies from the image with args<source> <destination>ls, with arg<path>(can be left empty), it lists the files in the path or root if the path is not specifiedmkdir, with arg<path>, makes a directory with the specified path.format, with arg<block size>formats the imagequick-formatwith arg<block size>formats the image
There are also several flags you can specify
-fignore existing file errors onimport-mspecify that the image is MBR formatted-gspecify that the image is GPT formatted-p <part>specify which partition the echfs image is in-vbe verbose
echfs-fuse
echfs-fuse is used as echfs-fuse <flags> <image> <mountpoint>, with the following flags:
-mspecify that the image is MBR formatted-gspecify that the image is GPT formatted-p <part>specify which partition the echfs image is in-drun in debug mode (don't detach)
Creating a filesystem
A filesystem can be created with the following commands
dd if=/dev/zero of=image.hdd bs=4M count=128
parted -s image.hdd mklabel msdos
parted -s image.hdd mkpart primary 2048s 100%
echfs-utils -m -p0 image.hdd quick-format 512
Related Skills
node-connect
341.8kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
84.6kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
341.8kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
84.6kCommit, push, and open a PR
