The fsck utility audits and interactively repairs inconsistent conditions on file systems. A file system to be checked may be specified by giving the name of the block or character special device or by giving the name of its mount point if a matching entry exists in /etc/vfstab.
The special parameter represents the character special device, for example, /dev/rdsk/c1t0d0s7, on which the file system resides. The character special device, not the block special device should be used. The fsck utility will not work on a block device if the block device is mounted, unless the file system is error-locked.
If no special device is specified, all ufs file systems specified in the vfstab with a fsckdev entry will be checked. If the -p (``preen'') option is specified, ufs file systems with an fsckpass number greater than 1 are checked in parallel. See fsck(1M).
In the case of correcting serious inconsistencies, by default, fsck asks for confirmation before making a repair and waits for the operator to respond either yes or no. If the operator does not have write permission on the file system, fsck will default to a -n (no corrections) action. See fsck(1M).
Repairing some file system inconsistencies can result in loss of data. The amount and severity of data loss can be determined from the diagnostic output.
The fsck utility automatically corrects innocuous inconsistencies such as unreferenced inodes, too-large link counts in inodes, missing blocks in the free list, blocks appearing in the free list and also in files, or incorrect counts in the super block. It displays a message for each inconsistency corrected that identifies the nature of the correction on the file system which took place. After successfully correcting a file system, fsck prints the number of files on that file system, the number of used and free blocks, and the percentage of fragmentation.
Inconsistencies checked are as follows:
Blocks claimed by more than one inode or the free list.
Blocks claimed by an inode or the free list outside the range of the file system.
Incorrect link counts.
Incorrect directory sizes.
Bad inode format.
Blocks not accounted for anywhere.
Directory checks, file pointing to unallocated inode, inode number out of range, and absence of `.' and `. .' as the first two entries in each directory.
Super Block checks: more blocks for inodes than there are in the file system.
Bad free block list format.
Total free block and/or free inode count incorrect.
Orphaned files and directories (allocated but unreferenced) are, with the operator's concurrence, reconnected by placing them in the lost+found directory. The name assigned is the inode number. If the lost+found directory does not exist, it is created. If there is insufficient space in the lost+found directory, its size is increased.
An attempt to mount a ufs file system with the -o nolargefiles option will fail if the file system has ever contained a large file (a file whose size is greater than or equal to 2 Gbyte). Invoking fsck resets the file system state if no large files are present in the file system. A successful mount of the file system after invoking fsck indicates the absence of large files in the file system. An unsuccessful mount attempt indicates the presence of at least one large file. See mount_ufs(1M).
The generic-options consist of the following options:
Check but do not repair. This option checks that the file system is suitable for mounting, returning the appropriate exit status. If the file system is ready for mounting, fsck displays a message such as:
ufs fsck: sanity check: /dev/rdsk/c0t3d0s1 okay
Assume a no response to all questions asked by fsck; do not open the file system for writing.
Echo the expanded command line, but do not execute the command. This option may be used to verify and to validate the command line.
Assume a yes response to all questions asked by fsck.
See generic fsck(1M) for the details for specifying special.
Use block n as the super block for the file system. Block 32 is always one of the alternate super blocks. Determine the location of other super blocks by running newfs(1M) with the -Nv options specified.
If the file system is in the old (static table) format, convert it to the new (dynamic table) format. If the file system is in the new format, convert it to the old format provided the old format can support the file system configuration. In interactive mode, fsck will list the direction the conversion is to be made and ask whether the conversion should be done. If a negative answer is given, no further operations are done on the file system. In preen mode, the direction of the conversion is listed and done if possible without user interaction. Conversion in preen mode is best used when all the file systems are being converted at once. The format of a file system can be determined from the first line of output from fstyp(1M). Note: the c option is seldom used and is included only for compatibility with pre-4.1 releases. There is no guarantee that this option will be included in future releases.
Force checking of file systems regardless of the state of their super block clean flag.
Check and fix the file system non-interactively (“preen”). Exit immediately if there is a problem requiring intervention. This option is required to enable parallel file system checking.
Check writable file systems only.
See attributes(5) for descriptions of the following attributes:
The operating system buffers file system data. Running fsck on a mounted file system can cause the operating system's buffers to become out of date with respect to the disk. For this reason, the file system should be unmounted when fsck is used. If this is not possible, care should be taken that the system is quiescent and that it is rebooted immediately after fsck is run. Quite often, however, this will not be sufficient. A panic will probably occur if running fsck on a file system modifies the file system.
It is usually faster to check the character special device than the block special device.
Running fsck on file systems larger than 2 Gb fails if the user chooses to use the block interface to the device:
rather than the raw (character special) device: