home *** CD-ROM | disk | FTP | other *** search
Text File | 1991-04-17 | 40.3 KB | 1,425 lines |
- .\" Copyright (c) 1982 The Regents of the University of California.
- .\" All rights reserved.
- .\"
- .\" Redistribution and use in source and binary forms, with or without
- .\" modification, are permitted provided that the following conditions
- .\" are met:
- .\" 1. Redistributions of source code must retain the above copyright
- .\" notice, this list of conditions and the following disclaimer.
- .\" 2. Redistributions in binary form must reproduce the above copyright
- .\" notice, this list of conditions and the following disclaimer in the
- .\" documentation and/or other materials provided with the distribution.
- .\" 3. All advertising materials mentioning features or use of this software
- .\" must display the following acknowledgement:
- .\" This product includes software developed by the University of
- .\" California, Berkeley and its contributors.
- .\" 4. Neither the name of the University nor the names of its contributors
- .\" may be used to endorse or promote products derived from this software
- .\" without specific prior written permission.
- .\"
- .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- .\" SUCH DAMAGE.
- .\"
- .\" @(#)4.t 4.6 (Berkeley) 4/17/91
- .\"
- .ds RH Appendix A \- Fsck Error Conditions
- .NH
- Appendix A \- Fsck Error Conditions
- .NH 2
- Conventions
- .PP
- .I Fsck
- is
- a multi-pass file system check program.
- Each file system pass invokes a different Phase of the
- .I fsck
- program.
- After the initial setup,
- .I fsck
- performs successive Phases over each file system,
- checking blocks and sizes,
- path-names,
- connectivity,
- reference counts,
- and the map of free blocks,
- (possibly rebuilding it),
- and performs some cleanup.
- .LP
- Normally
- .I fsck
- is run non-interactively to
- .I preen
- the file systems after an unclean halt.
- While preen'ing a file system,
- it will only fix corruptions that are expected
- to occur from an unclean halt.
- These actions are a proper subset of the actions that
- .I fsck
- will take when it is running interactively.
- Throughout this appendix many errors have several options
- that the operator can take.
- When an inconsistency is detected,
- .I fsck
- reports the error condition to the operator.
- If a response is required,
- .I fsck
- prints a prompt message and
- waits for a response.
- When preen'ing most errors are fatal.
- For those that are expected,
- the response taken is noted.
- This appendix explains the meaning of each error condition,
- the possible responses, and the related error conditions.
- .LP
- The error conditions are organized by the
- .I Phase
- of the
- .I fsck
- program in which they can occur.
- The error conditions that may occur
- in more than one Phase
- will be discussed in initialization.
- .NH 2
- Initialization
- .PP
- Before a file system check can be performed, certain
- tables have to be set up and certain files opened.
- This section concerns itself with the opening of files and
- the initialization of tables.
- This section lists error conditions resulting from
- command line options,
- memory requests,
- opening of files,
- status of files,
- file system size checks,
- and creation of the scratch file.
- All the initialization errors are fatal
- when the file system is being preen'ed.
- .sp
- .LP
- .B "\fIC\fP option?"
- .br
- \fIC\fP is not a legal option to
- .I fsck ;
- legal options are \-b, \-c, \-y, \-n, and \-p.
- .I Fsck
- terminates on this error condition.
- See the
- .I fsck (8)
- manual entry for further detail.
- .sp
- .LP
- .B "cannot alloc NNN bytes for blockmap"
- .br
- .B "cannot alloc NNN bytes for freemap"
- .br
- .B "cannot alloc NNN bytes for statemap"
- .br
- .B "cannot alloc NNN bytes for lncntp"
- .br
- .I Fsck 's
- request for memory for its virtual
- memory tables failed.
- This should never happen.
- .I Fsck
- terminates on this error condition.
- See a guru.
- .sp
- .LP
- .B "Can't open checklist file: \fIF\fP"
- .br
- The file system checklist file
- \fIF\fP (usually
- .I /etc/fstab )
- can not be opened for reading.
- .I Fsck
- terminates on this error condition.
- Check access modes of \fIF\fP.
- .sp
- .LP
- .B "Can't stat root"
- .br
- .I Fsck 's
- request for statistics about the root directory ``/'' failed.
- This should never happen.
- .I Fsck
- terminates on this error condition.
- See a guru.
- .sp
- .LP
- .B "Can't stat \fIF\fP"
- .br
- .B "Can't make sense out of name \fIF\fP"
- .br
- .I Fsck 's
- request for statistics about the file system \fIF\fP failed.
- When running manually,
- it ignores this file system
- and continues checking the next file system given.
- Check access modes of \fIF\fP.
- .sp
- .LP
- .B "Can't open \fIF\fP"
- .br
- .I Fsck 's
- request attempt to open the file system \fIF\fP failed.
- When running manually, it ignores this file system
- and continues checking the next file system given.
- Check access modes of \fIF\fP.
- .sp
- .LP
- .B "\fIF\fP: (NO WRITE)"
- .br
- Either the \-n flag was specified or
- .I fsck 's
- attempt to open the file system \fIF\fP for writing failed.
- When running manually,
- all the diagnostics are printed out,
- but no modifications are attempted to fix them.
- .sp
- .LP
- .B "file is not a block or character device; OK"
- .br
- You have given
- .I fsck
- a regular file name by mistake.
- Check the type of the file specified.
- .LP
- Possible responses to the OK prompt are:
- .IP YES
- ignore this error condition.
- .IP NO
- ignore this file system and continues checking
- the next file system given.
- .sp
- .LP
- .B "UNDEFINED OPTIMIZATION IN SUPERBLOCK (SET TO DEFAULT)"
- .br
- The superblock optimization parameter is neither OPT_TIME
- nor OPT_SPACE.
- .LP
- Possible responses to the SET TO DEFAULT prompt are:
- .IP YES
- The superblock is set to request optimization to minimize
- running time of the system.
- (If optimization to minimize disk space utilization is
- desired, it can be set using \fItunefs\fP(8).)
- .IP NO
- ignore this error condition.
- .sp
- .LP
- .B "IMPOSSIBLE MINFREE=\fID\fP IN SUPERBLOCK (SET TO DEFAULT)"
- .br
- The superblock minimum space percentage is greater than 99%
- or less then 0%.
- .LP
- Possible responses to the SET TO DEFAULT prompt are:
- .IP YES
- The minfree parameter is set to 10%.
- (If some other percentage is desired,
- it can be set using \fItunefs\fP(8).)
- .IP NO
- ignore this error condition.
- .sp
- .LP
- .B "IMPOSSIBLE INTERLEAVE=\fID\fP IN SUPERBLOCK (SET TO DEFAULT)"
- .br
- The file system interleave is less than or equal to zero.
- .LP
- Possible responses to the SET TO DEFAULT prompt are:
- .IP YES
- The interleave parameter is set to 1.
- .IP NO
- ignore this error condition.
- .sp
- .LP
- .B "IMPOSSIBLE NPSECT=\fID\fP IN SUPERBLOCK (SET TO DEFAULT)"
- .br
- The number of physical sectors per track is less than the number
- of usable sectors per track.
- .LP
- Possible responses to the SET TO DEFAULT prompt are:
- .IP YES
- The npsect parameter is set to the number of usable sectors per track.
- .IP NO
- ignore this error condition.
- .sp
- .LP
- One of the following messages will appear:
- .br
- .B "MAGIC NUMBER WRONG"
- .br
- .B "NCG OUT OF RANGE"
- .br
- .B "CPG OUT OF RANGE"
- .br
- .B "NCYL DOES NOT JIVE WITH NCG*CPG"
- .br
- .B "SIZE PREPOSTEROUSLY LARGE"
- .br
- .B "TRASHED VALUES IN SUPER BLOCK"
- .br
- and will be followed by the message:
- .br
- .B "\fIF\fP: BAD SUPER BLOCK: \fIB\fP"
- .br
- .B "USE -b OPTION TO FSCK TO SPECIFY LOCATION OF AN ALTERNATE"
- .br
- .B "SUPER-BLOCK TO SUPPLY NEEDED INFORMATION; SEE fsck(8)."
- .br
- The super block has been corrupted.
- An alternative super block must be selected from among those
- listed by
- .I newfs
- (8) when the file system was created.
- For file systems with a blocksize less than 32K,
- specifying \-b 32 is a good first choice.
- .sp
- .LP
- .B "INTERNAL INCONSISTENCY: \fIM\fP"
- .br
- .I Fsck 's
- has had an internal panic, whose message is specified as \fIM\fP.
- This should never happen.
- See a guru.
- .sp
- .LP
- .B "CAN NOT SEEK: BLK \fIB\fP (CONTINUE)"
- .br
- .I Fsck 's
- request for moving to a specified block number \fIB\fP in
- the file system failed.
- This should never happen.
- See a guru.
- .LP
- Possible responses to the CONTINUE prompt are:
- .IP YES
- attempt to continue to run the file system check.
- Often,
- however the problem will persist.
- This error condition will not allow a complete check of the file system.
- A second run of
- .I fsck
- should be made to re-check this file system.
- If the block was part of the virtual memory buffer
- cache,
- .I fsck
- will terminate with the message ``Fatal I/O error''.
- .IP NO
- terminate the program.
- .sp
- .LP
- .B "CAN NOT READ: BLK \fIB\fP (CONTINUE)"
- .br
- .I Fsck 's
- request for reading a specified block number \fIB\fP in
- the file system failed.
- This should never happen.
- See a guru.
- .LP
- Possible responses to the CONTINUE prompt are:
- .IP YES
- attempt to continue to run the file system check.
- It will retry the read and print out the message:
- .br
- .B "THE FOLLOWING SECTORS COULD NOT BE READ: \fIN\fP"
- .br
- where \fIN\fP indicates the sectors that could not be read.
- If
- .I fsck
- ever tries to write back one of the blocks on which the read failed
- it will print the message:
- .br
- .B "WRITING ZERO'ED BLOCK \fIN\fP TO DISK"
- .br
- where \fIN\fP indicates the sector that was written with zero's.
- If the disk is experiencing hardware problems, the problem will persist.
- This error condition will not allow a complete check of the file system.
- A second run of
- .I fsck
- should be made to re-check this file system.
- If the block was part of the virtual memory buffer
- cache,
- .I fsck
- will terminate with the message ``Fatal I/O error''.
- .IP NO
- terminate the program.
- .sp
- .LP
- .B "CAN NOT WRITE: BLK \fIB\fP (CONTINUE)"
- .br
- .I Fsck 's
- request for writing a specified block number \fIB\fP
- in the file system failed.
- The disk is write-protected;
- check the write protect lock on the drive.
- If that is not the problem, see a guru.
- .LP
- Possible responses to the CONTINUE prompt are:
- .IP YES
- attempt to continue to run the file system check.
- The write operation will be retried with the failed blocks
- indicated by the message:
- .br
- .B "THE FOLLOWING SECTORS COULD NOT BE WRITTEN: \fIN\fP"
- .br
- where \fIN\fP indicates the sectors that could not be written.
- If the disk is experiencing hardware problems, the problem will persist.
- This error condition will not allow a complete check of the file system.
- A second run of
- .I fsck
- should be made to re-check this file system.
- If the block was part of the virtual memory buffer
- cache,
- .I fsck
- will terminate with the message ``Fatal I/O error''.
- .IP NO
- terminate the program.
- .sp
- .LP
- .B "bad inode number DDD to ginode"
- .br
- An internal error has attempted to read non-existent inode \fIDDD\fP.
- This error causes
- .I fsck
- to exit.
- See a guru.
- .NH 2
- Phase 1 \- Check Blocks and Sizes
- .PP
- This phase concerns itself with
- the inode list.
- This section lists error conditions resulting from
- checking inode types,
- setting up the zero-link-count table,
- examining inode block numbers for bad or duplicate blocks,
- checking inode size,
- and checking inode format.
- All errors in this phase except
- .B "INCORRECT BLOCK COUNT"
- and
- .B "PARTIALLY TRUNCATED INODE"
- are fatal if the file system is being preen'ed.
- .sp
- .LP
- .B "UNKNOWN FILE TYPE I=\fII\fP (CLEAR)"
- .br
- The mode word of the inode \fII\fP indicates that the inode is not a
- special block inode, special character inode, socket inode, regular inode,
- symbolic link, or directory inode.
- .LP
- Possible responses to the CLEAR prompt are:
- .IP YES
- de-allocate inode \fII\fP by zeroing its contents.
- This will always invoke the UNALLOCATED error condition in Phase 2
- for each directory entry pointing to this inode.
- .IP NO
- ignore this error condition.
- .sp
- .LP
- .B "PARTIALLY TRUNCATED INODE I=\fII\fP (SALVAGE)"
- .br
- .I Fsck
- has found inode \fII\fP whose size is shorter than the number of
- blocks allocated to it.
- This condition should only occur if the system crashes while in the
- midst of truncating a file.
- When preen'ing the file system,
- .I fsck
- completes the truncation to the specified size.
- .LP
- Possible responses to SALVAGE are:
- .IP YES
- complete the truncation to the size specified in the inode.
- .IP NO
- ignore this error condition.
- .sp
- .LP
- .B "LINK COUNT TABLE OVERFLOW (CONTINUE)"
- .br
- An internal table for
- .I fsck
- containing allocated inodes with a link count of
- zero cannot allocate more memory.
- Increase the virtual memory for
- .I fsck .
- .LP
- Possible responses to the CONTINUE prompt are:
- .IP YES
- continue with the program.
- This error condition will not allow a complete check of the file system.
- A second run of
- .I fsck
- should be made to re-check this file system.
- If another allocated inode with a zero link count is found,
- this error condition is repeated.
- .IP NO
- terminate the program.
- .sp
- .LP
- .B "\fIB\fP BAD I=\fII\fP"
- .br
- Inode \fII\fP contains block number \fIB\fP with a number
- lower than the number of the first data block in the file system or
- greater than the number of the last block
- in the file system.
- This error condition may invoke the
- .B "EXCESSIVE BAD BLKS"
- error condition in Phase 1 (see next paragraph) if
- inode \fII\fP has too many block numbers outside the file system range.
- This error condition will always invoke the
- .B "BAD/DUP"
- error condition in Phase 2 and Phase 4.
- .sp
- .LP
- .B "EXCESSIVE BAD BLKS I=\fII\fP (CONTINUE)"
- .br
- There is more than a tolerable number (usually 10) of blocks with a number
- lower than the number of the first data block in the file system or greater than
- the number of last block in the file system associated with inode \fII\fP.
- .LP
- Possible responses to the CONTINUE prompt are:
- .IP YES
- ignore the rest of the blocks in this inode
- and continue checking with the next inode in the file system.
- This error condition will not allow a complete check of the file system.
- A second run of
- .I fsck
- should be made to re-check this file system.
- .IP NO
- terminate the program.
- .sp
- .LP
- .B "BAD STATE DDD TO BLKERR"
- .br
- An internal error has scrambled
- .I fsck 's
- state map to have the impossible value \fIDDD\fP.
- .I Fsck
- exits immediately.
- See a guru.
- .sp
- .LP
- .B "\fIB\fP DUP I=\fII\fP"
- .br
- Inode \fII\fP contains block number \fIB\fP that is already claimed by
- another inode.
- This error condition may invoke the
- .B "EXCESSIVE DUP BLKS"
- error condition in Phase 1 if
- inode \fII\fP has too many block numbers claimed by other inodes.
- This error condition will always invoke Phase 1b and the
- .B "BAD/DUP"
- error condition in Phase 2 and Phase 4.
- .sp
- .LP
- .B "EXCESSIVE DUP BLKS I=\fII\fP (CONTINUE)"
- .br
- There is more than a tolerable number (usually 10) of blocks claimed by other
- inodes.
- .LP
- Possible responses to the CONTINUE prompt are:
- .IP YES
- ignore the rest of the blocks in this inode
- and continue checking with the next inode in the file system.
- This error condition will not allow a complete check of the file system.
- A second run of
- .I fsck
- should be made to re-check this file system.
- .IP NO
- terminate the program.
- .sp
- .LP
- .B "DUP TABLE OVERFLOW (CONTINUE)"
- .br
- An internal table in
- .I fsck
- containing duplicate block numbers cannot allocate any more space.
- Increase the amount of virtual memory available to
- .I fsck .
- .LP
- Possible responses to the CONTINUE prompt are:
- .IP YES
- continue with the program.
- This error condition will not allow a complete check of the file system.
- A second run of
- .I fsck
- should be made to re-check this file system.
- If another duplicate block is found, this error condition will repeat.
- .IP NO
- terminate the program.
- .sp
- .LP
- .B "PARTIALLY ALLOCATED INODE I=\fII\fP (CLEAR)"
- .br
- Inode \fII\fP is neither allocated nor unallocated.
- .LP
- Possible responses to the CLEAR prompt are:
- .IP YES
- de-allocate inode \fII\fP by zeroing its contents.
- .IP NO
- ignore this error condition.
- .sp
- .LP
- .B "INCORRECT BLOCK COUNT I=\fII\fP (\fIX\fP should be \fIY\fP) (CORRECT)"
- .br
- The block count for inode \fII\fP is \fIX\fP blocks,
- but should be \fIY\fP blocks.
- When preen'ing the count is corrected.
- .LP
- Possible responses to the CORRECT prompt are:
- .IP YES
- replace the block count of inode \fII\fP with \fIY\fP.
- .IP NO
- ignore this error condition.
- .NH 2
- Phase 1B: Rescan for More Dups
- .PP
- When a duplicate block is found in the file system, the file system is
- rescanned to find the inode that previously claimed that block.
- This section lists the error condition when the duplicate block is found.
- .sp
- .LP
- .B "\fIB\fP DUP I=\fII\fP"
- .br
- Inode \fII\fP contains block number \fIB\fP that
- is already claimed by another inode.
- This error condition will always invoke the
- .B "BAD/DUP"
- error condition in Phase 2.
- You can determine which inodes have overlapping blocks by examining
- this error condition and the DUP error condition in Phase 1.
- .NH 2
- Phase 2 \- Check Pathnames
- .PP
- This phase concerns itself with removing directory entries
- pointing to
- error conditioned inodes
- from Phase 1 and Phase 1b.
- This section lists error conditions resulting from
- root inode mode and status,
- directory inode pointers in range,
- and directory entries pointing to bad inodes,
- and directory integrity checks.
- All errors in this phase are fatal if the file system is being preen'ed,
- except for directories not being a multiple of the blocks size
- and extraneous hard links.
- .sp
- .LP
- .B "ROOT INODE UNALLOCATED (ALLOCATE)"
- .br
- The root inode (usually inode number 2) has no allocate mode bits.
- This should never happen.
- .LP
- Possible responses to the ALLOCATE prompt are:
- .IP YES
- allocate inode 2 as the root inode.
- The files and directories usually found in the root will be recovered
- in Phase 3 and put into
- .I lost+found .
- If the attempt to allocate the root fails,
- .I fsck
- will exit with the message:
- .br
- .B "CANNOT ALLOCATE ROOT INODE" .
- .IP NO
- .I fsck
- will exit.
- .sp
- .LP
- .B "ROOT INODE NOT DIRECTORY (REALLOCATE)"
- .br
- The root inode (usually inode number 2)
- is not directory inode type.
- .LP
- Possible responses to the REALLOCATE prompt are:
- .IP YES
- clear the existing contents of the root inode
- and reallocate it.
- The files and directories usually found in the root will be recovered
- in Phase 3 and put into
- .I lost+found .
- If the attempt to allocate the root fails,
- .I fsck
- will exit with the message:
- .br
- .B "CANNOT ALLOCATE ROOT INODE" .
- .IP NO
- .I fsck
- will then prompt with
- .B "FIX"
- .LP
- Possible responses to the FIX prompt are:
- .IP YES
- replace the root inode's type to be a directory.
- If the root inode's data blocks are not directory blocks,
- many error conditions will be produced.
- .IP NO
- terminate the program.
- .sp
- .LP
- .B "DUPS/BAD IN ROOT INODE (REALLOCATE)"
- .br
- Phase 1 or Phase 1b have found duplicate blocks
- or bad blocks in the root inode (usually inode number 2) for the file system.
- .LP
- Possible responses to the REALLOCATE prompt are:
- .IP YES
- clear the existing contents of the root inode
- and reallocate it.
- The files and directories usually found in the root will be recovered
- in Phase 3 and put into
- .I lost+found .
- If the attempt to allocate the root fails,
- .I fsck
- will exit with the message:
- .br
- .B "CANNOT ALLOCATE ROOT INODE" .
- .IP NO
- .I fsck
- will then prompt with
- .B "CONTINUE" .
- .LP
- Possible responses to the CONTINUE prompt are:
- .IP YES
- ignore the
- .B "DUPS/BAD"
- error condition in the root inode and
- attempt to continue to run the file system check.
- If the root inode is not correct,
- then this may result in many other error conditions.
- .IP NO
- terminate the program.
- .sp
- .LP
- .B "NAME TOO LONG \fIF\fP"
- .br
- An excessively long path name has been found.
- This usually indicates loops in the file system name space.
- This can occur if the super user has made circular links to directories.
- The offending links must be removed (by a guru).
- .sp
- .LP
- .B "I OUT OF RANGE I=\fII\fP NAME=\fIF\fP (REMOVE)"
- .br
- A directory entry \fIF\fP has an inode number \fII\fP that is greater than
- the end of the inode list.
- .LP
- Possible responses to the REMOVE prompt are:
- .IP YES
- the directory entry \fIF\fP is removed.
- .IP NO
- ignore this error condition.
- .sp
- .LP
- .B "UNALLOCATED I=\fII\fP OWNER=\fIO\fP MODE=\fIM\fP SIZE=\fIS\fP MTIME=\fIT\fP \fItype\fP=\fIF\fP (REMOVE)"
- .br
- A directory or file entry \fIF\fP points to an unallocated inode \fII\fP.
- The owner \fIO\fP, mode \fIM\fP, size \fIS\fP, modify time \fIT\fP,
- and name \fIF\fP are printed.
- .LP
- Possible responses to the REMOVE prompt are:
- .IP YES
- the directory entry \fIF\fP is removed.
- .IP NO
- ignore this error condition.
- .sp
- .LP
- .B "DUP/BAD I=\fII\fP OWNER=\fIO\fP MODE=\fIM\fP SIZE=\fIS\fP MTIME=\fIT\fP \fItype\fP=\fIF\fP (REMOVE)"
- .br
- Phase 1 or Phase 1b have found duplicate blocks or bad blocks
- associated with directory or file entry \fIF\fP, inode \fII\fP.
- The owner \fIO\fP, mode \fIM\fP, size \fIS\fP, modify time \fIT\fP,
- and directory name \fIF\fP are printed.
- .LP
- Possible responses to the REMOVE prompt are:
- .IP YES
- the directory entry \fIF\fP is removed.
- .IP NO
- ignore this error condition.
- .sp
- .LP
- .B "ZERO LENGTH DIRECTORY I=\fII\fP OWNER=\fIO\fP MODE=\fIM\fP SIZE=\fIS\fP MTIME=\fIT\fP DIR=\fIF\fP (REMOVE)"
- .br
- A directory entry \fIF\fP has a size \fIS\fP that is zero.
- The owner \fIO\fP, mode \fIM\fP, size \fIS\fP, modify time \fIT\fP,
- and directory name \fIF\fP are printed.
- .LP
- Possible responses to the REMOVE prompt are:
- .IP YES
- the directory entry \fIF\fP is removed;
- this will always invoke the BAD/DUP error condition in Phase 4.
- .IP NO
- ignore this error condition.
- .sp
- .LP
- .B "DIRECTORY TOO SHORT I=\fII\fP OWNER=\fIO\fP MODE=\fIM\fP SIZE=\fIS\fP MTIME=\fIT\fP DIR=\fIF\fP (FIX)"
- .br
- A directory \fIF\fP has been found whose size \fIS\fP
- is less than the minimum size directory.
- The owner \fIO\fP, mode \fIM\fP, size \fIS\fP, modify time \fIT\fP,
- and directory name \fIF\fP are printed.
- .LP
- Possible responses to the FIX prompt are:
- .IP YES
- increase the size of the directory to the minimum directory size.
- .IP NO
- ignore this directory.
- .sp
- .LP
- .B "DIRECTORY \fIF\fP LENGTH \fIS\fP NOT MULTIPLE OF \fIB\fP (ADJUST)
- .br
- A directory \fIF\fP has been found with size \fIS\fP that is not
- a multiple of the directory blocksize \fIB\fP.
- .LP
- Possible responses to the ADJUST prompt are:
- .IP YES
- the length is rounded up to the appropriate block size.
- This error can occur on 4.2BSD file systems.
- Thus when preen'ing the file system only a warning is printed
- and the directory is adjusted.
- .IP NO
- ignore the error condition.
- .sp
- .LP
- .B "DIRECTORY CORRUPTED I=\fII\fP OWNER=\fIO\fP MODE=\fIM\fP SIZE=\fIS\fP MTIME=\fIT\fP DIR=\fIF\fP (SALVAGE)"
- .br
- A directory with an inconsistent internal state has been found.
- .LP
- Possible responses to the FIX prompt are:
- .IP YES
- throw away all entries up to the next directory boundary (usually 512-byte)
- boundary.
- This drastic action can throw away up to 42 entries,
- and should be taken only after other recovery efforts have failed.
- .IP NO
- skip up to the next directory boundary and resume reading,
- but do not modify the directory.
- .sp
- .LP
- .B "BAD INODE NUMBER FOR `.' I=\fII\fP OWNER=\fIO\fP MODE=\fIM\fP SIZE=\fIS\fP MTIME=\fIT\fP DIR=\fIF\fP (FIX)"
- .br
- A directory \fII\fP has been found whose inode number for `.' does
- does not equal \fII\fP.
- .LP
- Possible responses to the FIX prompt are:
- .IP YES
- change the inode number for `.' to be equal to \fII\fP.
- .IP NO
- leave the inode number for `.' unchanged.
- .sp
- .LP
- .B "MISSING `.' I=\fII\fP OWNER=\fIO\fP MODE=\fIM\fP SIZE=\fIS\fP MTIME=\fIT\fP DIR=\fIF\fP (FIX)"
- .br
- A directory \fII\fP has been found whose first entry is unallocated.
- .LP
- Possible responses to the FIX prompt are:
- .IP YES
- build an entry for `.' with inode number equal to \fII\fP.
- .IP NO
- leave the directory unchanged.
- .sp
- .LP
- .B "MISSING `.' I=\fII\fP OWNER=\fIO\fP MODE=\fIM\fP SIZE=\fIS\fP MTIME=\fIT\fP DIR=\fIF\fP"
- .br
- .B "CANNOT FIX, FIRST ENTRY IN DIRECTORY CONTAINS \fIF\fP"
- .br
- A directory \fII\fP has been found whose first entry is \fIF\fP.
- .I Fsck
- cannot resolve this problem.
- The file system should be mounted and the offending entry \fIF\fP
- moved elsewhere.
- The file system should then be unmounted and
- .I fsck
- should be run again.
- .sp
- .LP
- .B "MISSING `.' I=\fII\fP OWNER=\fIO\fP MODE=\fIM\fP SIZE=\fIS\fP MTIME=\fIT\fP DIR=\fIF\fP"
- .br
- .B "CANNOT FIX, INSUFFICIENT SPACE TO ADD `.'"
- .br
- A directory \fII\fP has been found whose first entry is not `.'.
- .I Fsck
- cannot resolve this problem as it should never happen.
- See a guru.
- .sp
- .LP
- .B "EXTRA `.' ENTRY I=\fII\fP OWNER=\fIO\fP MODE=\fIM\fP SIZE=\fIS\fP MTIME=\fIT\fP DIR=\fIF\fP (FIX)"
- .br
- A directory \fII\fP has been found that has more than one entry for `.'.
- .LP
- Possible responses to the FIX prompt are:
- .IP YES
- remove the extra entry for `.'.
- .IP NO
- leave the directory unchanged.
- .sp
- .LP
- .B "BAD INODE NUMBER FOR `..' I=\fII\fP OWNER=\fIO\fP MODE=\fIM\fP SIZE=\fIS\fP MTIME=\fIT\fP DIR=\fIF\fP (FIX)"
- .br
- A directory \fII\fP has been found whose inode number for `..' does
- does not equal the parent of \fII\fP.
- .LP
- Possible responses to the FIX prompt are:
- .IP YES
- change the inode number for `..' to be equal to the parent of \fII\fP
- (``\fB..\fP'' in the root inode points to itself).
- .IP NO
- leave the inode number for `..' unchanged.
- .sp
- .LP
- .B "MISSING `..' I=\fII\fP OWNER=\fIO\fP MODE=\fIM\fP SIZE=\fIS\fP MTIME=\fIT\fP DIR=\fIF\fP (FIX)"
- .br
- A directory \fII\fP has been found whose second entry is unallocated.
- .LP
- Possible responses to the FIX prompt are:
- .IP YES
- build an entry for `..' with inode number equal to the parent of \fII\fP
- (``\fB..\fP'' in the root inode points to itself).
- .IP NO
- leave the directory unchanged.
- .sp
- .LP
- .B "MISSING `..' I=\fII\fP OWNER=\fIO\fP MODE=\fIM\fP SIZE=\fIS\fP MTIME=\fIT\fP DIR=\fIF\fP"
- .br
- .B "CANNOT FIX, SECOND ENTRY IN DIRECTORY CONTAINS \fIF\fP"
- .br
- A directory \fII\fP has been found whose second entry is \fIF\fP.
- .I Fsck
- cannot resolve this problem.
- The file system should be mounted and the offending entry \fIF\fP
- moved elsewhere.
- The file system should then be unmounted and
- .I fsck
- should be run again.
- .sp
- .LP
- .B "MISSING `..' I=\fII\fP OWNER=\fIO\fP MODE=\fIM\fP SIZE=\fIS\fP MTIME=\fIT\fP DIR=\fIF\fP"
- .br
- .B "CANNOT FIX, INSUFFICIENT SPACE TO ADD `..'"
- .br
- A directory \fII\fP has been found whose second entry is not `..'.
- .I Fsck
- cannot resolve this problem.
- The file system should be mounted and the second entry in the directory
- moved elsewhere.
- The file system should then be unmounted and
- .I fsck
- should be run again.
- .sp
- .LP
- .B "EXTRA `..' ENTRY I=\fII\fP OWNER=\fIO\fP MODE=\fIM\fP SIZE=\fIS\fP MTIME=\fIT\fP DIR=\fIF\fP (FIX)"
- .br
- A directory \fII\fP has been found that has more than one entry for `..'.
- .LP
- Possible responses to the FIX prompt are:
- .IP YES
- remove the extra entry for `..'.
- .IP NO
- leave the directory unchanged.
- .sp
- .LP
- .B "\fIN\fP IS AN EXTRANEOUS HARD LINK TO A DIRECTORY \fID\fP (REMOVE)
- .br
- .I Fsck
- has found a hard link, \fIN\fP, to a directory, \fID\fP.
- When preen'ing the extraneous links are ignored.
- .LP
- Possible responses to the REMOVE prompt are:
- .IP YES
- delete the extraneous entry, \fIN\fP.
- .IP NO
- ignore the error condition.
- .sp
- .LP
- .B "BAD INODE \fIS\fP TO DESCEND"
- .br
- An internal error has caused an impossible state \fIS\fP to be passed to the
- routine that descends the file system directory structure.
- .I Fsck
- exits.
- See a guru.
- .sp
- .LP
- .B "BAD RETURN STATE \fIS\fP FROM DESCEND"
- .br
- An internal error has caused an impossible state \fIS\fP to be returned
- from the routine that descends the file system directory structure.
- .I Fsck
- exits.
- See a guru.
- .sp
- .LP
- .B "BAD STATE \fIS\fP FOR ROOT INODE"
- .br
- An internal error has caused an impossible state \fIS\fP to be assigned
- to the root inode.
- .I Fsck
- exits.
- See a guru.
- .NH 2
- Phase 3 \- Check Connectivity
- .PP
- This phase concerns itself with the directory connectivity seen in
- Phase 2.
- This section lists error conditions resulting from
- unreferenced directories,
- and missing or full
- .I lost+found
- directories.
- .sp
- .LP
- .B "UNREF DIR I=\fII\fP OWNER=\fIO\fP MODE=\fIM\fP SIZE=\fIS\fP MTIME=\fIT\fP (RECONNECT)"
- .br
- The directory inode \fII\fP was not connected to a directory entry
- when the file system was traversed.
- The owner \fIO\fP, mode \fIM\fP, size \fIS\fP, and
- modify time \fIT\fP of directory inode \fII\fP are printed.
- When preen'ing, the directory is reconnected if its size is non-zero,
- otherwise it is cleared.
- .LP
- Possible responses to the RECONNECT prompt are:
- .IP YES
- reconnect directory inode \fII\fP to the file system in the
- directory for lost files (usually \fIlost+found\fP).
- This may invoke the
- .I lost+found
- error condition in Phase 3
- if there are problems connecting directory inode \fII\fP to \fIlost+found\fP.
- This may also invoke the CONNECTED error condition in Phase 3 if the link
- was successful.
- .IP NO
- ignore this error condition.
- This will always invoke the UNREF error condition in Phase 4.
- .sp
- .LP
- .B "NO lost+found DIRECTORY (CREATE)"
- .br
- There is no
- .I lost+found
- directory in the root directory of the file system;
- When preen'ing
- .I fsck
- tries to create a \fIlost+found\fP directory.
- .LP
- Possible responses to the CREATE prompt are:
- .IP YES
- create a \fIlost+found\fP directory in the root of the file system.
- This may raise the message:
- .br
- .B "NO SPACE LEFT IN / (EXPAND)"
- .br
- See below for the possible responses.
- Inability to create a \fIlost+found\fP directory generates the message:
- .br
- .B "SORRY. CANNOT CREATE lost+found DIRECTORY"
- .br
- and aborts the attempt to linkup the lost inode.
- This will always invoke the UNREF error condition in Phase 4.
- .IP NO
- abort the attempt to linkup the lost inode.
- This will always invoke the UNREF error condition in Phase 4.
- .sp
- .LP
- .B "lost+found IS NOT A DIRECTORY (REALLOCATE)"
- .br
- The entry for
- .I lost+found
- is not a directory.
- .LP
- Possible responses to the REALLOCATE prompt are:
- .IP YES
- allocate a directory inode, and change \fIlost+found\fP to reference it.
- The previous inode reference by the \fIlost+found\fP name is not cleared.
- Thus it will either be reclaimed as an UNREF'ed inode or have its
- link count ADJUST'ed later in this Phase.
- Inability to create a \fIlost+found\fP directory generates the message:
- .br
- .B "SORRY. CANNOT CREATE lost+found DIRECTORY"
- .br
- and aborts the attempt to linkup the lost inode.
- This will always invoke the UNREF error condition in Phase 4.
- .IP NO
- abort the attempt to linkup the lost inode.
- This will always invoke the UNREF error condition in Phase 4.
- .sp
- .LP
- .B "NO SPACE LEFT IN /lost+found (EXPAND)"
- .br
- There is no space to add another entry to the
- .I lost+found
- directory in the root directory
- of the file system.
- When preen'ing the
- .I lost+found
- directory is expanded.
- .LP
- Possible responses to the EXPAND prompt are:
- .IP YES
- the
- .I lost+found
- directory is expanded to make room for the new entry.
- If the attempted expansion fails
- .I fsck
- prints the message:
- .br
- .B "SORRY. NO SPACE IN lost+found DIRECTORY"
- .br
- and aborts the attempt to linkup the lost inode.
- This will always invoke the UNREF error condition in Phase 4.
- Clean out unnecessary entries in
- .I lost+found .
- This error is fatal if the file system is being preen'ed.
- .IP NO
- abort the attempt to linkup the lost inode.
- This will always invoke the UNREF error condition in Phase 4.
- .sp
- .LP
- .B "DIR I=\fII1\fP CONNECTED. PARENT WAS I=\fII2\fP"
- .br
- This is an advisory message indicating a directory inode \fII1\fP was
- successfully connected to the
- .I lost+found
- directory.
- The parent inode \fII2\fP of the directory inode \fII1\fP is
- replaced by the inode number of the
- .I lost+found
- directory.
- .sp
- .LP
- .B "DIRECTORY \fIF\fP LENGTH \fIS\fP NOT MULTIPLE OF \fIB\fP (ADJUST)
- .br
- A directory \fIF\fP has been found with size \fIS\fP that is not
- a multiple of the directory blocksize \fIB\fP
- (this can reoccur in Phase 3 if it is not adjusted in Phase 2).
- .LP
- Possible responses to the ADJUST prompt are:
- .IP YES
- the length is rounded up to the appropriate block size.
- This error can occur on 4.2BSD file systems.
- Thus when preen'ing the file system only a warning is printed
- and the directory is adjusted.
- .IP NO
- ignore the error condition.
- .sp
- .LP
- .B "BAD INODE \fIS\fP TO DESCEND"
- .br
- An internal error has caused an impossible state \fIS\fP to be passed to the
- routine that descends the file system directory structure.
- .I Fsck
- exits.
- See a guru.
- .NH 2
- Phase 4 \- Check Reference Counts
- .PP
- This phase concerns itself with the link count information
- seen in Phase 2 and Phase 3.
- This section lists error conditions resulting from
- unreferenced files,
- missing or full
- .I lost+found
- directory,
- incorrect link counts for files, directories, symbolic links, or special files,
- unreferenced files, symbolic links, and directories,
- and bad or duplicate blocks in files, symbolic links, and directories.
- All errors in this phase are correctable if the file system is being preen'ed
- except running out of space in the \fIlost+found\fP directory.
- .sp
- .LP
- .B "UNREF FILE I=\fII\fP OWNER=\fIO\fP MODE=\fIM\fP SIZE=\fIS\fP MTIME=\fIT\fP (RECONNECT)"
- .br
- Inode \fII\fP was not connected to a directory entry
- when the file system was traversed.
- The owner \fIO\fP, mode \fIM\fP, size \fIS\fP, and
- modify time \fIT\fP of inode \fII\fP are printed.
- When preen'ing the file is cleared if either its size or its
- link count is zero,
- otherwise it is reconnected.
- .LP
- Possible responses to the RECONNECT prompt are:
- .IP YES
- reconnect inode \fII\fP to the file system in the directory for
- lost files (usually \fIlost+found\fP).
- This may invoke the
- .I lost+found
- error condition in Phase 4
- if there are problems connecting inode \fII\fP to
- .I lost+found .
- .IP NO
- ignore this error condition.
- This will always invoke the CLEAR error condition in Phase 4.
- .sp
- .LP
- .B "(CLEAR)"
- .br
- The inode mentioned in the immediately previous error condition can not be
- reconnected.
- This cannot occur if the file system is being preen'ed,
- since lack of space to reconnect files is a fatal error.
- .LP
- Possible responses to the CLEAR prompt are:
- .IP YES
- de-allocate the inode mentioned in the immediately previous error condition by zeroing its contents.
- .IP NO
- ignore this error condition.
- .sp
- .LP
- .B "NO lost+found DIRECTORY (CREATE)"
- .br
- There is no
- .I lost+found
- directory in the root directory of the file system;
- When preen'ing
- .I fsck
- tries to create a \fIlost+found\fP directory.
- .LP
- Possible responses to the CREATE prompt are:
- .IP YES
- create a \fIlost+found\fP directory in the root of the file system.
- This may raise the message:
- .br
- .B "NO SPACE LEFT IN / (EXPAND)"
- .br
- See below for the possible responses.
- Inability to create a \fIlost+found\fP directory generates the message:
- .br
- .B "SORRY. CANNOT CREATE lost+found DIRECTORY"
- .br
- and aborts the attempt to linkup the lost inode.
- This will always invoke the UNREF error condition in Phase 4.
- .IP NO
- abort the attempt to linkup the lost inode.
- This will always invoke the UNREF error condition in Phase 4.
- .sp
- .LP
- .B "lost+found IS NOT A DIRECTORY (REALLOCATE)"
- .br
- The entry for
- .I lost+found
- is not a directory.
- .LP
- Possible responses to the REALLOCATE prompt are:
- .IP YES
- allocate a directory inode, and change \fIlost+found\fP to reference it.
- The previous inode reference by the \fIlost+found\fP name is not cleared.
- Thus it will either be reclaimed as an UNREF'ed inode or have its
- link count ADJUST'ed later in this Phase.
- Inability to create a \fIlost+found\fP directory generates the message:
- .br
- .B "SORRY. CANNOT CREATE lost+found DIRECTORY"
- .br
- and aborts the attempt to linkup the lost inode.
- This will always invoke the UNREF error condition in Phase 4.
- .IP NO
- abort the attempt to linkup the lost inode.
- This will always invoke the UNREF error condition in Phase 4.
- .sp
- .LP
- .B "NO SPACE LEFT IN /lost+found (EXPAND)"
- .br
- There is no space to add another entry to the
- .I lost+found
- directory in the root directory
- of the file system.
- When preen'ing the
- .I lost+found
- directory is expanded.
- .LP
- Possible responses to the EXPAND prompt are:
- .IP YES
- the
- .I lost+found
- directory is expanded to make room for the new entry.
- If the attempted expansion fails
- .I fsck
- prints the message:
- .br
- .B "SORRY. NO SPACE IN lost+found DIRECTORY"
- .br
- and aborts the attempt to linkup the lost inode.
- This will always invoke the UNREF error condition in Phase 4.
- Clean out unnecessary entries in
- .I lost+found .
- This error is fatal if the file system is being preen'ed.
- .IP NO
- abort the attempt to linkup the lost inode.
- This will always invoke the UNREF error condition in Phase 4.
- .sp
- .LP
- .B "LINK COUNT \fItype\fP I=\fII\fP OWNER=\fIO\fP MODE=\fIM\fP SIZE=\fIS\fP MTIME=\fIT\fP COUNT=\fIX\fP SHOULD BE \fIY\fP (ADJUST)"
- .br
- The link count for inode \fII\fP,
- is \fIX\fP but should be \fIY\fP.
- The owner \fIO\fP, mode \fIM\fP, size \fIS\fP, and modify time \fIT\fP
- are printed.
- When preen'ing the link count is adjusted unless the number of references
- is increasing, a condition that should never occur unless precipitated
- by a hardware failure.
- When the number of references is increasing under preen mode,
- .I fsck
- exits with the message:
- .br
- .B "LINK COUNT INCREASING"
- .LP
- Possible responses to the ADJUST prompt are:
- .IP YES
- replace the link count of file inode \fII\fP with \fIY\fP.
- .IP NO
- ignore this error condition.
- .sp
- .LP
- .B "UNREF \fItype\fP I=\fII\fP OWNER=\fIO\fP MODE=\fIM\fP SIZE=\fIS\fP MTIME=\fIT\fP (CLEAR)"
- .br
- Inode \fII\fP, was not connected to a directory entry when the
- file system was traversed.
- The owner \fIO\fP, mode \fIM\fP, size \fIS\fP,
- and modify time \fIT\fP of inode \fII\fP
- are printed.
- When preen'ing,
- this is a file that was not connected because its size or link count was zero,
- hence it is cleared.
- .LP
- Possible responses to the CLEAR prompt are:
- .IP YES
- de-allocate inode \fII\fP by zeroing its contents.
- .IP NO
- ignore this error condition.
- .sp
- .LP
- .B "BAD/DUP \fItype\fP I=\fII\fP OWNER=\fIO\fP MODE=\fIM\fP SIZE=\fIS\fP MTIME=\fIT\fP (CLEAR)"
- .br
- Phase 1 or Phase 1b have found duplicate blocks
- or bad blocks associated with
- inode \fII\fP.
- The owner \fIO\fP, mode \fIM\fP, size \fIS\fP,
- and modify time \fIT\fP of inode \fII\fP
- are printed.
- This error cannot arise when the file system is being preen'ed,
- as it would have caused a fatal error earlier.
- .LP
- Possible responses to the CLEAR prompt are:
- .IP YES
- de-allocate inode \fII\fP by zeroing its contents.
- .IP NO
- ignore this error condition.
- .NH 2
- Phase 5 - Check Cyl groups
- .PP
- This phase concerns itself with the free-block and used-inode maps.
- This section lists error conditions resulting from
- allocated blocks in the free-block maps,
- free blocks missing from free-block maps,
- and the total free-block count incorrect.
- It also lists error conditions resulting from
- free inodes in the used-inode maps,
- allocated inodes missing from used-inode maps,
- and the total used-inode count incorrect.
- .sp
- .LP
- .B "CG \fIC\fP: BAD MAGIC NUMBER"
- .br
- The magic number of cylinder group \fIC\fP is wrong.
- This usually indicates that the cylinder group maps have been destroyed.
- When running manually the cylinder group is marked as needing
- to be reconstructed.
- This error is fatal if the file system is being preen'ed.
- .sp
- .LP
- .B "BLK(S) MISSING IN BIT MAPS (SALVAGE)"
- .br
- A cylinder group block map is missing some free blocks.
- During preen'ing the maps are reconstructed.
- .LP
- Possible responses to the SALVAGE prompt are:
- .IP YES
- reconstruct the free block map.
- .IP NO
- ignore this error condition.
- .sp
- .LP
- .B "SUMMARY INFORMATION BAD (SALVAGE)"
- .br
- The summary information was found to be incorrect.
- When preen'ing,
- the summary information is recomputed.
- .LP
- Possible responses to the SALVAGE prompt are:
- .IP YES
- reconstruct the summary information.
- .IP NO
- ignore this error condition.
- .sp
- .LP
- .B "FREE BLK COUNT(S) WRONG IN SUPERBLOCK (SALVAGE)"
- .br
- The superblock free block information was found to be incorrect.
- When preen'ing,
- the superblock free block information is recomputed.
- .LP
- Possible responses to the SALVAGE prompt are:
- .IP YES
- reconstruct the superblock free block information.
- .IP NO
- ignore this error condition.
- .NH 2
- Cleanup
- .PP
- Once a file system has been checked, a few cleanup functions are performed.
- This section lists advisory messages about
- the file system
- and modify status of the file system.
- .sp
- .LP
- .B "\fIV\fP files, \fIW\fP used, \fIX\fP free (\fIY\fP frags, \fIZ\fP blocks)"
- .br
- This is an advisory message indicating that
- the file system checked contained
- \fIV\fP files using
- \fIW\fP fragment sized blocks leaving
- \fIX\fP fragment sized blocks free in the file system.
- The numbers in parenthesis breaks the free count down into
- \fIY\fP free fragments and
- \fIZ\fP free full sized blocks.
- .sp
- .LP
- .B "***** REBOOT UNIX *****"
- .br
- This is an advisory message indicating that
- the root file system has been modified by
- .I fsck.
- If UNIX is not rebooted immediately,
- the work done by
- .I fsck
- may be undone by the in-core copies of tables
- UNIX keeps.
- When preen'ing,
- .I fsck
- will exit with a code of 4.
- The standard auto-reboot script distributed with 4.3BSD
- interprets an exit code of 4 by issuing a reboot system call.
- .sp
- .LP
- .B "***** FILE SYSTEM WAS MODIFIED *****"
- .br
- This is an advisory message indicating that
- the current file system was modified by
- .I fsck.
- If this file system is mounted or is the current root file system,
- .I fsck
- should be halted and UNIX rebooted.
- If UNIX is not rebooted immediately,
- the work done by
- .I fsck
- may be undone by the in-core copies of tables
- UNIX keeps.
-