Unifying dosfsck and mkdosfs documents in common doc directory.

Signed-off-by: Daniel Baumann <mail@daniel-baumann.ch>
This commit is contained in:
Daniel Baumann
2008-09-26 18:12:29 +02:00
parent fb9c46b59a
commit 124598b2bd
8 changed files with 0 additions and 0 deletions

41
doc/ANNOUNCE.mkdosfs Normal file
View File

@@ -0,0 +1,41 @@
Announcing the release of mkdosfs version 0.3b (Yggdrasil)
It seems I didn't get the bug completely fixed in 0.3a. Some
borderline cases would still allocate too many sectors for the FAT.
Again, nothing to worry about, just a nitpick -- this one would only
in certain cases add one sector per FAT.
Announcing the release of mkdosfs version 0.3a (Yggdrasil)
Fixed a bug which would cause too many sectors to be reserved for the
FAT (filesystem will still work fine, but have slightly less space
available).
Announcing the release of mkdosfs version 0.3 (Yggdrasil)
This version correctly handles even very large filesystems, and
properly supports the modern (3.3+) DOS bootsector format, including a
message printed on boot attempts.
Peter Anvin
Yggdrasil Computing, Inc.
hpa@yggdrasil.com
--------------
Announcing the release of mkdosfs version 0.2
I've just uploaded mkdosfs to sunsite.unc.edu. It works in a similar way
to Remy Card's mke2fs, but creates an MS-DOS file system.
The filename is mkdosfs-0.2.tar.gz.
This second release should fix a small bug that could lead to FAT sizes that
Linux's dosfs would accept but MS-DOS wouldn't.
The archive contains a manual page, binary and source versions.
Dave Hudson
dave@humbug.demon.co.uk

10
doc/ChangeLog.dosfsck Normal file
View File

@@ -0,0 +1,10 @@
Changes from version 0 to 1
===========================
- fixed an off-by-two error in check.c:check_file
- fixed marking clusters bad in fat.c:set_fat
- fat.c:reclaim_free was also reclaiming bad clusters.
- fixed many incorrect byte sex conversions in check.c and fat.c
- -t and -w now require -a or -r
- added option -d to drop files.
- added option -u to try to "undelete" non-directory files.

View File

