Codebase list dosfstools / cb02c96
Imported Upstream version 3.99.0~git20160203 Andreas Bombe 8 years ago
16 changed file(s) with 504 addition(s) and 15 deletion(s). Raw diff Collapse all Expand all
00 SUBDIRS = src manpages
1
2 dist_doc_DATA = doc/ANNOUNCE.mkdosfs \
3 doc/ChangeLog.dosfsck \
4 doc/ChangeLog.dosfstools-2.x \
5 doc/ChangeLog.mkdosfs \
6 doc/README.dosfsck \
7 doc/README.dosfstools-2.x \
8 doc/README.mkdosfs \
9 doc/TODO.dosfstools-2.x
1212 # PARTICULAR PURPOSE.
1313
1414 @SET_MAKE@
15
1516 VPATH = @srcdir@
1617 am__is_gnu_make = { \
1718 if test -z '$(MAKELEVEL)'; then \
9091 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
9192 $(ACLOCAL_M4)
9293 DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \
93 $(am__configure_deps) $(am__DIST_COMMON)
94 $(am__configure_deps) $(dist_doc_DATA) $(am__DIST_COMMON)
9495 am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
9596 configure.lineno config.status.lineno
9697 mkinstalldirs = $(install_sh) -d
123124 n|no|NO) false;; \
124125 *) (install-info --version) >/dev/null 2>&1;; \
125126 esac
127 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
128 am__vpath_adj = case $$p in \
129 $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
130 *) f=$$p;; \
131 esac;
132 am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
133 am__install_max = 40
134 am__nobase_strip_setup = \
135 srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
136 am__nobase_strip = \
137 for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
138 am__nobase_list = $(am__nobase_strip_setup); \
139 for p in $$list; do echo "$$p $$p"; done | \
140 sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
141 $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
142 if (++n[$$2] == $(am__install_max)) \
143 { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
144 END { for (dir in files) print dir, files[dir] }'
145 am__base_list = \
146 sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
147 sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
148 am__uninstall_files_from_dir = { \
149 test -z "$$files" \
150 || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
151 || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
152 $(am__cd) "$$dir" && rm -f $$files; }; \
153 }
154 am__installdirs = "$(DESTDIR)$(docdir)"
155 DATA = $(dist_doc_DATA)
126156 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
127157 distclean-recursive maintainer-clean-recursive
128158 am__recursive_targets = \
292322 top_builddir = @top_builddir@
293323 top_srcdir = @top_srcdir@
294324 SUBDIRS = src manpages
325 dist_doc_DATA = doc/ANNOUNCE.mkdosfs \
326 doc/ChangeLog.dosfsck \
327 doc/ChangeLog.dosfstools-2.x \
328 doc/ChangeLog.mkdosfs \
329 doc/README.dosfsck \
330 doc/README.dosfstools-2.x \
331 doc/README.mkdosfs \
332 doc/TODO.dosfstools-2.x
333
295334 all: all-recursive
296335
297336 .SUFFIXES:
328367 $(ACLOCAL_M4): $(am__aclocal_m4_deps)
329368 $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
330369 $(am__aclocal_m4_deps):
370 install-dist_docDATA: $(dist_doc_DATA)
371 @$(NORMAL_INSTALL)
372 @list='$(dist_doc_DATA)'; test -n "$(docdir)" || list=; \
373 if test -n "$$list"; then \
374 echo " $(MKDIR_P) '$(DESTDIR)$(docdir)'"; \
375 $(MKDIR_P) "$(DESTDIR)$(docdir)" || exit 1; \
376 fi; \
377 for p in $$list; do \
378 if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
379 echo "$$d$$p"; \
380 done | $(am__base_list) | \
381 while read files; do \
382 echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(docdir)'"; \
383 $(INSTALL_DATA) $$files "$(DESTDIR)$(docdir)" || exit $$?; \
384 done
385
386 uninstall-dist_docDATA:
387 @$(NORMAL_UNINSTALL)
388 @list='$(dist_doc_DATA)'; test -n "$(docdir)" || list=; \
389 files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
390 dir='$(DESTDIR)$(docdir)'; $(am__uninstall_files_from_dir)
331391
332392 # This directory's subdirectories are mostly independent; you can cd
333393 # into them and run 'make' without going through this Makefile.
625685 exit 1; } >&2
626686 check-am: all-am
627687 check: check-recursive
628 all-am: Makefile
688 all-am: Makefile $(DATA)
629689 installdirs: installdirs-recursive
630690 installdirs-am:
691 for dir in "$(DESTDIR)$(docdir)"; do \
692 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
693 done
631694 install: install-recursive
632695 install-exec: install-exec-recursive
633696 install-data: install-data-recursive
679742
680743 info-am:
681744
682 install-data-am:
745 install-data-am: install-dist_docDATA
683746
684747 install-dvi: install-dvi-recursive
685748
725788
726789 ps-am:
727790
728 uninstall-am:
791 uninstall-am: uninstall-dist_docDATA
729792
730793 .MAKE: $(am__recursive_targets) install-am install-strip
731794
736799 distcheck distclean distclean-generic distclean-tags \
737800 distcleancheck distdir distuninstallcheck dvi dvi-am html \
738801 html-am info info-am install install-am install-data \
739 install-data-am install-dvi install-dvi-am install-exec \
740 install-exec-am install-html install-html-am install-info \
741 install-info-am install-man install-pdf install-pdf-am \
742 install-ps install-ps-am install-strip installcheck \
743 installcheck-am installdirs installdirs-am maintainer-clean \
744 maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
745 pdf-am ps ps-am tags tags-am uninstall uninstall-am
802 install-data-am install-dist_docDATA install-dvi \
803 install-dvi-am install-exec install-exec-am install-html \
804 install-html-am install-info install-info-am install-man \
805 install-pdf install-pdf-am install-ps install-ps-am \
806 install-strip installcheck installcheck-am installdirs \
807 installdirs-am maintainer-clean maintainer-clean-generic \
808 mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \
809 tags-am uninstall uninstall-am uninstall-dist_docDATA
746810
747811 .PRECIOUS: Makefile
748812
0 Announcing the release of mkdosfs version 0.3b (Yggdrasil)
1
2 It seems I didn't get the bug completely fixed in 0.3a. Some
3 borderline cases would still allocate too many sectors for the FAT.
4 Again, nothing to worry about, just a nitpick -- this one would only
5 in certain cases add one sector per FAT.
6
7 Announcing the release of mkdosfs version 0.3a (Yggdrasil)
8
9 Fixed a bug which would cause too many sectors to be reserved for the
10 FAT (filesystem will still work fine, but have slightly less space
11 available).
12
13 Announcing the release of mkdosfs version 0.3 (Yggdrasil)
14
15 This version correctly handles even very large filesystems, and
16 properly supports the modern (3.3+) DOS bootsector format, including a
17 message printed on boot attempts.
18
19 Peter Anvin
20 Yggdrasil Computing, Inc.
21 hpa@yggdrasil.com
22
23 --------------
24
25 Announcing the release of mkdosfs version 0.2
26
27
28 I've just uploaded mkdosfs to sunsite.unc.edu. It works in a similar way
29 to Remy Card's mke2fs, but creates an MS-DOS filesystem.
30
31 The filename is mkdosfs-0.2.tar.gz.
32
33 This second release should fix a small bug that could lead to FAT sizes that
34 Linux's dosfs would accept but MS-DOS wouldn't.
35
36 The archive contains a manual page, binary and source versions.
37
38
39 Dave Hudson
40 dave@humbug.demon.co.uk
0 Changes from version 0 to 1
1 ===========================
2
3 - fixed an off-by-two error in check.c:check_file
4 - fixed marking clusters bad in fat.c:set_fat
5 - fat.c:reclaim_free was also reclaiming bad clusters.
6 - fixed many incorrect byte sex conversions in check.c and fat.c
7 - -t and -w now require -a or -r
8 - added option -d to drop files.
9 - added option -u to try to "undelete" non-directory files.
0 version 2.11
1 ============
2
3 - all: don't use own llseek() anymore, glibc lseek() does everything we need
4 - dosfsck: lfn.c: avoid segfault
5 - dosfsck: check.c, lfn.c: check for orphaned LFN slots
6 - dosfsck: check.c alloc_rootdir_entry(): set owner of newly alloced clusters
7 - dosfsck: dosfsck.h: better use <byteswap.h> for byte swapping
8 - dosfsck: io.c: added code for real DOS
9 - mkdosfs: raised FAT12_THRESHOLD from 4078 to 4085, introduced MIN_CLUST_32
10 - mkdosfs: fix loop device size
11 - mkdosfs: by default, use FAT32 on devices >= 512MB
12 - mkdosfs: fix a memory leak (blank_sector)
13 - mkdosfs: fix parsing of number of blocks on command line, so that numbers
14 >2G can be used
15 - mkdosfs: add 'b' to getopt() string so this option can be used :)
16 - mkdosfs: fix parsing of -i arg (should be unsigned)
17 - mkdosfs: change default permissions of created images (-C) to 0666 & ~umask
18 - mkdosfs: relax geometry check: if HDIO_GETGEO fails, print a warning and
19 default to H=255,S=63
20 - dosfsck: new option -n (no-op): just check non-interactively, but
21 don't write anything to filesystem
22 - A few #include changes to support compilation with linux 2.6
23 headers (thanks to Jim Gifford <jim@jg555.com>)
24 - dosfsck: remove directory entries pointing to start cluster 0, if they're
25 not "." or ".." entries that should actually point to the root dir
26 (pointed out by Thomas Winkler <twinkler@sysgo.de>)
27 - mkdosfs: new option -h to set number of hidden sectors
28 (thanks to Godwin Stewart <gstewart@spamcop.net>)
29 - all: updated my mail address everywhere...
30
31 version 2.10
32 ============
33
34 - dosfsck: various 64-bit fixes and removed some warnings by Michal
35 Cihar <mcihar@suse.cz>
36 - mkdosfs: better error message if called without parameters (also
37 suggested by Michal)
38
39 version 2.9
40 ===========
41
42 - dosfsck: if EOF from stdin, exit with error code
43 - dosfsck: Fix potential for "Internal error: next_cluster on bad cluster".
44 - dosfsck: When clearing long file names, don't overwrite the dir
45 entries with all zeros, but put 0xe5 into the first byte.
46 Otherwise, some OSes stop reading the directory at that point...
47 - dosfsck: in statistics printed by -v, fix 32bit overflow in number
48 of data bytes.
49 - dosfsck: fix an potential overflow in "too many clusters" check
50 - dosfsck: fix 64bit problem in fat.c (Debian bug #152769)
51 - dosfsck: allow FAT size > 32MB.
52 - dosfsck: allow for only one FAT
53 - dosfsck: with -v, also check that last sector of the filesystem can
54 be read (in case a partition is smaller than the fs thinks)
55 - mkdosfs: add note in manpage that creating bootable filesystems is
56 not supported.
57 - mkdosfs: better error message with pointer to -I if target is a
58 full-disk device.
59
60 version 2.8
61 ===========
62
63 - dosfsck: Fixed endless loop whenever a volume label was present.
64
65 version 2.7
66 ===========
67
68 - dosfsck: Don't check volume label for bad characters, everything
69 seems to be allowed there... Also ignore duplicate names where one of
70 them is a volume label.
71
72 version 2.6
73 ===========
74
75 - mkdosfs: Added correct heads definition for 2.88M floppies if not
76 created via loopback.
77 - dosfsck: If boot sector and its backup are different (FAT32), offer
78 to write the backup to sector 0. (tnx to Pavel Roskin for this)
79 - For 64 bit alpha, struct bootsector in dosfsck.h must be defined
80 with __attribute__((packed)).
81 - mkdosfs now actually accepts -R option. (tnx to David Kerrawn)
82 - Fixed typo in dosfsck boot.c (recognition of boot signature in FSINFO)
83 - Various compilation fixes for 2.4 kernel headers and for ia64.
84
85 version 2.5
86 ===========
87
88 - The llseek() implementation for alpha didn't really work; fixed it.
89
90 version 2.4
91 ===========
92
93 - Fix compiling problem on alpha (made a silly typo...)
94
95 version 2.3
96 ===========
97
98 - mkdosfs: Fixed usage message (printed only "bad address").
99 - both: made man pages and usage statements more consistent.
100 - both: fix llseek function for alpha.
101 - dosfsck: fix reading of unaligned fields in boot sector for alpha.
102 - dosfsck: fixed renaming of files (extension wasn't really written).
103
104 version 2.2
105 ===========
106
107 - Added dosfsck/COPYING, putting dosfsck officially under GPL (Werner
108 and I agree that it should be GPL).
109 - mkdosfs: Allow creation of a 16 bit FAT on filesystems that are too
110 small for it if the user explicitly selected FAT16 (but a warning
111 is printed). Formerly, you got the misleading error message "make
112 the fs a bit smaller".
113 - dosfsck: new option -y as synonym for -y; for compability with
114 other fs checkers, which also accept this option.
115 - dosfsck: Now prints messages similar to e2fsck: at start version
116 and feature list; at end number of files (and directories) and
117 number of used/total clusters. This makes the printouts of *fsck at
118 boot time nicer.
119 - dosfsck: -a (auto repair) now turns on -f (salvage files), too. -a
120 should act as non-destructive as possible, so lost clusters should
121 be assigned to files. Otherwise the data in them might be
122 overwritten later.
123 - dosfsck: Don't drop a directory with lots of bad entries in
124 auto-repair mode for the same reason as above.
125 - dosfsck: avoid deleting the whole FAT32 root dir if something is
126 wrong with it (bad start cluster or the like).
127 - general: also create symlinks {mkfs,fsck}.vfat.8 to the respective
128 real man pages.
129
130 version 2.1
131 ===========
132
133 - Fix some forgotten loff_t's for filesystems > 4GB. (Thanks to
134 <ki@kretz.co.at>).
135 - Fix typo in mkdosfs manpage.
136 - Removed inclusion of <linux/loop.h> from mkdosfs.c; it's unnecessary and
137 caused problems in some environments.
138 - Fix condition when to expect . and .. entries in a directory. (Was
139 wrong for non-FAT32 if first entry in root dir was a directory also.)
140 - Also create mkfs.vfat and fsck.vfat symlinks, so that also
141 filesystems listed with type "vfat" in /etc/fstab can be
142 automatically checked.
143
144 version 2.0
145 ===========
146
147 - merge of mkdosfs and dosfstools in one package
148 - new maintainer: Roman Hodek <Roman.Hodek@informatik.uni-erlangen.de>
149 - FAT32 support in both mkdosfs and dosfsck
150 - VFAT (long filename) support in dosfsck
151 - Support for Atari variant of MS-DOS filesystem in both tools
152 - Working support for big-endian systems in both tools
153 - Better support for loop devices in mkdosfs: usual floppy sizes are
154 detected and media byte etc. set accordingly; if loop fs has no
155 standard floppy size, use hd params
156 (mainly by Giuliano Procida <gpp10@cus.cam.ac.uk>)
157 - Removed lots of gcc warnings
158 - Fixed some minor calculation bugs in mkdosfs.
159
160 For change logs previous to 2.0, see the CHANGES files in the subdirectories.
0 28th January 1995 H. Peter Anvin (hpa@yggdrasil.com)
1
2 Better algorithm to select cluster sizes on large filesystems.
3 Added bogus boot sector code that on attempts to boot prints a
4 message (which can be chosen at mkdosfs time) and lets the user
5 press any key and try again. Corrected support for 1.2 Mb
6 floppies. mkdosfs now generates the extended bootsector
7 (superblock) format of DOS 3.3+, with support for volume ID's and
8 volume labels (volume labels are also written to the root
9 directory, as they should).
10
11 18th February 1994 Dave Hudson (dave@humbug.demon.co.uk)
12
13 Released version 0.2 - clears a bug in the FAT sizing code.
14
15 1st September 1993 Dave Hudson (dave@humbug.demon.co.uk)
16
17 Released version 0.1 - ALPHA release of mkdosfs
0 dosfsck, version 1
1 ==================
2
3 WARNING: This is ALPHA test software. Use at your own risk.
4
5 dosfsck is the Linux equivalent of PC/MS-DOS' CHKDSK. It checks the
6 consistency of PC/MS-DOS filesystems and optionally tries to repair
7 them. The tests dosfsck performs are described in the man page.
8
9 dosfsck needs header files from dosfs.9 (or later) to compile.
10
11 Before using dosfsck to repair a filesystem that contains data of any
12 value, you should verify that dosfsck is able to correct all reported
13 errors. (Except fatal errors and those reported as unfixable, of
14 course.) In order to do this, run it with the -V option, e.g.
15
16 dosfsck -V /dev/sda1 (automatic check)
17 or dosfsck -V -r /dev/sda1 (interactive check and repair)
18
19 dosfsck will perform two passes: in the first pass, inconsistencies are
20 detected and a list of changes to correct the problems is generated. In
21 the second pass, those changes are applied whenever dosfsck reads data
22 from disk. Hence no fixable errors should be reported in the second
23 pass if the first pass was successful.
24
25 Please notify the author if fixable errors are reported in the second
26 pass.
27
28 After verifying that dosfsck appears to be able to perform the desired
29 operations, either confirm that you want the changes to be performed
30 (if dosfsck was started with -r) or re-run dosfsck with the -a option
31 (if it was started without -r).
32
33 Please send bug reports, comments, flames, etc. to
34 almesber@nessie.cs.id.ethz.ch or almesber@bernina.ethz.ch
35
36 - Werner
37
38 FAT32 and LFN support
39 =====================
40
41 I've finally implemented some of the new features of MS-DOS
42 filesystems: FAT32 and long filenames.
43
44 FAT32 is automatically detected and of course the different FAT
45 structure is handled. (Internally many changes were needed, so 32 bit
46 variables for all cluster numbers and 64 bit vars for offsets inside
47 the filesystem.) New checks for FAT32 are most notably on the backup
48 boot sector and the new info sector. Also the possibility that the
49 root directory resides in a cluster chain (instead of in a static
50 area) on FAT32 is handled.
51
52 dosfscheck also knows about VFAT long filenames now. It parses those
53 names and uses them in listings etc. when available. There are also
54 some checks on the (cruel) structure of how LFNs are stored and some
55 attempts to fix problems.
56
57 - Roman <roman@hodek.net>
58
59 BTW, version 2 isn't ALPHA anymore :-)
0
1 Atari format support
2 ====================
3
4 Both mkdosfs and dosfsck now can also handle the Atari variation of
5 the MS-DOS filesystem format. The Atari format has some minor
6 differences, some caused by the different machine architecture (m68k),
7 some being "historic" (Atari didn't change some things that M$
8 changed).
9
10 Both tools automatically select Atari format if they run on an Atari.
11 Additionally the -A switch toggles between Atari and MS-DOS format.
12 I.e., on an Atari it selects plain DOS format, on any other machine it
13 switches to Atari format.
14
15 The differences are in detail:
16
17 - Atari TOS doesn't like cluster sizes != 2, so the usual solution
18 for bigger partitions was to increase the logical sector size. So
19 mkdosfs can handle sector sizes != 512 now, you can also manually
20 select it with the -S option. On filesystems larger than approx. 32
21 MB, the sector size is automatically increased (stead of the
22 cluster size) to make the filesystem fit. mkdosfs will always use 2
23 sectors per cluster (also with the floppy standard configurations),
24 except when directed otherwise on the command line.
25
26 - From the docs, all values between 0xfff8 and 0xffff in the FAT mark
27 an end-of-file. However, DOS usually uses 0xfff8 and Atari 0xffff.
28 This seems to be only an consmetic difference. At least TOS doesn't
29 complain about 0xffff EOF marks. Don't know what DOS thinks of
30 0xfff8 :-) Anyway, both tools use the EOF mark common to the
31 system (DOS/Atari).
32
33 - Something similar of the bad cluster marks: On Atari the FAT values
34 0xfff0 to 0xfff7 are used for this, under DOS only 0xfff7 (the
35 others can be normal cluster numbers, allowing 7 more clusters :-)
36 However, both systems usually mark with 0xfff7. Just dosfsck has to
37 interpret 0xfff0...0xfff7 differently.
38
39 - Some fields in the boot sector are interpreted differently. For
40 example, Atari has a disk serial number (used to aid disk change
41 detection) where DOS stores the system name; the 'hidden' field is
42 32 bit for DOS, but 16 bit for Atari, and there's no 'total_sect'
43 field; the 12/16 bit FAT decision is different: it's not based on
44 the number of clusters, but always FAT12 on floppies and FAT16 on
45 hard disks. mkdosfs nows about these differences and constructs the
46 boot sector accordingly.
47
48 - In dosfsck, the boot sector differences also have to known, to not
49 warn about things that are no error on Atari. In addition, most
50 Atari formatting tools fill the 'tracks' and 'heads' fields with 0
51 for hard disks, because they're meaningless on SCSI disks (Atari
52 has/had no IDE). Due to this, the check that they should be
53 non-zero is switched off.
54
55 - Under Atari TOS, some other characters are illegal in filenames:
56 '<', '>', '|', '"', and ':' are allowed, but all non-ASCII chars
57 (codes >= 128) are forbidden.
58
59 - Roman <Roman.Hodek@informatik.uni-erlangen.de>
0 mkdosfs - Make DOS filesystem utilty.
1
2
3 I wrote this, partially to complement the dosfsck utility written by Werner
4 Almesberger (who graciously gave me some pointers when I asked for some
5 advice about writing this code), and also to avoid me having to boot DOS
6 just to create data partitions (I use Linux to back up DOS :-) ).
7
8 The code is really derived from Remy Card's mke2fs utility - I used this as a
9 framework, although all of the filesystem specific stuff was removed and the
10 DOS stuff inserted. I believe originally mke2fs was based on Linus' mkfs
11 code, hence the acknowledgements in the source code.
12
13 Neither Remy nor Linus have had any involvement with mkdosfs, so if there are
14 any bugs they're almost certainly "all my own work".
15
16 The code has been available for ftp since 1st September 1993, and I have yet
17 to receive any bug reports from users. I don't know of any bugs, but if you
18 do find a bug or have any constructive comments, please mail me!
19
20 The only bug I found with version 0.1 was an obscure fault that could lead
21 to an invalid (for MS-DOS, not Linux's dos fs) number of sectors used in the
22 file allocation table(s).
23
24
25 Dave Hudson
26 dave@humbug.demon.co.uk
27
28
29 FAT32 support
30 =============
31
32 mkdosfs now can also create filesystems in the new FAT32 format. To do
33 this, give mkdosfs a "-F 32" option. FAT32 isn't selected
34 automatically (yet), even if very large clusters are needed with
35 FAT16. With FAT32 you have two additional options, -R to select the
36 number of reserved sectors (usually 32), and -b to select the location
37 of the backup boot sector (default 6). Of course such a backup is
38 created, as well as the new info sector. On FAT32, the root directory
39 is always created as a cluster chain. Sorry, there's no switch to
40 generate an old static root dir.
41
42 One bigger bug fix besides FAT32 was to reject filesystems that need a
43 16 bit FAT to fit all possible clusters, but the bigger FAT needs some
44 more sectors, so the total number of clusters drop below the border
45 where MS-DOS expects a 12 bit FAT. So such filesystems would be FAT16,
46 but interpreted as FAT32 by DOS. The fix is to reduce filesystem size
47 a bit.
48
49 - Roman <roman@hodek.net>
0 -*- mode: indented-text -*-
1
2 - dosfsck: Better checking of file times: ctime <= mtime <= atime
3
4 - mkdosfs: If /etc/bootsect.dos (or similar) exists, use it as a
5 template for generating boot sectors. This way, you can, e.g., make
6 bootable DOS disks.
7
8 Addendum: Don't know if that's so wise... There are really many
9 variants of DOS/Windows bootcode out in the wild, and the code is
10 proprietary, too.
11
12 - dosfsck: read-only sector test (-t without -a or -r); just print
13 out errors.
2828 mkfs_common_sources = device_info.c device_info.h \
2929 blkdev/blkdev.c blkdev/blkdev.h \
3030 blkdev/linux_version.c blkdev/linux_version.h
31 mkfs_fat_SOURCES = mkfs.fat.c $(mkfs_common_sources)
31 mkfs_fat_SOURCES = mkfs.fat.c msdos_fs.h $(mkfs_common_sources)
3232 mkfs_fat_CFLAGS = $(AM_CFLAGS) $(UDEV_CFLAGS) -Iblkdev
3333 mkfs_fat_LDFLAGS = $(UDEV_LIBS)
3434
312312 blkdev/blkdev.c blkdev/blkdev.h \
313313 blkdev/linux_version.c blkdev/linux_version.h
314314
315 mkfs_fat_SOURCES = mkfs.fat.c $(mkfs_common_sources)
315 mkfs_fat_SOURCES = mkfs.fat.c msdos_fs.h $(mkfs_common_sources)
316316 mkfs_fat_CFLAGS = $(AM_CFLAGS) $(UDEV_CFLAGS) -Iblkdev
317317 mkfs_fat_LDFLAGS = $(UDEV_LIBS)
318318 testdevinfo_SOURCES = testdevinfo.c $(mkfs_common_sources)
2828 #include <stdint.h>
2929 #include <string.h>
3030 #include <stdlib.h>
31 #include <sys/types.h>
3132 #include <time.h>
3233
3334 #include "common.h"
2727 #ifndef _DOSFSCK_H
2828 #define _DOSFSCK_H
2929
30 #include <sys/types.h>
3031 #include <fcntl.h>
3132 #include <stddef.h>
3233 #include <stdint.h>
3535 #include <stdio.h>
3636 #include <string.h>
3737 #include <unistd.h>
38 #include <sys/types.h>
3839 #include <sys/stat.h>
39 #include <sys/ioctl.h>
4040 #include <errno.h>
4141 #include <fcntl.h>
42 #include <linux/fd.h>
4342
4443 #include "fsck.fat.h"
4544 #include "common.h"
5353 #include <string.h>
5454 #include <stdio.h>
5555 #include <stdlib.h>
56 #include <sys/types.h>
5657 #include <sys/stat.h>
5758 #include <sys/time.h>
5859 #include <unistd.h>