dosfsck, version 1
==================

WARNING: This is ALPHA test software. Use at your own risk.

dosfsck is the Linux equivalent of PC/MS-DOS' CHKDSK. It checks the
consistency of PC/MS-DOS filesystems and optionally tries to repair
them. The tests dosfsck performs are described in the man page.

dosfsck needs header files from dosfs.9 (or later) to compile.

Before using dosfsck to repair a filesystem that contains data of any
value, you should verify that dosfsck is able to correct all reported
errors. (Except fatal errors and those reported as unfixable, of
course.) In order to do this, run it with the -V option, e.g.

   dosfsck -V /dev/sda1		(automatic check)
or dosfsck -V -r /dev/sda1	(interactive check and repair)

dosfsck will perform two passes: in the first pass, inconsistencies are
detected and a list of changes to correct the problems is generated. In
the second pass, those changes are applied whenever dosfsck reads data
from disk. Hence no fixable errors should be reported in the second
pass if the first pass was successful.

Please notify the author if fixable errors are reported in the second
pass.

After verifying that dosfsck appears to be able to perform the desired
operations, either confirm that you want the changes to be performed
(if dosfsck was started with -r) or re-run dosfsck with the -a option
(if it was started without -r).

Please send bug reports, comments, flames, etc. to
almesber@nessie.cs.id.ethz.ch  or  almesber@bernina.ethz.ch

- Werner

FAT32 and LFN support
=====================

I've finally implemented some of the new features of MS-DOS
filesystems: FAT32 and long filenames.

FAT32 is automatically detected and of course the different FAT
structure is handled. (Internally many changes were needed, so 32 bit
variables for all cluster numbers and 64 bit vars for offsets inside
the filesystem.) New checks for FAT32 are most notably on the backup
boot sector and the new info sector. Also the possibility that the
root directory resides in a cluster chain (instead of in a static
area) on FAT32 is handled.

dosfscheck also knows about VFAT long filenames now. It parses those
names and uses them in listings etc. when available. There are also
some checks on the (cruel) structure of how LFNs are stored and some
attempts to fix problems.

- Roman <roman@hodek.net>

BTW, version 2 isn't ALPHA anymore :-)