@@ -0,0 +1,161 @@
version 2.11
============
- all: don't use own llseek() anymore, glibc lseek() does everything we need
- dosfsck: lfn.c: avoid segfault
- dosfsck: check.c, lfn.c: check for orphaned LFN slots
- dosfsck: check.c alloc_rootdir_entry(): set owner of newly alloced clusters
- dosfsck: dosfsck.h: better use <byteswap.h> for byte swapping
- dosfsck: io.c: added code for real DOS
- mkdosfs: raised FAT12_THRESHOLD from 4078 to 4085, introduced MIN_CLUST_32
- mkdosfs: fix loop device size
- mkdosfs: by default, use FAT32 on devices >= 512MB
- mkdosfs: fix a memory leak (blank_sector)
- mkdosfs: fix parsing of number of blocks on command line, so that numbers
>2G can be used
- mkdosfs: add 'b' to getopt() string so this option can be used :)
- mkdosfs: fix parsing of -i arg (should be unsigned)
- mkdosfs: change default permissions of created images (-C) to 0666 & ~umask
- mkdosfs: relax geometry check: if HDIO_GETGEO fails, print a warning and
default to H=255,S=63
- dosfsck: new option -n (no-op): just check non-interactively, but
don't write anything to filesystem
- A few #include changes to support compilation with linux 2.6
headers (thanks to Jim Gifford <jim@jg555.com>)
- dosfsck: remove directory entries pointing to start cluster 0, if they're
not "." or ".." entries that should actually point to the root dir
(pointed out by Thomas Winkler <twinkler@sysgo.de>)
- mkdosfs: new option -h to set number of hidden sectors
(thanks to Godwin Stewart <gstewart@spamcop.net>)
- all: updated my mail address everywhere...
version 2.10
============
- dosfsck: various 64-bit fixes and removed some warnings by Michal
Cihar <mcihar@suse.cz>
- mkdosfs: better error message if called without parameters (also
suggested by Michal)
version 2.9
===========
- dosfsck: if EOF from stdin, exit with error code
- dosfsck: Fix potential for "Internal error: next_cluster on bad cluster".
- dosfsck: When clearing long file names, don't overwrite the dir
entries with all zeros, but put 0xe5 into the first byte.
Otherwise, some OSes stop reading the directory at that point...
- dosfsck: in statistics printed by -v, fix 32bit overflow in number
of data bytes.
- dosfsck: fix an potential overflow in "too many clusters" check
- dosfsck: fix 64bit problem in fat.c (Debian bug #152769)
- dosfsck: allow FAT size > 32MB.
- dosfsck: allow for only one FAT
- dosfsck: with -v, also check that last sector of the filesystem can
be read (in case a partition is smaller than the fs thinks)
- mkdosfs: add note in manpage that creating bootable filesystems is
not supported.
- mkdosfs: better error message with pointer to -I if target is a
full-disk device.
version 2.8
===========
- dosfsck: Fixed endless loop whenever a volume label was present.
version 2.7
===========
- dosfsck: Don't check volume label for bad characters, everything
seems to be allowed there... Also ignore duplicate names where one of
them is a volume label.
version 2.6
===========
- mkdosfs: Added correct heads definition for 2.88M floppies if not
created via loopback.
- dosfsck: If boot sector and its backup are different (FAT32), offer
to write the backup to sector 0. (tnx to Pavel Roskin for this)
- For 64 bit alpha, struct bootsector in dosfsck.h must be defined
with __attribute__((packed)).
- mkdosfs now actually accepts -R option. (tnx to David Kerrawn)
- Fixed typo in dosfsck boot.c (recognition of boot signature in FSINFO)
- Various compilation fixes for 2.4 kernel headers and for ia64.
version 2.5
===========
- The llseek() implementation for alpha didn't really work; fixed it.
version 2.4
===========
- Fix compiling problem on alpha (made a silly typo...)
version 2.3
===========
- mkdosfs: Fixed usage message (printed only "bad address").
- both: made man pages and usage statements more consistent.
- both: fix llseek function for alpha.
- dosfsck: fix reading of unaligned fields in boot sector for alpha.
- dosfsck: fixed renaming of files (extension wasn't really written).
version 2.2
===========
- Added dosfsck/COPYING, putting dosfsck officially under GPL (Werner
and I agree that it should be GPL).
- mkdosfs: Allow creation of a 16 bit FAT on filesystems that are too
small for it if the user explicitly selected FAT16 (but a warning
is printed). Formerly, you got the misleading error message "make
the fs a bit smaller".
- dosfsck: new option -y as synonym for -y; for compability with
other fs checkers, which also accept this option.
- dosfsck: Now prints messages similar to e2fsck: at start version
and feature list; at end number of files (and directories) and
number of used/total clusters. This makes the printouts of *fsck at
boot time nicer.
- dosfsck: -a (auto repair) now turns on -f (salvage files), too. -a
should act as non-destructive as possible, so lost clusters should
be assigned to files. Otherwise the data in them might be
overwritten later.
- dosfsck: Don't drop a directory with lots of bad entries in
auto-repair mode for the same reason as above.
- dosfsck: avoid deleting the whole FAT32 root dir if something is
wrong with it (bad start cluster or the like).
- general: also create symlinks {mkfs,fsck}.vfat.8 to the respective
real man pages.
version 2.1
===========
- Fix some forgotten loff_t's for filesystems > 4GB. (Thanks to
<ki@kretz.co.at>).
- Fix typo in mkdosfs manpage.
- Removed inclusion of <linux/loop.h> from mkdosfs.c; it's unnecessary and
caused problems in some environments.
- Fix condition when to expect . and .. entries in a directory. (Was
wrong for non-FAT32 if first entry in root dir was a directory also.)
- Also create mkfs.vfat and fsck.vfat symlinks, so that also
filesystems listed with type "vfat" in /etc/fstab can be
automatically checked.
version 2.0
===========
- merge of mkdosfs and dosfstools in one package
- new maintainer: Roman Hodek <Roman.Hodek@informatik.uni-erlangen.de>
- FAT32 support in both mkdosfs and dosfsck
- VFAT (long filename) support in dosfsck
- Support for Atari variant of MS-DOS filesystem in both tools
- Working support for big-endian systems in both tools
- Better support for loop devices in mkdosfs: usual floppy sizes are
detected and media byte etc. set accordingly; if loop fs has no
standard floppy size, use hd params
(mainly by Giuliano Procida <gpp10@cus.cam.ac.uk>)
- Removed lots of gcc warnings
- Fixed some minor calculation bugs in mkdosfs.
For change logs previous to 2.0, see the CHANGES files in the subdirectories.

18
doc/ChangeLog.mkdosfs Normal file
View File

@@ -0,0 +1,18 @@
28th January 1995 H. Peter Anvin (hpa@yggdrasil.com)
Better algorithm to select cluster sizes on large filesystems.
Added bogus boot sector code that on attempts to boot prints a
message (which can be chosen at mkdosfs time) and lets the user
press any key and try again. Corrected support for 1.2 Mb
floppies. mkdosfs now generates the extended bootsector
(superblock) format of DOS 3.3+, with support for volume ID's and
volume labels (volume labels are also written to the root
directory, as they should).
18th February 1994 Dave Hudson (dave@humbug.demon.co.uk)
Released version 0.2 - clears a bug in the FAT sizing code.
1st September 1993 Dave Hudson (dave@humbug.demon.co.uk)
Released version 0.1 - ALPHA release of mkdosfs

60
doc/README.dosfsck Normal file
View File

@@ -0,0 +1,60 @@
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 file systems 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 file system 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 :-)

60
doc/README.dosfstools-2.x Normal file
View File

