mini_fo: The mini fanout overlay file system
News:
15. Okt 2005:
mini_fo-0-6-2-pre1 released
- Bugfix: this release fixes a serious memory leak for 2.6 kernels introduced in the last release. Please upgrade!
- mini_fo is now available as a git repository! cvs will no longer be updated.
21. Sep 2005:
mini_fo-0-6-1 released
- Several bugfixes
- helper scripts: mini_fo_merge merges changes contained in the storage directory back to base directory, mini_fo_overlay simplifies mounting. Check the README for more details.
10. May 2005:
mini_fo-0-6-1-pre1
- Changed license from LGPL to GPL
- Bugfix in xattr code
09. May 2005:
mini_fo-0-6-0 released
- support for 2.4 and 2.6 kernels
- Partial hard link support (creating new hard links works as expected, but already existing links in the base file system will be treated as if they were individual files).
- Various bugfixes and code cleanup
11. Apr 2005:
mini_fo24-0-6-0-pre2 released
- Fixes a small bug that resulted in some file attributes beeing displayed incorrectly under some circumstances.
05. Apr 2005:
mini_fo24-0-6-0-pre1 released
- This version is a rewrite of several important parts of the mini_fo fs such as the whiteout lists, that have been replaced with the new META subsystem.
- Contains new features, most important light weight directory renaming (see RELEASE_NOTES for details).
- Many bugfixes, mini_fo is now a lot more stable. Nobody should really use any older version anymore.
- A new testsuite has been implemented, allowing more efficent testing of the filesystem.
28. Mar 2005:
mini_fo24-0-5-10 released
- Final release of the 0-5-x series. Next will be a pre version of the upcoming 0-6 containing many new features and a lot of cleanup.
14. Mar 2005:
mini_fo24-0-5-10-pre6 released
- directory deleting bugfixes
- directory renaming works (but the entire tree is copied, see RELEASE_NOTES for details)
22. Feb 2005:
mini_fo24-0-5-10-pre5 released
- deleting of directories now working!
- the parsing of the mount options is now more stable
- see release notes for more details
What is mini_fo?
mini_fo is a virtual kernel file system that can make read-only
file systems writable. This is done by redirecting modifying operations
to a writeable location called "storage directory", and 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.
Base and storage directories may be located on the same or on
different partitions and may be of different file system types. While
the storage directory obviously needs to be writable, the base may or
may not be writable, what doesn't matter as it will not be modified
anyway.
mini_fo was primarily developed for use in embedded systems and
therefore was designed to be lightweight in terms of module size, memory
usage and storage usage. Nevertheless it has proved useful for various
other projects (see below).
What is it good for?
The primary purpose of the mini_fo file system is to allow easy
software updates to embedded systems, that often store their root
filesystem in a read-only flash filesystem, but there are many
more:
- sandboxing
- simulation of software updates
- testing weird programs
- allow live-cds to permanently store information
- test patches without messing up the original source tree
If you have any other ideas, please let me know!
Downloads
mini_fo is now available as a
git repository or as a zipped tarball from the bottom of this page. Please note that the mini_fo cvs repository will no longer be updated.
Documentation
Instructions on building and using the mini_fo filesystem can be found in the README file located in the sources. If you are interested in the internals of mini_fo you might find
this paper (actually my diploma thesis!) useful. If you still have questions, and didn't find an answer in the mini_fo
FAQ, feel free to send me an e-mail (see contact).
Development, testing, reporting bugs etc.
mini_fo has a
devel page that is used for:
- posting bug reports
- development versions of mini_fo can be found here
- testing: e.g. the mini_fo-testsuite
Contact
If you have any comments, questions, patches

or bug reports you don't want to post yourself you can reach me at: mk at creamnet dot de
--
MarkusKlotzbuecher - 15 Oct 2005