FULFS -- Fuse Using Large File System
-------------------------------------

The FULFS is a simple hack to store and read very large files on/from a
filesystem with small maximum file size. The primary purpose was putting
DVD-size images on FAT32 and use it transparently. The files are stored in the
form name.aa, name.ab, ...

Usage:

./fulfs physical-storage-dir virtual-dir [ chunk size ]

where the chunk size can be completed with a k/K/m/M/g/G suffix, meaning a
decimal or binary (upper case) factor of the particular unit.

Limitations:

 - Uses only two letter suffix, resulting in 26^2 files. Which means a maximum
   file size of about 1.3TB on a 2GB-limited filesystem.
 - owner and permission change is not allowed since atomic operations are not
   implemented yet.

Installation:

Install pkgconfig, install fuse library (version >>2.5.0, from
http://fuse.sourceforge.net or a modern Linux distribution, including the
development files (eg. libfuse-dev on Debian).

Run "make".

LICENSE:

3-clause BSD style license, see COPYING file inside of this distribution.

THANKS:

Many thanks to Miklos Szeredi for the FUSE package which allowed a quick and
almost painless implementation.

HISTORY:

 - clean rewrite of my previous solution, the vlfs plugin for LUFS

DOWNLOAD:

See recent versions in the download directory.

Demo:

 
demo:~/work$ ls -la /tmp/f/
insgesamt 2097176
drwxrwxrwx 2 root root      16384 2006-10-04 17:19 .
drwxrwxrwt 9 root root       4096 2006-10-04 18:13 ..
-rwxrwxrwx 1 root root 8807364608 2006-10-04 17:15 test.iso
demo:~/work$ ls -la /mnt/hdb8/tmp/
insgesamt 8600976
drwxrwxrwx  2 root root      16384 2006-10-04 17:19 .
drwxrwxrwx 12 root root      16384 2006-10-04 17:06 ..
-rwxrwxrwx  1 root root 2147483647 2006-10-04 17:15 test.iso.aa
-rwxrwxrwx  1 root root 2147483647 2006-10-04 17:16 test.iso.ab
-rwxrwxrwx  1 root root 2147483647 2006-10-04 17:18 test.iso.ac
-rwxrwxrwx  1 root root 2147483647 2006-10-04 17:19 test.iso.ad
-rwxrwxrwx  1 root root  217430020 2006-10-04 17:19 test.iso.ae
demo:~/work$ md5sum /tmp/f/test.iso ; cat /mnt/hdb8/tmp/test.iso.a* | md5sum -
89d3b6fb1b0cdae512ac473b40fbcfa6  /tmp/f/test.iso
89d3b6fb1b0cdae512ac473b40fbcfa6  -