.\" fsck.fat.8 - manpage for fsck.fat
.\"
.\" Copyright (C) 2006-2014 Daniel Baumann <daniel@debian.org>
.\"
.\" This program is free software: you can redistribute it and/or modify
.\" it under the terms of the GNU General Public License as published by
.\" the Free Software Foundation, either version 3 of the License, or
.\" (at your option) any later version.
.\"
.\" This program is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public License
.\" along with this program. If not, see <http://www.gnu.org/licenses/>.
.\"
.\" The complete text of the GNU General Public License
.\" can be found in /usr/share/common-licenses/GPL-3 file.
.\"
.\"
.TH FSCK.FAT 8 2015\-05\-16 3.0.28 "dosfstools"
.SH NAME
\fBfsck.fat\fR \- check and repair MS\-DOS filesystems
.\" ----------------------------------------------------------------------------
.SH SYNOPSIS
\fBfsck.fat\fR [\fIOPTIONS\fR] \fIDEVICE\fR
.\" ----------------------------------------------------------------------------
.SH DESCRIPTION
\fBfsck.fat\fR verifies the consistency of MS\-DOS filesystems and optionally
tries to repair them.
.PP
The following filesystem problems can be corrected (in this order):
.IP "*" 4
FAT contains invalid cluster numbers.
Cluster is changed to EOF.
.IP "*" 4
File's cluster chain contains a loop.
The loop is broken.
.IP "*" 4
Bad clusters (read errors).
The clusters are marked bad and they are removed from files owning them.
This check is optional.
.IP "*" 4
Directories with a large number of bad entries (probably corrupt).
The directory can be deleted.
.IP "*" 4
Files . and .. are non\-directories.
They can be deleted or renamed.
.IP "*" 4
Directories . and .. in root directory.
They are deleted.
.IP "*" 4
Bad filenames.
They can be renamed.
.IP "*" 4
Duplicate directory entries.
They can be deleted or renamed.
.IP "*" 4
Directories with non\-zero size field.
Size is set to zero.
.IP "*" 4
Directory . does not point to parent directory.
The start pointer is adjusted.
.IP "*" 4
Directory .. does not point to parent of parent directory.
The start pointer is adjusted.
.IP "*" 4
Start cluster number of a file is invalid.
The file is truncated.
.IP "*" 4
File contains bad or free clusters.
The file is truncated.
.IP "*" 4
File's cluster chain is longer than indicated by the size fields.
The file is truncated.
.IP "*" 4
Two or more files share the same cluster(s).
All but one of the files are truncated.
If the file being truncated is a directory file that has already been read, the
filesystem check is restarted after truncation.
.IP "*" 4
File's cluster chain is shorter than indicated by the size fields.
The file is truncated.
.IP "*" 4
Clusters are marked as used but are not owned by a file.
They are marked as free.
.PP
Additionally, the following problems are detected, but not repaired:
.IP "*" 4
Invalid parameters in boot sector
.IP "*" 4
Absence of . and .. entries in non\-root directories
.PP
When \fBfsck.fat\fR checks a filesystem, it accumulates all changes in memory
and performs them only after all checks are complete.
This can be disabled with the \fB\-w\fR option.
.\" ----------------------------------------------------------------------------
.SH OPTIONS
.IP "\fB\-a\fR" 4
Automatically repair the filesystem.
No user intervention is necessary.
Whenever there is more than one method to solve a problem, the least
destructive approach is used.
.IP "\fB\-A\fR" 4
Use Atari variation of the MS\-DOS filesystem.
This is default if \fBfsck.fat\fR is run on an Atari, then this option turns
off Atari format.
There are some minor differences in Atari format:
Some boot sector fields are interpreted slightly different, and the special FAT
entries for end\-of\-file and bad cluster can be different.
Under MS\-DOS 0xfff8 is used for EOF and Atari employs 0xffff by default, but
both systems recognize all values from 0xfff8...0xffff as end\-of\-file.
MS\-DOS uses only 0xfff7 for bad clusters, where on Atari values 0xfff0...0xfff7
are for this purpose (but the standard value is still 0xfff7).
.IP "\fB-b\fR" 4
Make read-only boot sector check.
.IP "\fB\-d\fR \fIPATH\fR" 4
Delete the specified file.
If more than one file with that name exist, the first one is deleted.
This option can be given more than once.
.IP "\fB\-f\fR" 4
Salvage unused cluster chains to files.
By default, unused clusters are added to the free disk space except in auto mode
(\fB\-a\fR).
.IP "\fB\-l\fR" 4
List path names of files being processed.
.IP "\fB\-n\fR" 4
No\-operation mode: non\-interactively check for errors, but don't write
anything to the filesystem.
.IP "\fB\-p\fR" 4
Same as \fB\-a\fR, for compatibility with other *fsck.
.IP "\fB\-r\fR" 4
Interactively repair the filesystem.
The user is asked for advice whenever there is more than one approach to fix an
inconsistency.
This is the default mode and the option is only retained for backwards
compatibility.
.IP "\fB\-t\fR" 4
Mark unreadable clusters as bad.
.IP "\fB\-u\fR \fIPATH\fR" 4
Try to undelete the specified file.
\fBfsck.fat\fR tries to allocate a chain of contiguous unallocated clusters
beginning with the start cluster of the undeleted file.
This option can be given more than once.
.IP "\fB\-v\fR" 4
Verbose mode.
Generates slightly more output.
.IP "\fB\-V\fR" 4
Perform a verification pass.
The filesystem check is repeated after the first run.
The second pass should never report any fixable errors.
It may take considerably longer than the first pass, because the first pass may
have generated long list of modifications that have to be scanned for each disk
read.
.IP "\fB\-w\fR" 4
Write changes to disk immediately.
.IP "\fB\-y\fR" 4
Same as \fB\-a\fR (automatically repair filesystem) for compatibility with other
fsck tools.
.\" ----------------------------------------------------------------------------
.SH "EXIT STATUS"
.IP "0" 4
No recoverable errors have been detected.
.IP "1" 4
Recoverable errors have been detected or \fBfsck.fat\fR has discovered an
internal inconsistency.
.IP "2" 4
Usage error.
\fBfsck.fat\fR did not access the filesystem.
.\" ----------------------------------------------------------------------------
.SH FILES
.IP "fsck0000.rec, fsck0001.rec, ..." 4
When recovering from a corrupted filesystem, \fBfsck.fat\fR dumps recovered data
into files named 'fsckNNNN.rec' in the top level directory of the filesystem.
.\" ----------------------------------------------------------------------------
.SH BUGS
Does not create . and .. files where necessary.
Does not remove entirely empty directories.
Should give more diagnostic messages.
Undeleting files should use a more sophisticated algorithm.
.\" ----------------------------------------------------------------------------
.SH SEE ALSO
\fBfatlabel\fR(8)
.br
\fBmkfs.fat\fR(8)
.\" ----------------------------------------------------------------------------
.SH HOMEPAGE
The home for the \fBdosfstools\fR project is its
.UR https://github.com/dosfstools/dosfstools
GitHub project page
.UE .
.\" ----------------------------------------------------------------------------
.SH AUTHORS
\fBdosfstools\fR were written by
.MT werner.almesberger@\:lrc.di.epfl.ch
Werner Almesberger
.ME ,
.MT Roman.Hodek@\:informatik.\:uni-erlangen.de
Roman Hodek
.ME ,
and others.
The current maintainer is
.MT aeb@\:debian.org
Andreas Bombe
.ME .
