
-------
FatFuse
-------

FatFuse is a linux `fuse`_ implementation capable of reading FAT16 and FAT32
filesytems. It is written in `python`_, and uses the `bdec`_ binary decoding
library to decode the on-disk filesystem. The actual code dealing with the
conversion of the decoded structures is only a few hundred lines long, and the
fuse filesystem code only a few hundred more (much of which is placeholder
code).

.. _bdec: ../bdec/
.. _fuse: http://fuse.sourceforge.net
.. _python: http://www.python.org


Capabilities
============

* FAT16
* FAT32
* Long filename support
* Read only


Usage
=====

Run
    mount.fat /path/of/mount/point /path/of/block/device [options]

where the block device could be, for example, /dev/sda1/.


Performance
===========

The directory structure is cached in memory; this can lead to excessive
memory consumption when a large amount of the filesystem is traversed.


Questions
=========

Q. When every operating system under the sun already implements a FAT 
   filesystem driver, why create another?

A. One of my USB disks became corrupted, and I wanted to recover the
   data. The bootsector and the first allocation table got wiped, while
   the second allocations table got corrupted. Neither the Windows
   chkdisk nor the linux fsck.vfat utilties were able to recover the
   data. From the development of this program I was able to recover most
   of the data from the disk.

   That, and the geek cred :-).


Download
========

* `Version 0.3.0`_
  19 March 2007

  Initial public release of 'fatfuse'. It is capable of mounting a read only
  FAT16/FAT32 image, and correctly handles long filenames.

.. _Version 0.3.0: files/fatfuse-0.3.0.tar.gz

