Archive Index (1999-2012) | 2013-current at | About  

Mini-fanout filesystem achieves release

May 9, 2005 — by Henry Kingman — from the LinuxDevices Archive

[Updated May 11, 2005] — Markus Klotzbücher has released a GPL kernel module for Linux 2.4 or 2.6 that makes read-only filesystems writable by virtualizing them. The “Mini Fanout Overlay” module (mini_fo) can be used to save changes to live CDs, for sandboxing, or for testing embedded systems, Klotzbücher says.

Klotzbücher originally released mini_fo on April Fool's day, 2004, noting that the project had not finished implementing all planned features, and inviting interested parties to help.

Klotzbücher, who recently left Denx Software to return to university, says mini_fo has been used in a a large-scale telecommunications project at Siemens, and in various live CD projects. It has also been used in embedded Linux devices, such as Hacom's Linux on a keychain product.

Klotzbücher notes that some early mini_fo users switched to unionfs, which he describes as a “much larger and complex solution” that, until the 0.6.0 release of mini_fo, implemented more features.

Mini_fo 0.6.0

According to Klotzbücher, the new 0.6.0 release implements all filesystem operations, and includes a number of bug fixes and code cleanups as well. He explains that mini_fo redirects modifying operations to a writeable location called a “storage directory,” leaving the original data in the “base directory” untouched. “When reading, the file system merges the modifed and original data, so that only the newest versions will appear. This occurs transparently to the user, who can access the data like on any other read-write file system.”

Mini_fo 0.6.0 is distributed as a 36KB source code download. An included Makefile detects the kernel version and builds either a 2.4 or a 2.6 module. After installing the module and running update-modules, the user can mount an already-mounted read-only filesystem — such as a CD-ROM — as a mini_fo filesystem on a second mount point, where it will be writable, with all modifications backed up in the storage directory. Modifications persist across remounts, as long as the same storage directory is used. Care must be taken not to modify the contents of the storage directory while the mini_fo filesystem is mounted (reading and browsing should be okay, Klotzbücher says). The module is untested with NFS.

Klotzbücher says he developed mini_fo specifically for use in embedded systems, and that the module has a size of about 50KB, with low memory and storage usage. On our system, the source code built into a 69KB module. Modifying files by editing them or updating their timestamp using touch resulted in complete file copies being made in the storage directory. Deleting files caused their names to be appended to a file there listing deleted files. File access times do not seem to be recorded.

Klotzbücher initially released mini_fo under the LGPL because “it started with a fistgen generated file system (see as a codebase, and that was LGPL.” However, he says, “After some discussion, I've changed the mini_fo licese to GPL, as it seems okay to do this.”

More information about the Mini Fanout filesystem can be found here. Our previous story introducing the Mini Fanout Filesystem is here.

Henry Kingman

This article was originally published on and has been donated to the open source community by QuinStreet Inc. Please visit for up-to-date news and articles about Linux and open source.

Comments are closed.