Annotation of researchv10dc/vol2/fsck/fsck.m, revision 1.1.1.1

1.1       root        1: |make(rp)
                      2: 
                      3: |insert(../monk/monk.mac)
                      4: 
                      5: |comment(VOL2HEADER)|set_counter(page 581-1)|set_string(page_headers "'''")|set_string(even_headers "'Fsck \(em The UNIX File System Check Program''\f(NIfsck\fP'")|set_string(odd_headers "'\f(NIfsck\fP''Fsck \(em The UNIX File System Check Program'")|set_string(even_footers "_\\nP__UNIX Papers_")|set_string(odd_footers "'Research Tenth Edition''\\nP'")
                      6: 
                      7: |environment(S;
                      8:        inline off, size -1;)
                      9: 
                     10: |environment(text_list;
                     11:        list.type fixed, list.pre "\&", list.format 1, list.post "\ \ ",
                     12:        list.indent "nnnnnn", list on;
                     13: 
                     14:        list off)
                     15: 
                     16: |author(name "T. J. Kowalski", initials TJK, location MH, department 11229,
                     17:        extension x2771, room 2C-552)
                     18: 
                     19: |date(July 1, 1979)
                     20: 
                     21: |title(Fsck |sp(minus) The |s(UNIX) File System Check Program)
                     22: 
                     23: |keywords(File System Repair)
                     24: 
                     25: |begin(abstract)
                     26: The |s(UNIX)|sp(registered) File System Check program |i(fsck)
                     27: is an interactive file system check and repair program.
                     28: |i(Fsck) uses the redundant structural information
                     29: in the |s(UNIX) file system
                     30: to do several consistency checks.
                     31: If an inconsistency is detected,
                     32: it is reported to the operator,
                     33: who may elect to fix or ignore each inconsistency.
                     34: These inconsistencies
                     35: result from the permanent interruption of the file system updates,
                     36: which are performed every time a file is modified.
                     37: |i(Fsck) is frequently able to repair corrupted file systems
                     38: using procedures based on the order in which |s(UNIX) honors
                     39: these file system update requests.
                     40: |p
                     41: The purpose of this document
                     42: is to describe the normal updating of the file system,
                     43: to discuss the possible causes of file system corruption,
                     44: and to present the corrective actions carried out by |i(fsck).
                     45: Both the program
                     46: and the interaction between the program and the operator are described.
                     47: |end(abstract)
                     48: 
                     49: |titlebox
                     50: 
                     51: |style(two_column)
                     52: 
                     53: |section(Introduction)
                     54: 
                     55: When a |s(UNIX) system|reference(ritchie thompson unix cacm)
                     56: is brought up,
                     57: a consistency check of the file systems should always be performed.
                     58: This precautionary measure
                     59: helps to insure a reliable environment for file storage on disk.
                     60: If an inconsistency is discovered,
                     61: corrective action must be taken.
                     62: No changes are made to any file system
                     63: by |i(fsck) without prior operator approval.
                     64: |p
                     65: The purpose of this memo is to dispel the mystique
                     66: surrounding file system inconsistencies.
                     67: It first describes the updating of the file system
                     68: (the calm before the storm)
                     69: and then describes file system corruption (the storm).
                     70: Finally,
                     71: the set of heuristically sound corrective actions
                     72: used by |i(fsck)|reference(system iii manual)
                     73: (the Coast Guard to the rescue)
                     74: is presented.
                     75: 
                     76: |section(Update Of The File System)
                     77: 
                     78: Every working day hundreds of files are created, modified, and removed.
                     79: Every time a file is modified, the |s(UNIX) operating system
                     80: performs a series of file system updates.
                     81: These updates, when written on disk, yield a consistent file system.
                     82: To understand what happens
                     83: if a permanent interruption occurs in this sequence,
                     84: it is important to know the probable order of update requests.|reference(thompson unix bstj)
                     85: Knowing what pieces of information were probably written
                     86: to the file system first,
                     87: heuristic procedures can be developed to repair a corrupted file system.
                     88: |p
                     89: There are five types of file system updates.
                     90: These involve the super-block,
                     91: inodes, indirect blocks,
                     92: data blocks (directories and files), and free list blocks.
                     93: 
                     94: |subsection(Super-Block)
                     95: 
                     96: The super-block contains
                     97: part of the free block list,
                     98: part of the free i-list,
                     99: and information about
                    100: the size of the file system,
                    101: the size of the i-list,
                    102: the count of free blocks,
                    103: and the count of free inodes.
                    104: |p
                    105: The super-block of a mounted file system
                    106: (the root file system is always mounted)
                    107: is written whenever the file system is unmounted
                    108: or a |i(sync) command is issued.
                    109: 
                    110: |subsection(Inodes)
                    111: 
                    112: An inode contains information about
                    113: the type of inode (directory, data, or special),
                    114: the number of directory entries linked to the inode,
                    115: the list of blocks claimed by the inode,
                    116: and the size of the inode.
                    117: |p
                    118: An inode is written to the file system
                    119: when the file associated with the inode is closed.|footnote(All
                    120: in-core blocks are also written to the file system on issue of
                    121: a |i(sync) system call.)
                    122: 
                    123: |subsection(Indirect Blocks)
                    124: 
                    125: There are three types of indirect blocks:
                    126: single-indirect, double-indirect and triple-indirect.
                    127: A single-indirect block contains
                    128: a list of some of the block numbers claimed by an inode.
                    129: Each of the 128 indirect block entries is a data-block number.
                    130: A double-indirect block contains a list of single-indirect block numbers.
                    131: A triple-indirect block contains a list of double-indirect block numbers.
                    132: |p
                    133: Indirect blocks are written to the file system
                    134: whenever they have been modified and released|footnote(More precisely,
                    135: they are queued for eventual writing.
                    136: Physical I/O is deferred until the buffer is needed by UNIX
                    137: or a |i(sync) command is issued.)
                    138: by the operating system.
                    139: 
                    140: |subsection(Data Blocks)
                    141: 
                    142: A data block may contain file information
                    143: or directory entries.
                    144: Each directory entry consists of a file name
                    145: and an inode number.
                    146: |p
                    147: Data blocks are written to the file system
                    148: whenever they have been modified and released by the operating system.
                    149: 
                    150: |subsection(First Free List Block)
                    151: 
                    152: The super-block contains the first free list block.
                    153: The free list blocks
                    154: are a list of all blocks that are not allocated to the super-block,
                    155: inodes, indirect blocks, or data blocks.
                    156: Each free list block contains
                    157: a count of the number of entries in this free list block,
                    158: a pointer to the next free list block,
                    159: and a partial list of free blocks in the file system.
                    160: |p
                    161: Free list blocks are written to the file system
                    162: whenever they have been modified and released by the operating system.
                    163: 
                    164: |section(Corruption Of The File System)
                    165: 
                    166: A file system can become corrupted in a variety of ways.
                    167: The most common problems
                    168: are improper shutdown procedures and hardware failures.
                    169: 
                    170: |subsection(Improper System Shutdown and Startup)
                    171: 
                    172: File systems may become corrupted when proper shutdown procedures
                    173: are not observed, e.g.,
                    174: forgetting to |i(sync) the system before halting the |s(CPU),
                    175: physically write-protecting a mounted file system,
                    176: or taking a mounted file system off-line.
                    177: |p
                    178: File systems may become further corrupted if proper startup procedures
                    179: are not observed, e.g.,
                    180: not checking a file system for inconsistencies,
                    181: and not repairing inconsistencies.
                    182: Allowing a corrupted file system to be used (and, thus, to be modified further)
                    183: can be disastrous.
                    184: 
                    185: |subsection(Hardware Failure)
                    186: 
                    187: Any piece of hardware can fail at any time.
                    188: Failures can be as subtle as a bad block on a disk pack,
                    189: or as obvious as a non-functional disk-controller.
                    190: 
                    191: |section(Detection And Correction Of Corruption)
                    192: 
                    193: A quiescent|footnote(I.e., unmounted and not being written on.)
                    194: file system may be checked for structural integrity
                    195: by performing consistency checks on the redundant data
                    196: intrinsic to a file system.
                    197: The redundant data is either read from the file system
                    198: or computed from other known values.
                    199: A quiescent state is important during the checking of a file system
                    200: because of the multi-pass nature of the |i(fsck) program.
                    201: |p
                    202: When an inconsistency is discovered
                    203: |i(fsck) reports the inconsistency
                    204: and requests the operator to choose a corrective action.
                    205: |p
                    206: Discussed in this section are how to discover inconsistencies
                    207: and possible corrective actions
                    208: for the super-block, the inodes, the indirect blocks,
                    209: the data blocks containing directory entries, and the free list blocks.
                    210: These corrective actions
                    211: can be performed interactively by the |i(fsck) command
                    212: under control of the operator.
                    213: 
                    214: |subsection(Super-Block)
                    215: 
                    216: The most common corrupted item is the super-block.
                    217: The super-block is prone to corruption
                    218: because every change to the file system's blocks or inodes
                    219: modifies the super-block.
                    220: |p
                    221: The super-block and its associated parts
                    222: are most often corrupted when the computer is halted
                    223: and the last command involving output to the file system
                    224: was not a |i(sync) command.
                    225: |p
                    226: The super-block can be checked for inconsistencies involving file system size,
                    227: i-list size,
                    228: free block list,
                    229: free block count,
                    230: and the free inode count.
                    231: 
                    232: |subsubsection(File system size and i-list size.)
                    233: |save(File system size and i-list size.)
                    234: 
                    235: The file system size must be larger than the number of blocks
                    236: used by the super-block
                    237: and the number of blocks used by the list of inodes.
                    238: The number of inodes must be less than 65,535.
                    239: The file system size and i-list size
                    240: are critical pieces of information to the |i(fsck) program.
                    241: While there is no way to check these sizes,
                    242: |i(fsck) can check that they are within reasonable bounds.
                    243: All other checks of the file system
                    244: depend on the correctness of these sizes.
                    245: 
                    246: |subsubsection(Free block list.)
                    247: |save(Free block list.)
                    248: 
                    249: The free block list starts in the super-block
                    250: and continues through the free list blocks of the file system.
                    251: Each free list block can be checked
                    252: for list count out of range,
                    253: for block numbers out of range,
                    254: and for blocks already allocated within the file system.
                    255: A check is made to see that all the blocks in the file system were found.
                    256: |p
                    257: The first free block list is in the super-block.
                    258: |i(Fsck) checks the list count
                    259: for a value of less than zero or greater than fifty.
                    260: It also checks each block number
                    261: for a value of less than the first data block in the file system
                    262: or greater than the last block in the file system.
                    263: Then it compares each block number to a list of already allocated blocks.
                    264: If the free list block pointer is non-zero,
                    265: the next free list block is read in and the process is repeated.
                    266: |p
                    267: When all the blocks have been accounted for,
                    268: a check is made to see if the number of blocks used by the free block list
                    269: plus the number of blocks claimed by the inodes
                    270: equals the total number of blocks in the file system.
                    271: |p
                    272: If anything is wrong with the free block list,
                    273: then |i(fsck) may rebuild it,
                    274: excluding all blocks in the list of allocated blocks.
                    275: 
                    276: |subsubsection(Free block count.)
                    277: |save(Free block count.)
                    278: 
                    279: The super-block contains a count of the total number of free blocks
                    280: within the file system.
                    281: |i(Fsck) compares this count to the number of free blocks it found
                    282: within the file system.
                    283: If they don't agree,
                    284: then |i(fsck) may replace the count in the super-block
                    285: by the real free block count.
                    286: 
                    287: |subsubsection(Free inode count.)
                    288: |save(Free inode count.)
                    289: 
                    290: The super-block contains a count of the total number of free inodes
                    291: within the file system.
                    292: |i(Fsck) compares this count to the number of free inodes it found
                    293: within the file system.
                    294: If they don't agree,
                    295: then |i(fsck)
                    296: may replace the count in the super-block by the real free inode count.
                    297: 
                    298: |subsection(Inodes)
                    299: 
                    300: An individual inode is not as likely to be corrupted as the super-block.
                    301: However,
                    302: because of the great number of active inodes,
                    303: corruption in the i-list is almost as likely as corruption
                    304: in the super-block.
                    305: |p
                    306: The list of inodes is checked sequentially starting with inode 1
                    307: (there is no inode 0)
                    308: and going to the last inode in the file system.
                    309: Each inode can be checked for
                    310: inconsistencies involving format and type,
                    311: link count,
                    312: duplicate blocks,
                    313: bad blocks,
                    314: and inode size.
                    315: 
                    316: |subsubsection(Format and type.)
                    317: |save(Format and type.)
                    318: 
                    319: Each inode contains a mode word.
                    320: This mode word describes the type and state of the inode.
                    321: Inodes may be one of four types:
                    322: regular inode, directory inode, special block inode,
                    323: and special character inode.
                    324: If an inode is not one of these types, then the inode has an illegal type.
                    325: Inodes may be found in one of three states:
                    326: unallocated, allocated, and neither unallocated nor allocated.
                    327: This last state suggests an incorrectly formatted inode.
                    328: Incorrect format may result
                    329: if bad data is written into the i-list through,
                    330: for example,
                    331: a hardware failure.
                    332: The only possible corrective action for |i(fsck) is clearing the inode.
                    333: 
                    334: |subsubsection(Link count.)
                    335: |save(Link count.)
                    336: 
                    337: Contained in each inode is a count of the total number of directory entries
                    338: linked to the inode.
                    339: |p
                    340: |i(Fsck) verifies the link count of each inode
                    341: by traversing down the total directory structure,
                    342: starting from the root directory,
                    343: and calculating a real link count for each inode.
                    344: |p
                    345: If the stored link count is non-zero and the real link count is zero,
                    346: it means that no directory entry appears for the inode.
                    347: If the stored and real link counts are non-zero and unequal,
                    348: a directory entry may have been added or removed
                    349: without the inode being updated.
                    350: |p
                    351: If the stored link count is non-zero and the real link count is zero,
                    352: |i(fsck) may link the disconnected file to the |cw(lost+found) directory.
                    353: If the stored and real link counts are non-zero and unequal,
                    354: |i(fsck) may replace the stored link count by the real link count.
                    355: 
                    356: |subsubsection(Duplicate blocks)
                    357: |save(Duplicate blocks)
                    358: 
                    359: Contained in each inode is a list or pointers to lists (indirect blocks)
                    360: of all the blocks claimed by the inode.
                    361: |p
                    362: |i(Fsck) compares each block number claimed by an inode
                    363: to a list of already allocated blocks.
                    364: If a block number is already claimed by another inode,
                    365: the block number is added to a list of duplicate blocks.
                    366: Otherwise,
                    367: the list of allocated blocks is updated to include the block number.
                    368: If there are any duplicate blocks,
                    369: |i(fsck) will pass over part of the i-list a second time
                    370: to find the inode of the duplicated block,
                    371: because without examining the files
                    372: associated with these inodes for correct content,
                    373: there is not enough information available to decide what inode is corrupted
                    374: and should be cleared.
                    375: Usually the inode with the earliest modify time is incorrect
                    376: and should be cleared.
                    377: |p
                    378: This condition can occur
                    379: when a file system contains blocks claimed by both the free block list
                    380: and by other parts of the file system.
                    381: |p
                    382: If there is a large number of duplicate blocks in an inode,
                    383: this may be because an indirect block is not being written to the file system.
                    384: |p
                    385: |i(Fsck) will prompt the operator to clear both inodes.
                    386: 
                    387: |subsubsection(Bad blocks)
                    388: |save(Bad blocks)
                    389: 
                    390: Contained in each inode
                    391: is a list or pointer to lists of all the blocks claimed by the inode.
                    392: |p
                    393: |i(Fsck) checks each block number claimed by an inode
                    394: for a value lower than that of the first data block,
                    395: or greater than the last block in the file system.
                    396: If the block number is outside this range,
                    397: the block number is a bad block number.
                    398: |p
                    399: If there is a large number of bad blocks in an inode,
                    400: this may be because an indirect block is not being written to the file system.
                    401: |p
                    402: |i(Fsck) will prompt the operator to clear both inodes.
                    403: 
                    404: |subsubsection(Size checks.)
                    405: |save(Size checks.)
                    406: 
                    407: Each inode contains a thirty-two bit (four-byte) size field.
                    408: This size shows the number of characters in the file
                    409: associated with the inode.
                    410: This size can be checked for inconsistencies,
                    411: e.g.,
                    412: directory sizes that are not a multiple of sixteen characters,
                    413: or a mismatch between the number of blocks shown by the inode size
                    414: and the number really in use.
                    415: |p
                    416: A directory inode within the |s(UNIX) file system
                    417: has the directory bit set in the inode mode word.
                    418: The directory size must be a multiple of sixteen
                    419: because a directory entry contains sixteen bytes
                    420: (two bytes for the inode number
                    421: and fourteen bytes for the file or directory name).
                    422: |p
                    423: |i(Fsck) will warn of directory misalignment.
                    424: This is only a warning
                    425: because not enough information can be gathered to correct the misalignment.
                    426: |p
                    427: A rough check of the consistency of the size field of an inode
                    428: can be performed by using it to compute
                    429: the number of blocks that should be associated with the inode
                    430: and comparing it to the real number of blocks claimed by the inode.
                    431: |p
                    432: |i(Fsck) calculates the number of blocks that should be in an inode
                    433: by dividing the number of characters in an inode
                    434: by the number of characters per block (512)
                    435: and rounding up.
                    436: |i(Fsck) adds one block for each indirect block associated with the inode.
                    437: If the real number of blocks does not match the computed number of blocks,
                    438: |i(fsck) will warn of a possible file-size error.
                    439: This is only a warning
                    440: because |s(UNIX) does not fill in blocks in files created in random order.
                    441: 
                    442: |subsection(Indirect Blocks)
                    443: 
                    444: Indirect blocks are owned by an inode.
                    445: Therefore,
                    446: inconsistencies in indirect blocks directly affect the inode that owns them.
                    447: |p
                    448: Inconsistencies that can be checked
                    449: are blocks already claimed by another inode
                    450: and block numbers outside the range of the file system.
                    451: |p
                    452: For a discussion of detection and correction
                    453: of the inconsistencies associated with indirect blocks,
                    454: apply iteratively Sections |remember(Duplicate blocks)
                    455: and |remember(Bad blocks) to each level of indirect blocks.
                    456: 
                    457: |subsection(Data Blocks)
                    458: |save(Data Blocks)
                    459: 
                    460: The two types of data blocks are
                    461: plain data blocks and directory data blocks.
                    462: Plain data blocks contain the information stored in a file.
                    463: Directory data blocks contain directory entries.
                    464: |i(Fsck) does not attempt to check
                    465: the validity of the contents of a plain data block.
                    466: |p
                    467: Each directory data block can be checked for inconsistencies involving
                    468: directory inode numbers pointing to unallocated inodes,
                    469: directory inode numbers greater than the number of inodes in the file system,
                    470: incorrect directory inode numbers for ``|b(.)'' and ``|b(..)'',
                    471: and directories that are disconnected from the file system.
                    472: |p
                    473: If a directory entry inode number points to an unallocated inode,
                    474: then |i(fsck) may remove that directory entry.
                    475: This condition occurs when
                    476: the data blocks containing the directory entries
                    477: were modified and written to the file system
                    478: but the corresponding inode was not.
                    479: |p
                    480: If a directory entry inode number is pointing beyond the end of the i-list,
                    481: |i(fsck) may remove that directory entry.
                    482: This condition occurs if bad data is written into a directory data block.
                    483: |p
                    484: The directory inode number entry for ``|b(.)''
                    485: should be the first entry in the directory data block.
                    486: Its value should be equal to the inode number for the directory data block.
                    487: |p
                    488: The directory inode number entry for ``|b(..)''
                    489: should be the second entry in the directory data block.
                    490: Its value should be equal to
                    491: the inode number for the parent of the directory entry
                    492: (or the inode number of the directory data block
                    493: if the directory is the root directory).
                    494: |p
                    495: If the directory inode numbers are incorrect,
                    496: |i(fsck) may replace them by the correct values.
                    497: |p
                    498: |i(Fsck) checks the general connectivity of the file system.
                    499: If directories are found not to be linked into the file system,
                    500: |i(fsck) will link the directory back into the file system
                    501: in the |cw(lost+found) directory.
                    502: This condition occurs when inodes are written to the file system
                    503: but the corresponding directory data blocks are not.
                    504: 
                    505: |subsection(Free List Blocks)
                    506: 
                    507: Free list blocks are owned by the super-block.
                    508: Therefore,
                    509: inconsistencies in free list blocks directly affect the super-block.
                    510: |p
                    511: Inconsistencies that can be checked are
                    512: list count out of range,
                    513: block numbers out of range,
                    514: and blocks already associated with the file system.
                    515: |p
                    516: For a discussion of detection and correction of the inconsistencies
                    517: associated with free list blocks, see Section |remember(Free block list.).
                    518: 
                    519: |section(Acknowledgements)
                    520: 
                    521: I would like to thank Larry A. Wehr
                    522: for advice that led to the first version of |i(fsck),
                    523: and Rick B. Brandt for adapting |i(fsck) to |s(UNIX).
                    524: 
                    525: |reference_placement
                    526: 
                    527: |style(one_column)
                    528: .ne 1i
                    529: |appendix(FSCK ERROR CONDITIONS)
                    530: 
                    531: |style(two_column)
                    532: 
                    533: |section(Conventions)
                    534: ...........
                    535: 
                    536: |i(Fsck) is a multi-pass file system check program.
                    537: Each file system pass invokes a different |i(Phase) of the |i(fsck) program.
                    538: After the initial setup,
                    539: |i(fsck) performs successive |i(Phases) over each file system,
                    540: checking blocks and sizes,
                    541: path-names,
                    542: connectivity,
                    543: reference counts,
                    544: and the free block list
                    545: (possibly rebuilding it),
                    546: and performs some cleanup.
                    547: |p
                    548: When an inconsistency is detected,
                    549: |i(fsck) reports the error condition to the operator.
                    550: If a response is required,
                    551: |i(fsck) prints a prompt message and waits for a response.
                    552: This appendix explains the meaning of each error condition,
                    553: the possible responses,
                    554: and the related error conditions.
                    555: |p
                    556: The error conditions are organized by the |i(Phase) of the |i(fsck) program
                    557: in which they can occur.
                    558: The error conditions that may occur in more than one Phase
                    559: will be discussed under initialization.
                    560: 
                    561: |section(Initialization)
                    562: 
                    563: Before a file system check can be performed,
                    564: certain tables have to be set up and certain files opened.
                    565: This section concerns itself with the opening of files
                    566: and the initialization of tables.
                    567: It lists error conditions resulting from
                    568: command line options,
                    569: memory requests,
                    570: opening of files,
                    571: status of files,
                    572: file system size checks,
                    573: and creation of the scratch file.
                    574: 
                    575: |unnumbered_subsection{|cw[C option?]}
                    576: 
                    577: |cw(C) is not a legal option to |i(fsck);
                    578: legal options are
                    579: |cw(-y),
                    580: |cw(-n),
                    581: |cw(-s),
                    582: |cw(-S),
                    583: and
                    584: |cw(-t).
                    585: |i(Fsck) stops on this error condition.
                    586: See the |i(fsck)(8) for further detail.
                    587: 
                    588: |unnumbered_subsection{|cw[Bad -t option]}
                    589: 
                    590: The |cw(-t) option is not followed by a file name.
                    591: |i(Fsck) stops on this error condition.
                    592: See the |i(fsck)(8) for further detail.
                    593: 
                    594: |unnumbered_subsection{|cw[Invalid -s argument, defaults assumed]}
                    595: 
                    596: The |cw(-s) option is not suffixed by 3, 4,
                    597: or blocks-per-cylinder:blocks-to-skip.
                    598: |i(Fsck) assumes a default value of 400 blocks-per-cylinder
                    599: and 9 blocks-to-skip.
                    600: See the |i(fsck)(8) for more details.
                    601: 
                    602: |unnumbered_subsection{|cw[Incompatible options: -n and -s]}
                    603: 
                    604: It is not possible to salvage the free block list
                    605: without modifying the file system.
                    606: |i(Fsck) stops on this error condition.
                    607: See the |i(fsck)(8) for further detail.
                    608: 
                    609: |unnumbered_subsection{|cw[Can't get memory]}
                    610: 
                    611: |i(Fsck)'s request for memory for its virtual memory tables failed.
                    612: This should never happen.
                    613: |i(Fsck) stops on this error condition.
                    614: See a guru.
                    615: 
                    616: |unnumbered_subsection{|cw[Can't open checklist file: F]}
                    617: 
                    618: The default file system checklist file |b(F) (usually |cw(/etc/checklist))
                    619: cannot be opened for reading.
                    620: |i(Fsck) stops on this error condition.
                    621: Check access modes of |b(F).
                    622: 
                    623: |unnumbered_subsection{|cw[Can't stat root]}
                    624: 
                    625: |i(Fsck)'s request for statistics about the root directory ``/'' failed.
                    626: This should never happen.
                    627: |i(Fsck) stops on this error condition.
                    628: See a guru.
                    629: 
                    630: |unnumbered_subsection{|cw[Can't stat F]}
                    631: 
                    632: |i(Fsck)'s request for statistics about the file system |b(F) failed.
                    633: It ignores this file system and continues checking the next file system given.
                    634: Check access modes of |b(F).
                    635: 
                    636: |unnumbered_subsection{|cw[F is not a block or character device]}
                    637: 
                    638: You have given |i(fsck) a regular file name by mistake.
                    639: It ignores this file system and continues checking the next file system given.
                    640: Check file type of |b(F).
                    641: 
                    642: |unnumbered_subsection{|cw[Can't open F]}
                    643: 
                    644: The file system |b(F) cannot be opened for reading.
                    645: It ignores this file system and continues checking the next file system given.
                    646: Check access modes of |b(F).
                    647: 
                    648: |unnumbered_subsection{|cw[Size check: fsize X isize Y]}
                    649: 
                    650: More blocks are used for the i-list |b(Y)
                    651: than there are blocks in the file system |b(X),
                    652: or there are more than 65,535 inodes in the file system.
                    653: It ignores this file system and continues checking the next file system given.
                    654: See Section |remember(File system size and i-list size.).
                    655: 
                    656: |unnumbered_subsection{|cw[Can't create F]}
                    657: 
                    658: |i(Fsck)'s request to create a scratch file |b(F) failed.
                    659: It ignores this file system and continues checking the next file system given.
                    660: Check access modes of |b(F).
                    661: 
                    662: |unnumbered_subsection{|cw[CAN NOT SEEK: BLK B (CONTINUE)]}
                    663: 
                    664: |i(Fsck)'s request for moving to a specified block number |b(B)
                    665: in the file system failed.
                    666: This should never happen.
                    667: See a guru.
                    668: |p
                    669: Possible responses to the |s(CONTINUE) prompt are:
                    670: 
                    671: |blank_space(1)
                    672: |begin(text_list)
                    673: 
                    674: |S(|item(YES)) attempt to continue the file system check.
                    675: Often,
                    676: however the problem will persist.
                    677: This error condition will not allow a complete check of the file system.
                    678: A second run of |i(fsck) should be made to re-check this file system.
                    679: If the block was part of the virtual memory buffer cache,
                    680: |i(fsck) will stop with the message ``Fatal I/O error''.
                    681: 
                    682: |S(|item(NO)) stop the program.
                    683: 
                    684: |end(text_list)
                    685: 
                    686: |unnumbered_subsection{|cw[CAN NOT READ: BLK B (CONTINUE)]}
                    687: 
                    688: |i(Fsck)'s request for reading a specified block number |b(B)
                    689: in the file system failed.
                    690: This should never happen.
                    691: See a guru.
                    692: |p
                    693: Possible responses to the |s(CONTINUE) prompt are:
                    694: 
                    695: |blank_space(1)
                    696: |begin(text_list)
                    697: 
                    698: |S(|item(YES)) attempt to continue the file system check.
                    699: Often,
                    700: however,
                    701: the problem will persist.
                    702: This error condition will not allow a complete check of the file system.
                    703: A second run of |i(fsck) should be made to re-check this file system.
                    704: If the block was part of the virtual memory buffer cache,
                    705: |i(fsck) will stop with the message ``Fatal I/O error''.
                    706: 
                    707: |S(|item(NO)) stop the program.
                    708: 
                    709: |end(text_list)
                    710: 
                    711: |unnumbered_subsection{|cw[CAN NOT WRITE: BLK B (CONTINUE)]}
                    712: |i(Fsck)'s request for writing a specified block number |b(B)
                    713: in the file system failed.
                    714: The disk is write-protected.
                    715: See a guru.
                    716: |p
                    717: Possible responses to the |s(CONTINUE) prompt are:
                    718: 
                    719: |blank_space(1)
                    720: |begin(text_list)
                    721: 
                    722: |S(|item(YES)) attempt to continue the file system check.
                    723: Often,
                    724: however,
                    725: the problem will persist.
                    726: This error condition will not allow a complete check of the file system.
                    727: A second run of |i(fsck) should be made to re-check this file system.
                    728: If the block was part of the virtual memory buffer cache,
                    729: |i(fsck) will stop with the message ``Fatal I/O error''.
                    730: 
                    731: |S(|item(NO)) stop the program.
                    732: 
                    733: |end(text_list)
                    734: 
                    735: |section(Phase 1: Check blocks and sizes)
                    736: 
                    737: This phase concerns itself with the i-list.
                    738: This section lists error conditions resulting from
                    739: checking inode types,
                    740: setting up the zero-link-count table,
                    741: examining inode block numbers for bad or duplicate blocks,
                    742: checking inode size,
                    743: and checking inode format.
                    744: 
                    745: |unnumbered_subsection{|cw[UNKNOWN FILE TYPE I=I (CLEAR)]}
                    746: 
                    747: The mode word of the inode |b(I) shows that the inode is not a
                    748: special character inode,
                    749: regular inode,
                    750: or directory inode.
                    751: See Section |remember(Format and type.).
                    752: |p
                    753: Possible responses to the |s(CLEAR) prompt are:
                    754: 
                    755: |blank_space(1)
                    756: |begin(text_list)
                    757: 
                    758: |S(|item(YES)) de-allocate inode |b(I) by zeroing its contents.
                    759: This will always invoke the |s(UNALLOCATED) error condition in Phase 2
                    760: for each directory entry pointing to this inode.
                    761: 
                    762: |S(|item(NO)) ignore this error condition.
                    763: 
                    764: |end(text_list)
                    765: 
                    766: |unnumbered_subsection{|cw[LINK COUNT TABLE OVERFLOW (CONTINUE)]}
                    767: 
                    768: An internal table for |i(fsck)
                    769: containing allocated inodes with a link count of zero has no more room.
                    770: Recompile |i(fsck) with a larger value of |s(MAXLNCNT).
                    771: |p
                    772: Possible responses
                    773: to the |s(CONTINUE) prompt are:
                    774: 
                    775: |blank_space(1)
                    776: |begin(text_list)
                    777: 
                    778: |S(|item(YES)) continue with the program.
                    779: This error condition will not allow a complete check of the file system.
                    780: A second run of |i(fsck) should be made to re-check this file system.
                    781: If another allocated inode with a zero link count is found,
                    782: this error condition is repeated.
                    783: 
                    784: |S(|item(NO)) stop the program.
                    785: 
                    786: |end(text_list)
                    787: 
                    788: |unnumbered_subsection{|cw[B BAD I=I]}
                    789: 
                    790: Inode |b(I) contains block number |b(B) with a number lower than
                    791: the number of the first data block in the file system
                    792: or greater than the number of the last block in the file system.
                    793: This error condition
                    794: may invoke the |s(EXCESSIVE) |s(BAD) |s(BLKS) error condition in Phase 1
                    795: if inode |b(I) has too many block numbers outside the file system range.
                    796: This error condition will always invoke the |s(BAD)/|s(DUP) error condition
                    797: in Phase 2 and Phase 4.
                    798: See Section |remember(Bad blocks).
                    799: 
                    800: |unnumbered_subsection{|cw[EXCESSIVE BAD BLKS I=I (CONTINUE)]}
                    801: 
                    802: There is more than a tolerable number (usually 10) of blocks
                    803: with a number lower than the number of the first data block in the file system
                    804: or greater than the number of last block in the file system
                    805: associated with inode |b(I).
                    806: See Section |remember(Bad blocks).
                    807: |p
                    808: Possible responses to the |s(CONTINUE) prompt are:
                    809: 
                    810: |blank_space(1)
                    811: |begin(text_list)
                    812: 
                    813: |S(|item(YES)) ignore the rest of the blocks in this inode
                    814: and continue checking with the next inode in the file system.
                    815: This error condition will not allow a complete check of the file system.
                    816: A second run of |i(fsck) should be made to re-check this file system.
                    817: 
                    818: |S(|item(NO)) stop the program.
                    819: 
                    820: |end(text_list)
                    821: 
                    822: |unnumbered_subsection{|cw[B DUP I=I]}
                    823: 
                    824: Inode |b(I) contains block number |b(B),
                    825: which is already claimed by another inode.
                    826: This error condition
                    827: may invoke the |s(EXCESSIVE) |s(DUP) |s(BLKS) error condition in Phase 1
                    828: if inode |b(I) has too many block numbers claimed by other inodes.
                    829: This error condition will always invoke Phase 1b
                    830: and the |s(BAD)/|s(DUP) error condition in Phase 2 and Phase 4.
                    831: See Section |remember(Duplicate blocks).
                    832: 
                    833: |unnumbered_subsection{|cw[EXCESSIVE DUP BLKS I=I (CONTINUE)]}
                    834: 
                    835: There is more than a tolerable number (usually 10) of blocks
                    836: claimed by other inodes.
                    837: See Section |remember(Duplicate blocks).
                    838: |p
                    839: Possible responses to the |s(CONTINUE) prompt are:
                    840: 
                    841: |blank_space(1)
                    842: |begin(text_list)
                    843: 
                    844: |S(|item(YES)) ignore the rest of the blocks in this inode
                    845: and continue checking with the next inode in the file system.
                    846: This error condition will not allow a complete check of the file system.
                    847: A second run of |i(fsck) should be made to re-check this file system.
                    848: 
                    849: |S(|item(NO)) stop the program.
                    850: 
                    851: |end(text_list)
                    852: 
                    853: |unnumbered_subsection{|cw[DUP TABLE OVERFLOW (CONTINUE)]}
                    854: 
                    855: An internal table in |i(fsck)
                    856: containing duplicate block numbers has no more room.
                    857: Recompile |i(fsck) with a larger value of |s(DUPTBLSIZE).
                    858: |p
                    859: Possible responses to the |s(CONTINUE) prompt are:
                    860: 
                    861: |blank_space(1)
                    862: |begin(text_list)
                    863: 
                    864: |S(|item(YES)) continue with the program.
                    865: This error condition will not allow a complete check of the file system.
                    866: A second run of |i(fsck) should be made to re-check this file system.
                    867: If another duplicate block is found, this error condition will repeat.
                    868: 
                    869: |S(|item(NO)) stop the program.
                    870: 
                    871: |end(text_list)
                    872: 
                    873: |unnumbered_subsection{|cw[POSSIBLE FILE SIZE ERROR I=I]}
                    874: 
                    875: The inode |b(I) size
                    876: does not match the real number of blocks used by the inode.
                    877: This is only a warning.
                    878: See Section |remember(Size checks.).
                    879: 
                    880: |unnumbered_subsection{|cw[DIRECTORY MISALIGNED I=I]}
                    881: 
                    882: The size of a directory inode
                    883: is not a multiple of the size of a directory entry (usually 16).
                    884: This is only a warning.
                    885: See Section |remember(Size checks.).
                    886: 
                    887: |unnumbered_subsection{|cw[PARTIALLY ALLOCATED INODE I=I (CLEAR)]}
                    888: 
                    889: Inode |b(I) is neither allocated nor unallocated.
                    890: See Section |remember(Format and type.).
                    891: |p
                    892: Possible responses to the |s(CLEAR) prompt are:
                    893: 
                    894: |blank_space(1)
                    895: |begin(text_list)
                    896: 
                    897: |S(|item(YES)) de-allocate inode |b(I) by zeroing its contents.
                    898: 
                    899: |S(|item(NO)) ignore this error condition.
                    900: 
                    901: |end(text_list)
                    902: 
                    903: |section(Phase 1b: Rescan for more dups)
                    904: 
                    905: When a duplicate block is found in Phase 1,
                    906: the file system is rescanned to find the inode
                    907: that previously claimed that block.
                    908: This section describes when the duplicate block is found.
                    909: 
                    910: |unnumbered_subsection{|cw[B DUP I=I]}
                    911: 
                    912: Inode |b(I) contains block number |b(B),
                    913: which is already claimed by another inode.
                    914: This error will always invoke the |s(BAD)/|s(DUP) error condition
                    915: in Phase 2.
                    916: You can determine what inodes have overlapping blocks
                    917: by examining this error condition
                    918: and the |s(DUP) error condition in Phase 1.
                    919: See Section |remember(Duplicate blocks).
                    920: 
                    921: .......
                    922: |section(Phase 2: Check path-names)
                    923: 
                    924: This phase concerns itself with removing directory entries pointing to
                    925: flawed inodes detected in Phase 1 and Phase 1b.
                    926: This section lists error conditions resulting from
                    927: root inode mode and status,
                    928: directory inode pointers in range,
                    929: and directory entries pointing to bad inodes.
                    930: 
                    931: |unnumbered_subsection{|cw[ROOT INODE UNALLOCATED. TERMINATING.]}
                    932: 
                    933: The root inode (usually inode number 2) has no allocate mode bits.
                    934: This should never happen.
                    935: The program will stop.
                    936: See Section |remember(Format and type.).
                    937: 
                    938: |unnumbered_subsection{|cw[ROOT INODE NOT DIRECTORY (FIX)]}
                    939: 
                    940: The root inode (usually inode number 2) is not directory inode type.
                    941: See Section |remember(Format and type.).
                    942: |p
                    943: Possible responses to the |s(FIX) prompt are:
                    944: 
                    945: |blank_space(1)
                    946: |begin(text_list)
                    947: 
                    948: |S(|item(YES)) make the root inode's type be a directory.
                    949: If the root inode's data blocks are not directory blocks,
                    950: a large number of error conditions will be produced.
                    951: 
                    952: |S(|item(NO)) stop the program.
                    953: 
                    954: |end(text_list)
                    955: 
                    956: |unnumbered_subsection{|cw[DUPS/BAD IN ROOT INODE (CONTINUE)]}
                    957: 
                    958: Phase 1 or Phase 1b has found duplicate blocks
                    959: or bad blocks in the root inode (usually inode number 2) for the file system.
                    960: See Sections |remember(Duplicate blocks) and |remember(Bad blocks).
                    961: |p
                    962: Possible responses to the |s(CONTINUE) prompt are:
                    963: 
                    964: |blank_space(1)
                    965: |begin(text_list)
                    966: 
                    967: |S(|item(YES)) ignore the |s(DUPS)/|s(BAD) error condition in the root inode and
                    968: attempt to continue the file system check.
                    969: If the root inode is not correct,
                    970: then this action may result in a large number of other error conditions.
                    971: 
                    972: |S(|item(NO)) stop the program.
                    973: 
                    974: |end(text_list)
                    975: 
                    976: |unnumbered_subsection{|cw[I OUT OF RANGE I=I NAME=F (REMOVE)]}
                    977: 
                    978: A directory entry |b(F) has an inode number |b(I)
                    979: that is greater than the end of the i-list.
                    980: See Section |remember(Data Blocks).
                    981: |p
                    982: Possible responses to the |s(REMOVE) prompt are:
                    983: 
                    984: |blank_space(1)
                    985: |begin(text_list)
                    986: 
                    987: |S(|item(YES)) the directory entry |b(F) will be removed.
                    988: 
                    989: |S(|item(NO)) ignore this error condition.
                    990: 
                    991: |end(text_list)
                    992: 
                    993: |unnumbered_subsection{|cw[UNALLOCATED I=I OWNER=O MODE=M SIZE=S MTIME=T NAME=F (REMOVE)]}
                    994: 
                    995: A directory entry |b(F) has an inode |b(I) without allocate mode bits.
                    996: The owner |b(O), mode |b(M), size |b(S), modify time |b(T),
                    997: and file name |b(F) are printed.
                    998: See Section |remember(Data Blocks).
                    999: |p
                   1000: Possible responses to the |s(REMOVE) prompt are:
                   1001: 
                   1002: |blank_space(1)
                   1003: |begin(text_list)
                   1004: 
                   1005: |S(|item(YES)) the directory entry |b(F) will be removed.
                   1006: 
                   1007: |S(|item(NO)) ignore this error condition.
                   1008: 
                   1009: |end(text_list)
                   1010: 
                   1011: |unnumbered_subsection{|cw[DUP/BAD I=I OWNER=O MODE=M SIZE=S MTIME=T DIR=F (REMOVE)]}
                   1012: 
                   1013: Phase 1 or Phase 1b has found duplicate blocks or bad blocks
                   1014: associated with directory entry/inode |b(F)/|b(I).
                   1015: The owner |b(O), mode |b(M), size |b(S), modify time |b(T),
                   1016: and directory name |b(F) are printed.
                   1017: See Sections |remember(Duplicate blocks) and |remember(Bad blocks).
                   1018: |p
                   1019: Possible responses to the |s(REMOVE) prompt are:
                   1020: 
                   1021: |blank_space(1)
                   1022: |begin(text_list)
                   1023: 
                   1024: |S(|item(YES)) the directory entry |b(F) will be removed.
                   1025: 
                   1026: |S(|item(NO)) ignore this error condition.
                   1027: 
                   1028: |end(text_list)
                   1029: 
                   1030: |unnumbered_subsection{|cw[DUP/BAD I=I OWNER=O MODE=M SIZE=S MTIME=T FILE=F (REMOVE)]}
                   1031: 
                   1032: Phase 1 or Phase 1b has found duplicate blocks or bad blocks
                   1033: associated with directory entry/inode |b(F)/|b(I).
                   1034: The owner |b(O), mode |b(M), size |b(S), modify time |b(T),
                   1035: and file name |b(F) are printed.
                   1036: See Sections |remember(Duplicate blocks) and |remember(Bad blocks).
                   1037: |p
                   1038: Possible responses to the |s(REMOVE) prompt are:
                   1039: 
                   1040: |blank_space(1)
                   1041: |begin(text_list)
                   1042: 
                   1043: |S(|item(YES)) the directory entry |b(F) will be removed.
                   1044: 
                   1045: |S(|item(NO)) ignore this error condition.
                   1046: 
                   1047: |end(text_list)
                   1048: 
                   1049: |section(Phase 3: Check connectivity)
                   1050: 
                   1051: This phase concerns itself with the directory connectivity seen in Phase 2.
                   1052: This section lists error conditions resulting from
                   1053: unreferenced directories
                   1054: and missing or full |cw(lost+found) directories.
                   1055: 
                   1056: |unnumbered_subsection{|cw[UNREF DIR I=I OWNER=O MODE=M SIZE=S MTIME=T (RECONNECT)]}
                   1057: 
                   1058: The directory inode |b(I)
                   1059: was not connected to a directory entry when the file system was traversed.
                   1060: The owner |b(O), mode |b(M), size |b(S),
                   1061: and modify time |b(T) of directory inode |b(I) are printed.
                   1062: See Sections |remember(Data Blocks) and |remember(Link count.).
                   1063: |p
                   1064: Possible responses to the |s(RECONNECT) prompt are:
                   1065: 
                   1066: |blank_space(1)
                   1067: |begin(text_list)
                   1068: 
                   1069: |S(|item(YES)) reconnect directory inode |b(I) to the file system
                   1070: in the directory for lost files (usually |cw(lost+found)).
                   1071: This action may invoke the |cw(lost+found) error condition in Phase 3
                   1072: if there are problems connecting directory inode |b(I) to |cw(lost+found).
                   1073: If the link is successful,
                   1074: this action may also invoke the |s(CONNECTED) error condition in Phase 3.
                   1075: 
                   1076: |S(|item(NO)) ignore this error condition.
                   1077: The |s(UNREF) error condition in Phase 4 will always occur as a result.
                   1078: 
                   1079: |end(text_list)
                   1080: 
                   1081: |unnumbered_subsection{|cw[SORRY. NO lost+found DIRECTORY]}
                   1082: 
                   1083: There is no |cw(lost+found) directory in the root directory of the file system;
                   1084: |i(fsck) ignores the request to link a directory in |cw(lost+found).
                   1085: The |s(UNREF) error condition in Phase 4 will always occur as a result.
                   1086: Check access modes of |cw(lost+found).
                   1087: See |i(fsck)(1M) manual entry for further detail.
                   1088: 
                   1089: |unnumbered_subsection{|cw[SORRY. NO SPACE IN lost+found DIRECTORY]}
                   1090: 
                   1091: There is no space to add another entry to the |cw(lost+found) directory
                   1092: in the root directory of the file system;
                   1093: |i(fsck) ignores the request to link a directory in |cw(lost+found).
                   1094: The |s(UNREF) error condition in Phase 4 will always occur as a result.
                   1095: Clean out unnecessary entries in |cw(lost+found)
                   1096: or make |cw(lost+found) larger.
                   1097: See |i(fsck)(1M) manual entry for further detail.
                   1098: 
                   1099: |unnumbered_subsection{|cw[DIR I=I1 CONNECTED. PARENT WAS I=I2]}
                   1100: 
                   1101: This is an advisory message showing that a directory inode |b(I1)
                   1102: was successfully connected to the |cw(lost+found) directory.
                   1103: The parent inode |b(I2) of the directory inode |b(I1)
                   1104: is replaced by the inode number of the |cw(lost+found) directory.
                   1105: See Sections |remember(Data Blocks) and |remember(Link count.).
                   1106: 
                   1107: |section(Phase 4: Check reference counts)
                   1108: 
                   1109: This phase concerns itself with the link count information
                   1110: seen in Phase 2 and Phase 3.
                   1111: This section lists error conditions resulting from
                   1112: unreferenced files,
                   1113: missing or full |cw(lost+found) directory,
                   1114: incorrect link counts for files, directories, or special files,
                   1115: unreferenced files and directories,
                   1116: bad and duplicate blocks in files and directories,
                   1117: and incorrect total free inode counts.
                   1118: 
                   1119: |unnumbered_subsection{|cw[UNREF FILE I=I OWNER=O MODE=M SIZE=S MTIME=T (RECONNECT)]}
                   1120: 
                   1121: Inode |b(I)
                   1122: was not connected to a directory entry when the file system was traversed.
                   1123: The owner |b(O), mode |b(M), size |b(S),
                   1124: and modify time |b(T) of inode |b(I) are printed.
                   1125: See Section |remember(Link count.).
                   1126: |p
                   1127: Possible responses to the |s(RECONNECT) prompt are:
                   1128: 
                   1129: |blank_space(1)
                   1130: |begin(text_list)
                   1131: 
                   1132: |S(|item(YES)) reconnect inode |b(I) to the file system
                   1133: in the directory for lost files (usually |cw(lost+found)).
                   1134: This action may invoke the |cw(lost+found) error condition in Phase 4
                   1135: if there are problems connecting inode |b(I) to |cw(lost+found).
                   1136: 
                   1137: |S(|item(NO)) ignore this error condition.
                   1138: This will always invoke the |s(CLEAR) error condition in Phase 4.
                   1139: 
                   1140: |end(text_list)
                   1141: 
                   1142: |unnumbered_subsection{|cw[SORRY. NO lost+found DIRECTORY]}
                   1143: 
                   1144: There is no |cw(lost+found) directory in the root directory of the file system;
                   1145: |i(fsck) ignores the request to link a file in |cw(lost+found).
                   1146: This will always invoke the |s(CLEAR) error condition in Phase 4.
                   1147: Check access modes of |cw(lost+found).
                   1148: 
                   1149: |unnumbered_subsection{|cw[SORRY. NO SPACE IN lost+found DIRECTORY]}
                   1150: 
                   1151: There is no space to add another entry to the |cw(lost+found) directory
                   1152: in the root directory of the file system;
                   1153: |i(fsck) ignores the request to link a file in |cw(lost+found).
                   1154: This will always invoke the |s(CLEAR) error condition in Phase 4.
                   1155: Check size and contents of |cw(lost+found).
                   1156: 
                   1157: |unnumbered_subsection{|cw[(CLEAR)]}
                   1158: 
                   1159: The inode mentioned in the immediately previous error condition
                   1160: cannot be reconnected.
                   1161: See Section |remember(Link count.).
                   1162: |p
                   1163: Possible responses to the |s(CLEAR) prompt are:
                   1164: 
                   1165: |blank_space(1)
                   1166: |begin(text_list)
                   1167: 
                   1168: |S(|item(YES)) de-allocate the inode
                   1169: mentioned in the preceding error condition by zeroing its contents.
                   1170: 
                   1171: |S(|item(NO)) ignore this error condition.
                   1172: 
                   1173: |end(text_list)
                   1174: 
                   1175: |unnumbered_subsection{|cw[LINK COUNT FILE I=I OWNER=O MODE=M SIZE=S MTIME=T COUNT=X SHOULD BE Y (ADJUST)]}
                   1176: 
                   1177: The link count for inode |b(I), which is a file, is |b(X) but should be |b(Y).
                   1178: The owner |b(O), mode |b(M), size |b(S), and modify time |b(T) are printed.
                   1179: See Section |remember(Link count.).
                   1180: |p
                   1181: Possible responses to the |s(ADJUST) prompt are:
                   1182: 
                   1183: |blank_space(1)
                   1184: |begin(text_list)
                   1185: 
                   1186: |S(|item(YES)) replace the link count of file inode |b(I) with |b(Y).
                   1187: 
                   1188: |S(|item(NO)) ignore this error condition.
                   1189: 
                   1190: |end(text_list)
                   1191: 
                   1192: |unnumbered_subsection{|cw[LINK COUNT DIR I=I OWNER=O MODE=M SIZE=S MTIME=T COUNT=X SHOULD BE Y (ADJUST)]}
                   1193: 
                   1194: The link count for inode |b(I),
                   1195: which is a directory, is |b(X) but should be |b(Y).
                   1196: The owner |b(O), mode |b(M), size |b(S),
                   1197: and modify time |b(T) of directory inode |b(I) are printed.
                   1198: See Section |remember(Link count.).
                   1199: |p
                   1200: Possible responses to the |s(ADJUST) prompt are:
                   1201: 
                   1202: |blank_space(1)
                   1203: |begin(text_list)
                   1204: 
                   1205: |S(|item(YES)) replace the link count of directory inode |b(I) with |b(Y).
                   1206: 
                   1207: |S(|item(NO)) ignore this error condition.
                   1208: 
                   1209: |end(text_list)
                   1210: 
                   1211: |unnumbered_subsection{|cw[LINK COUNT F I=I OWNER=O MODE=M SIZE=S MTIME=T COUNT=X SHOULD BE Y (ADJUST)]}
                   1212: 
                   1213: The link count for inode |b(I) is |b(X) but should be |b(Y).
                   1214: The name |b(F), owner |b(O), mode |b(M), size |b(S),
                   1215: and modify time |b(T) are printed.
                   1216: See Section |remember(Link count.).
                   1217: |p
                   1218: Possible responses to the |s(ADJUST) prompt are:
                   1219: 
                   1220: |blank_space(1)
                   1221: |begin(text_list)
                   1222: 
                   1223: |S(|item(YES)) replace the link count of inode |b(I) with |b(Y).
                   1224: 
                   1225: |S(|item(NO)) ignore this error condition.
                   1226: 
                   1227: |end(text_list)
                   1228: 
                   1229: |unnumbered_subsection{|cw[UNREF FILE I=I OWNER=O MODE=M SIZE=S MTIME=T (CLEAR)]}
                   1230: 
                   1231: Inode |b(I), which is a file,
                   1232: was not connected to a directory entry when the file system was traversed.
                   1233: The owner |b(O), mode |b(M), size |b(S),
                   1234: and modify time |b(T) of inode |b(I) are printed.
                   1235: See Sections |remember(Link count.) and |remember(Data Blocks).
                   1236: |p
                   1237: Possible responses to the |s(CLEAR) prompt are:
                   1238: 
                   1239: |blank_space(1)
                   1240: |begin(text_list)
                   1241: 
                   1242: |S(|item(YES)) de-allocate inode |b(I) by zeroing its contents.
                   1243: 
                   1244: |S(|item(NO)) ignore this error condition.
                   1245: 
                   1246: |end(text_list)
                   1247: 
                   1248: |unnumbered_subsection{|cw[UNREF DIR I=I OWNER=O MODE=M SIZE=S MTIME=T (CLEAR)]}
                   1249: 
                   1250: Inode |b(I), which is a directory,
                   1251: was not connected to a directory entry when the file system was traversed.
                   1252: The owner |b(O), mode |b(M), size |b(S),
                   1253: and modify time |b(T) of inode |b(I) are printed.
                   1254: See Sections |remember(Link count.) and |remember(Data Blocks).
                   1255: |p
                   1256: Possible responses to the |s(CLEAR) prompt are:
                   1257: 
                   1258: |blank_space(1)
                   1259: |begin(text_list)
                   1260: 
                   1261: |S(|item(YES)) de-allocate inode |b(I) by zeroing its contents.
                   1262: 
                   1263: |S(|item(NO)) ignore this error condition.
                   1264: 
                   1265: |end(text_list)
                   1266: 
                   1267: |unnumbered_subsection{|cw[BAD/DUP FILE I=I OWNER=O MODE=M SIZE=S MTIME=T (CLEAR)]}
                   1268: 
                   1269: Phase 1 or Phase 1b has found duplicate blocks or bad blocks
                   1270: associated with file inode |b(I).
                   1271: The owner |b(O), mode |b(M), size |b(S),
                   1272: and modify time |b(T) of inode |b(I) are printed.
                   1273: See Sections |remember(Duplicate blocks) and |remember(Bad blocks).
                   1274: |p
                   1275: Possible responses to the |s(CLEAR) prompt are:
                   1276: 
                   1277: |blank_space(1)
                   1278: |begin(text_list)
                   1279: 
                   1280: |S(|item(YES)) de-allocate inode |b(I) by zeroing its contents.
                   1281: 
                   1282: |S(|item(NO)) ignore this error condition.
                   1283: 
                   1284: |end(text_list)
                   1285: 
                   1286: |unnumbered_subsection{|cw[BAD/DUP DIR I=I OWNER=O MODE=M SIZE=S MTIME=T (CLEAR)]}
                   1287: 
                   1288: Phase 1 or Phase 1b has found duplicate blocks or bad blocks
                   1289: associated with directory inode |b(I).
                   1290: The owner |b(O), mode |b(M), size |b(S),
                   1291: and modify time |b(T) of inode |b(I) are printed.
                   1292: See Sections |remember(Duplicate blocks) and |remember(Bad blocks).
                   1293: |p
                   1294: Possible responses to the |s(CLEAR) prompt are:
                   1295: 
                   1296: |blank_space(1)
                   1297: |begin(text_list)
                   1298: 
                   1299: |S(|item(YES)) de-allocate inode |b(I) by zeroing its contents.
                   1300: 
                   1301: |S(|item(NO)) ignore this error condition.
                   1302: 
                   1303: |end(text_list)
                   1304: 
                   1305: |unnumbered_subsection{|cw[FREE INODE COUNT WRONG IN SUPERBLK (FIX)]}
                   1306: 
                   1307: The real count of the free inodes
                   1308: does not match the count in the super-block of the file system.
                   1309: See Section |remember(Free inode count.).
                   1310: |p
                   1311: Possible responses to the |s(FIX) prompt are:
                   1312: 
                   1313: |blank_space(1)
                   1314: |begin(text_list)
                   1315: 
                   1316: |S(|item(YES)) replace the count in the super-block by the real count.
                   1317: 
                   1318: |S(|item(NO)) ignore this error condition.
                   1319: 
                   1320: |end(text_list)
                   1321: 
                   1322: |section(Phase 5: Check free list)
                   1323: 
                   1324: This phase concerns itself with the free block list.
                   1325: This section lists error conditions resulting from
                   1326: bad blocks in the free block list,
                   1327: bad free blocks count,
                   1328: duplicate blocks in the free block list,
                   1329: unused blocks from the file system not in the free block list,
                   1330: and an incorrect total free block count.
                   1331: 
                   1332: |unnumbered_subsection{|cw[EXCESSIVE BAD BLKS IN FREE LIST (CONTINUE)]}
                   1333: 
                   1334: The free block list contains more than a tolerable number (usually 10)
                   1335: of blocks with a value less than the first data block in the file system
                   1336: or greater than the last block in the file system.
                   1337: See Sections |remember(Free block list.) and |remember(Bad blocks).
                   1338: |p
                   1339: Possible responses to the |s(CONTINUE) prompt are:
                   1340: 
                   1341: |blank_space(1)
                   1342: |begin(text_list)
                   1343: 
                   1344: |S(|item(YES)) ignore the rest of the free block list
                   1345: and continue the execution of |i(fsck).
                   1346: This error condition will always invoke
                   1347: the |s(BAD) |s(BLKS) |s(IN) |s(FREE) |s(LIST) error condition in Phase 5.
                   1348: 
                   1349: |S(|item(NO)) stop the program.
                   1350: 
                   1351: |end(text_list)
                   1352: 
                   1353: |unnumbered_subsection{|cw[EXCESSIVE DUP BLKS IN FREE LIST (CONTINUE)]}
                   1354: 
                   1355: The free block list contains more than a tolerable number (usually 10)
                   1356: of blocks claimed by inodes or earlier parts of the free block list.
                   1357: See Sections |remember(Free block list.) and |remember(Duplicate blocks).
                   1358: |p
                   1359: Possible responses to the |s(CONTINUE) prompt are:
                   1360: 
                   1361: |blank_space(1)
                   1362: |begin(text_list)
                   1363: 
                   1364: |S(|item(YES)) ignore the rest of the free block list
                   1365: and continue the execution of |i(fsck).
                   1366: This error condition will always invoke
                   1367: the |s(DUP) |s(BLKS) |s(IN) |s(FREE) |s(LIST) error condition in Phase 5.
                   1368: 
                   1369: |S(|item(NO)) stop the program.
                   1370: 
                   1371: |end(text_list)
                   1372: 
                   1373: |unnumbered_subsection{|cw[BAD FREEBLK COUNT]}
                   1374: 
                   1375: The count of free blocks in a free list block is greater than 50
                   1376: or less than zero.
                   1377: This error condition will always invoke
                   1378: the |s(BAD) |s(FREE) |s(LIST) condition in Phase 5.
                   1379: See Section |remember(Free block list.).
                   1380: 
                   1381: |unnumbered_subsection{|cw[X BAD BLKS IN FREE LIST]}
                   1382: 
                   1383: |b(X) blocks in the free block list
                   1384: have a block number lower than the first data block in the file system
                   1385: or greater than the last block in the file system.
                   1386: This error condition will always invoke
                   1387: the |s(BAD) |s(FREE) |s(LIST) condition in Phase 5.
                   1388: See Sections |remember(Free block list.) and |remember(Bad blocks).
                   1389: 
                   1390: |unnumbered_subsection{|cw[X DUP BLKS IN FREE LIST]}
                   1391: 
                   1392: |b(X) blocks claimed by inodes or earlier parts of the free list block
                   1393: were found in the free block list.
                   1394: This error condition will always invoke
                   1395: the |s(BAD) |s(FREE) |s(LIST) condition in Phase 5.
                   1396: See Sections |remember(Free block list.) and |remember(Duplicate blocks).
                   1397: 
                   1398: |unnumbered_subsection{|cw[X BLK(S) MISSING]}
                   1399: 
                   1400: |b(X) blocks unused by the file system were not found in the free block list.
                   1401: This error condition will always invoke
                   1402: the |s(BAD) |s(FREE) |s(LIST) condition in Phase 5.
                   1403: See Section |remember(Free block list.).
                   1404: 
                   1405: |unnumbered_subsection{|cw[FREE BLK COUNT WRONG IN SUPERBLOCK (FIX)]}
                   1406: 
                   1407: The real count of free blocks
                   1408: does not match the count in the super-block of the file system.
                   1409: See Section |remember(Free block count.).
                   1410: |p
                   1411: Possible responses to the |s(FIX) prompt are:
                   1412: 
                   1413: |blank_space(1)
                   1414: |begin(text_list)
                   1415: 
                   1416: |S(|item(YES)) replace the count in the super-block by the real count.
                   1417: 
                   1418: |S(|item(NO)) ignore this error condition.
                   1419: 
                   1420: |end(text_list)
                   1421: 
                   1422: |unnumbered_subsection{|cw[BAD FREE LIST (SALVAGE)]}
                   1423: 
                   1424: Phase 5 has found
                   1425: bad blocks in the free block list,
                   1426: duplicate blocks in the free block list,
                   1427: or blocks missing from the file system.
                   1428: See Sections |remember(Free block list.), |remember(Duplicate blocks),
                   1429: and |remember(Bad blocks).
                   1430: |p
                   1431: Possible responses to the |s(SALVAGE) prompt are:
                   1432: 
                   1433: |blank_space(1)
                   1434: |begin(text_list)
                   1435: 
                   1436: |S(|item(YES)) replace the current free block list with a new free block list.
                   1437: The new free block list will be ordered to reduce time
                   1438: spent by the disk waiting to rotate into position.
                   1439: 
                   1440: |S(|item(NO)) ignore this error condition.
                   1441: 
                   1442: |end(text_list)
                   1443: 
                   1444: |section(Phase 6: Salvage free list)
                   1445: 
                   1446: This phase concerns itself with the free block list reconstruction.
                   1447: This section lists error conditions resulting from
                   1448: the blocks-to-skip and blocks-per-cylinder values.
                   1449: 
                   1450: |unnumbered_subsection{|cw[Default free block list spacing assumed]}
                   1451: 
                   1452: This is an advisory message
                   1453: showing that the blocks-to-skip is greater than the blocks-per-cylinder,
                   1454: the blocks-to-skip is less than one,
                   1455: the blocks-per-cylinder is less than one,
                   1456: or the blocks-per-cylinder is greater than 500.
                   1457: The default values of 9 blocks-to-skip and 400 blocks-per-cylinder are used.
                   1458: See the |i(fsck)(1M) manual entry for further detail.
                   1459: 
                   1460: |section(Cleanup)
                   1461: 
                   1462: Once a file system has been checked, a few cleanup functions are performed.
                   1463: This section lists advisory messages about
                   1464: the file system
                   1465: and its modified status.
                   1466: 
                   1467: |unnumbered_subsection{|cw[X files Y blocks Z free]}
                   1468: 
                   1469: This is an advisory message showing that the file system checked
                   1470: contained |b(X) files
                   1471: using |b(Y) blocks
                   1472: leaving |b(Z) blocks free in the file system.
                   1473: 
                   1474: |unnumbered_subsection{|cw[***** BOOT UNIX (NO SYNC!) *****]}
                   1475: 
                   1476: This is an advisory message showing that a mounted file system
                   1477: or the root file system has been modified by |i(fsck).
                   1478: If |s(UNIX) is not rebooted immediately,
                   1479: the work done by |i(fsck)
                   1480: may be undone by the in-core copies of tables kept by |s(UNIX).
                   1481: 
                   1482: |unnumbered_subsection{|cw[***** FILE SYSTEM WAS MODIFIED *****]}
                   1483: 
                   1484: This is an advisory message showing that the current file system
                   1485: was modified by |i(fsck).
                   1486: If this file system is mounted or is the current root file system,
                   1487: |i(fsck) should be halted and |s(UNIX) rebooted.
                   1488: If |s(UNIX) is not rebooted immediately,
                   1489: the work done by |i(fsck)
                   1490: may be undone by the in-core copies of tables kept by |s(UNIX).

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.