@@ -0,0 +1,60 @@
Atari format support
====================
Both mkdosfs and dosfsck now can also handle the Atari variation of
the MS-DOS filesystem format. The Atari format has some minor
differences, some caused by the different machine architecture (m68k),
some being "historic" (Atari didn't change some things that M$
changed).
Both tools automatically select Atari format if they run on an Atari.
Additionally the -A switch toggles between Atari and MS-DOS format.
I.e., on an Atari it selects plain DOS format, on any other machine it
switches to Atari format.
The differences are in detail:
- Atari TOS doesn't like cluster sizes != 2, so the usual solution
for bigger partitions was to increase the logical sector size. So
mkdosfs can handle sector sizes != 512 now, you can also manually
select it with the -S option. On filesystems larger than approx. 32
MB, the sector size is automatically increased (stead of the
cluster size) to make the filesystem fit. mkdosfs will always use 2
sectors per cluster (also with the floppy standard configurations),
except when directed otherwise on the command line.
- From the docs, all values between 0xfff8 and 0xffff in the FAT mark
an end-of-file. However, DOS usually uses 0xfff8 and Atari 0xffff.
This seems to be only an consmetic difference. At least TOS doesn't
complain about 0xffff EOF marks. Don't know what DOS thinks of
0xfff8 :-) Anyway, both tools use the EOF mark common to the
system (DOS/Atari).
- Something similar of the bad cluster marks: On Atari the FAT values
0xfff0 to 0xfff7 are used for this, under DOS only 0xfff7 (the
others can be normal cluster numbers, allowing 7 more clusters :-)
However, both systems usually mark with 0xfff7. Just dosfsck has to
interpret 0xfff0...0xfff7 differently.
- Some fields in the boot sector are interpreted differently. For
example, Atari has a disk serial number (used to aid disk change
detection) where DOS stores the system name; the 'hidden' field is
32 bit for DOS, but 16 bit for Atari, and there's no 'total_sect'
field; the 12/16 bit FAT decision is different: it's not based on
the number of clusters, but always FAT12 on floppies and FAT16 on
hard disks. mkdosfs nows about these differences and constructs the
boot sector accordingly.
- In dosfsck, the boot sector differences also have to known, to not
warn about things that are no error on Atari. In addition, most
Atari formatting tools fill the 'tracks' and 'heads' fields with 0
for hard disks, because they're meaningless on SCSI disks (Atari
has/had no IDE). Due to this, the check that they should be
non-zero is switched off.
- Under Atari TOS, some other characters are illegal in filenames:
'<', '>', '|', '"', and ':' are allowed, but all non-ASCII chars
(codes >= 128) are forbidden.
- Roman <Roman.Hodek@informatik.uni-erlangen.de>

50
doc/README.mkdosfs Normal file
View File

@@ -0,0 +1,50 @@
mkdosfs - Make DOS file system utilty.
I wrote this, partially to complement the dosfsck utility written by Werner
Almesberger (who graciously gave me some pointers when I asked for some
advice about writing this code), and also to avoid me having to boot DOS
just to create data partitions (I use Linux to back up DOS :-) ).
The code is really derived from Remy Card's mke2fs utility - I used this as a
framework, although all of the file system specific stuff was removed and the
DOS stuff inserted. I believe originally mke2fs was based on Linus' mkfs
code, hence the acknowledgements in the source code.
Neither Remy nor Linus have had any involvement with mkdosfs, so if there are
any bugs they're almost certainly "all my own work".
The code has been available for ftp since 1st September 1993, and I have yet
to receive any bug reports from users. I don't know of any bugs, but if you
do find a bug or have any constructive comments, please mail me!
The only bug I found with version 0.1 was an obscure fault that could lead
to an invalid (for MS-DOS, not Linux's dos fs) number of sectors used in the
file allocation table(s).
Dave Hudson
dave@humbug.demon.co.uk
FAT32 support
=============
mkdosfs now can also create filesystems in the new FAT32 format. To do
this, give mkdosfs a "-F 32" option. FAT32 isn't selected
automatically (yet), even if very large clusters are needed with
FAT16. With FAT32 you have two additional options, -R to select the
number of reserved sectors (usually 32), and -b to select the location
of the backup boot sector (default 6). Of course such a backup is
created, as well as the new info sector. On FAT32, the root directory
is always created as a cluster chain. Sorry, there's no switch to
generate an old static root dir.
One bigger bug fix besides FAT32 was to reject filesystems that need a
16 bit FAT to fit all possible clusters, but the bigger FAT needs some
more sectors, so the total number of clusters drop below the border
where MS-DOS expects a 12 bit FAT. So such filesystems would be FAT16,
but interpreted as FAT32 by DOS. The fix is to reduce filesystem size
a bit.
- Roman <roman@hodek.net>

15
doc/TODO.dosfstools-2.x Normal file
View File

@@ -0,0 +1,15 @@
-*- mode: indented-text -*-
- dosfsck: Better checking of file times: ctime <= mtime <= atime
- mkdosfs: If /etc/bootsect.dos (or similar) exists, use it as a
template for generating boot sectors. This way, you can, e.g., make
bootable DOS disks.
Addendum: Don't know if that's so wise... There are really many
variants of DOS/Windows bootcode out in the wild, and the code is
proprietary, too.
- dosfsck: read-only sector test (-t without -a or -r); just print
out errors.