1.\" $NetBSD: fsck_ffs.8,v 1.49 2012/03/06 10:30:20 wiz Exp $ 2.\" 3.\" Copyright (c) 1980, 1989, 1991, 1993 4.\" The Regents of the University of California. All rights reserved. 5.\" 6.\" Redistribution and use in source and binary forms, with or without 7.\" modification, are permitted provided that the following conditions 8.\" are met: 9.\" 1. Redistributions of source code must retain the above copyright 10.\" notice, this list of conditions and the following disclaimer. 11.\" 2. Redistributions in binary form must reproduce the above copyright 12.\" notice, this list of conditions and the following disclaimer in the 13.\" documentation and/or other materials provided with the distribution. 14.\" 3. Neither the name of the University nor the names of its contributors 15.\" may be used to endorse or promote products derived from this software 16.\" without specific prior written permission. 17.\" 18.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 19.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 20.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 21.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 22.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 23.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 24.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 25.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 26.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 27.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 28.\" SUCH DAMAGE. 29.\" 30.\" @(#)fsck.8 8.3 (Berkeley) 11/29/94 31.\" 32.Dd March 6, 2012 33.Dt FSCK_FFS 8 34.Os 35.Sh NAME 36.Nm fsck_ffs 37.Nd Fast File System consistency check and interactive repair 38.Sh SYNOPSIS 39.Nm 40.Op Fl adFfPpqUX 41.Op Fl B Ar byteorder 42.Op Fl b Ar block 43.Op Fl c Ar level 44.Op Fl m Ar mode 45.Op Fl x Ar snap-backup 46.Op Fl y | n 47.Ar filesystem ... 48.Sh DESCRIPTION 49.Nm 50performs interactive file system consistency checks and repair for each of 51the file systems specified on the command line. 52It is normally invoked from 53.Xr fsck 8 . 54.Pp 55The kernel takes care that only a restricted class of innocuous file system 56inconsistencies can happen unless hardware or software failures intervene. 57These are limited to the following: 58.Pp 59.Bl -item -compact -offset indent 60.It 61Unreferenced inodes 62.It 63Link counts in inodes too large 64.It 65Missing blocks in the free map 66.It 67Blocks in the free map also in files 68.It 69Counts in the super-block wrong 70.El 71.Pp 72These are the only inconsistencies that 73.Nm 74in 75.Dq preen 76mode (with the 77.Fl p 78option) will correct; if it encounters other inconsistencies, it exits 79with an abnormal return status. 80For each corrected inconsistency one or more lines will be printed 81identifying the file system on which the correction will take place, 82and the nature of the correction. 83After successfully correcting a file system, 84.Nm 85will print the number of files on that file system, 86the number of used and free blocks, 87and the percentage of fragmentation. 88.Pp 89If sent a 90.Dv QUIT 91signal, 92.Nm 93will finish the file system checks, then exit with an abnormal return status. 94.Pp 95If 96.Nm 97receives a 98.Dv SIGINFO 99signal 100(see the 101.Sy status 102argument for 103.Xr stty 1 ) , 104a line will be written to the standard error output indicating 105the name of the device currently being checked, the current phase 106number and phase-specific progress information. 107.Pp 108Without the 109.Fl p 110option, 111.Nm 112audits and interactively repairs inconsistent conditions for file systems. 113If the file system is inconsistent the operator is prompted for concurrence 114before each correction is attempted. 115It should be noted that some of the corrective actions which are not 116correctable under the 117.Fl p 118option will result in some loss of data. 119The amount and severity of data lost may be determined from the diagnostic 120output. 121The default action for each consistency correction 122is to wait for the operator to respond 123.Li yes 124or 125.Li no . 126If the operator does not have write permission on the file system 127.Nm 128will default to a 129.Fl n 130action. 131.Pp 132.Nm 133has more consistency checks than 134its predecessors 135.Em check , dcheck , fcheck , 136and 137.Em icheck 138combined. 139.Pp 140The following flags are interpreted by 141.Nm . 142.Bl -tag -width XBXbyteorderXX -offset indent 143.It Fl a 144Interpret the filesystem as an Apple UFS filesystem, even if 145there is no Apple UFS volume label present. 146.It Fl B Ar byteorder 147Convert the file system metadata to 148.Ar byteorder 149byte order if needed. 150Valid byte orders are 151.Dq be 152and 153.Dq le . 154If 155.Nm 156is interrupted while swapping the metadata byte order, the file system cannot 157be recovered. 158.Nm 159will print a message in interactive mode if the file system is not in host 160byte order. 161.It Fl b Ar block 162Use the block number 163.Ar block 164as the super block for the file system. 165Block 32 is usually an alternative super block. 166The 167.Fl b 168option of the 169.Xr scan_ffs 8 170utility can also be used to find the offset of other super block backups 171in a file system. 172.It Fl c Ar level 173Convert the FFSv1 file system to the level 174.Ar level . 175Note that the level of a file system can only be raised. 176There are currently five levels defined: 177.Bl -tag -width 3n -offset indent 178.It 0 179The file system is in the old (static table) format. 180.It 1 181The file system is in the new (dynamic table) format. 182Such file systems are made by using the 183.Fl O Ar 0 184option to 185.Xr newfs 8 . 186.It 2 187The file system supports 32-bit UIDs and GIDs, 188short symbolic links are stored in the inode, 189and directories have an added field showing the file type. 190This format was introduced in 191.Bx 4.4 . 192.It 3 193If maxcontig is greater than one, 194build the free segment maps to aid in finding contiguous sets of blocks. 195If maxcontig is equal to one, delete any existing segment maps. 196This was the default before 197.Nx 2.0 . 198.It 4 199Rearrange the super block to the same layout as FFSv2; 200disable the rotational layout tables and per cylinder group 201block totals. 202Such file systems are made by using the 203.Fl O Ar 1 204option to 205.Xr newfs 8 . 206.El 207.Pp 208Note that FFSv2 file systems are always level 4. 209.Pp 210In interactive mode, 211.Nm 212will list the conversion to be made 213and ask whether the conversion should be done. 214If a negative answer is given, 215no further operations are done on the file system. 216In preen mode, 217the conversion is listed and done if 218possible without user interaction. 219Conversion in preen mode is best used when all the file systems 220are being converted at once. 221.Pp 222The output of 223.Xr dumpfs 8 224can be examined to determine the format of the file system 225.Dq ( format 226in the second line) 227and the file system level 228.Dq ( fslevel 229in the sixth line). 230.It Fl d 231Print debugging output. 232.It Fl F 233Indicates that 234.Ar filesystem 235is a file system image, rather than a raw character device. 236.Ar filesystem 237will be accessed 238.Sq as-is , 239and no attempts will be made to read a disklabel. 240.It Fl f 241Force checking of file systems. 242Normally, if a file system is cleanly unmounted, the kernel will set a 243.Dq clean flag 244in the file system super block, and 245.Nm 246will not check the file system. 247This option forces 248.Nm 249to check the file system, regardless of the state of the clean flag. 250.It Fl m Ar mode 251Use the octal value 252.Ar mode 253as the permission bits to use when creating the 254.Pa lost+found 255directory rather than the default 1700. 256In particular, systems that do not wish to have lost files accessible 257by all users on the system should use a more restrictive 258set of permissions such as 700. 259.It Fl n 260Assume a no response to all questions asked by 261.Nm 262except for 263.Ql CONTINUE? , 264which is assumed to be affirmative; 265do not open the file system for writing. 266.It Fl P 267Display a progress meter for the file system check. 268A new meter is displayed for each of the 5 file system check passes, unless 269.Fl p 270is specified, in which case only one meter for overall progress is displayed. 271Progress meters are disabled if the 272.Fl d 273option is specified. 274.It Fl p 275Specify 276.Dq preen 277mode, described above. 278.It Fl q 279Quiet mode, do not output any messages for clean filesystems. 280.It Fl U 281Resolve user ids to usernames. 282.It Fl X 283Similar to 284.Fl x 285but uses a file system internal snapshot on the file system to be checked. 286.It Fl x Ar snap-backup 287Use a snapshot with 288.Ar snap-backup 289as backup to check a read-write mounted filesystem. 290Must be used with 291.Fl n . 292See 293.Xr fss 4 294for more details. 295The point is to check an internally-consistent version of the 296filesystem to find out if it is damaged; on failure one should unmount 297the filesystem and repair it. 298.It Fl y 299Assume a yes response to all questions asked by 300.Nm ; 301this should be used with great caution as this is a free license 302to continue after essentially unlimited trouble has been encountered. 303.El 304.Pp 305Inconsistencies checked are as follows: 306.Bl -enum -offset indent -compact 307.It 308Blocks claimed by more than one inode or the free map. 309.It 310Blocks claimed by an inode outside the range of the file system. 311.It 312Incorrect link counts. 313.It 314Size checks: 315.Bl -item -offset indent -compact 316.It 317Directory size not a multiple of DIRBLKSIZ. 318.It 319Partially truncated file. 320.El 321.It 322Bad inode format. 323.It 324Blocks not accounted for anywhere. 325.It 326Directory checks: 327.Bl -item -offset indent -compact 328.It 329File pointing to unallocated inode. 330.It 331Inode number out of range. 332.It 333Dot or dot-dot not the first two entries of a directory 334or having the wrong inode number. 335.El 336.It 337Super Block checks: 338.Bl -item -offset indent -compact 339.It 340More blocks for inodes than there are in the file system. 341.It 342Bad free block map format. 343.It 344Total free block and/or free inode count incorrect. 345.El 346.El 347.Pp 348Orphaned files and directories (allocated but unreferenced) are, 349with the operator's concurrence, reconnected by 350placing them in the 351.Pa lost+found 352directory. 353The name assigned is the inode number. 354If the 355.Pa lost+found 356directory does not exist, it is created. 357If there is insufficient space its size is increased. 358.Pp 359Because of inconsistencies between the block device and the buffer cache, 360the raw device should always be used. 361.Sh DIAGNOSTICS 362The diagnostics produced by 363.Nm 364are fully enumerated and explained in Appendix A of 365.Rs 366.%T "Fsck \- The UNIX File System Check Program" 367.Re 368.Sh SEE ALSO 369.Xr fss 4 , 370.Xr fs 5 , 371.Xr fstab 5 , 372.Xr dumpfs 8 , 373.Xr fsck 8 , 374.Xr fsdb 8 , 375.Xr newfs 8 , 376.Xr reboot 8 , 377.Xr scan_ffs 8 378