|  | .TH xfs_scrub 8 | 
|  | .SH NAME | 
|  | xfs_scrub \- check and repair the contents of a mounted XFS filesystem | 
|  | .SH SYNOPSIS | 
|  | .B xfs_scrub | 
|  | [ | 
|  | .B \-abCemnTvx | 
|  | ] | 
|  | .I mount-point | 
|  | .br | 
|  | .B xfs_scrub \-V | 
|  | .SH DESCRIPTION | 
|  | .B xfs_scrub | 
|  | attempts to check and repair all metadata in a mounted XFS filesystem. | 
|  | .PP | 
|  | .B WARNING! | 
|  | This program is | 
|  | .BR EXPERIMENTAL "," | 
|  | which means that its behavior and interface | 
|  | could change at any time! | 
|  | .PP | 
|  | .B xfs_scrub | 
|  | asks the kernel to scrub all metadata objects in the filesystem. | 
|  | Metadata records are scanned for obviously bad values and then | 
|  | cross-referenced against other metadata. | 
|  | The goal is to establish a reasonable confidence about the consistency | 
|  | of the overall filesystem by examining the consistency of individual | 
|  | metadata records against the other metadata in the filesystem. | 
|  | Damaged metadata can be rebuilt from other metadata if there exists | 
|  | redundant data structures which are intact. | 
|  | .PP | 
|  | Filesystem corruption and optimization opportunities will be logged to | 
|  | the standard error stream. | 
|  | Enabling verbose mode will increase the amount of status information | 
|  | sent to the output. | 
|  | .PP | 
|  | If the kernel scrub reports that metadata needs repairs or optimizations and | 
|  | the user does not pass | 
|  | .B -n | 
|  | on the command line, this program will ask the kernel to make the repairs and | 
|  | to perform the optimizations. | 
|  | See the sections about optimizations and repairs for a list of optimizations | 
|  | and repairs known to this program. | 
|  | The kernel may not support repairing or optimizing the filesystem. | 
|  | If this is the case, the filesystem must be unmounted and | 
|  | .BR xfs_repair (8) | 
|  | run on the filesystem to fix the problems. | 
|  | .SH OPTIONS | 
|  | .TP | 
|  | .BI \-a " errors" | 
|  | Abort if more than this many errors are found on the filesystem. | 
|  | .TP | 
|  | .B \-b | 
|  | Run in background mode. | 
|  | If the option is specified once, only run a single scrubbing thread at a | 
|  | time. | 
|  | If given more than once, an artificial delay of 100us is added to each | 
|  | scrub call to reduce CPU overhead even further. | 
|  | .TP | 
|  | .BI \-C " fd" | 
|  | This option causes xfs_scrub to write progress information to the | 
|  | specified file description so that the progress of the filesystem check | 
|  | can be monitored. | 
|  | If the file description is a tty, a fancy progress bar is rendered. | 
|  | Otherwise, a simple numeric status dump compatible with the | 
|  | .B fsck -C | 
|  | format is output. | 
|  | .TP | 
|  | .B \-e | 
|  | Specifies what happens when errors are detected. | 
|  | If | 
|  | .IR shutdown | 
|  | is given, the filesystem will be taken offline if errors are found. | 
|  | If | 
|  | .IR continue | 
|  | is given, no action is taken if errors are found; this is the default | 
|  | behavior. | 
|  | .TP | 
|  | .B \-k | 
|  | Do not call TRIM on the free space. | 
|  | .TP | 
|  | .BI \-m " file" | 
|  | Search this file for mounted filesystems instead of /etc/mtab. | 
|  | .TP | 
|  | .B \-n | 
|  | Only check filesystem metadata. | 
|  | Do not repair or optimize anything. | 
|  | .TP | 
|  | .BI \-T | 
|  | Print timing and memory usage information for each phase. | 
|  | .TP | 
|  | .B \-v | 
|  | Enable verbose mode, which prints periodic status updates. | 
|  | .TP | 
|  | .B \-V | 
|  | Prints the version number and exits. | 
|  | .TP | 
|  | .B \-x | 
|  | Read all file data extents to look for disk errors. | 
|  | .B xfs_scrub | 
|  | will issue O_DIRECT reads to the block device directly. | 
|  | If the block device is a SCSI disk, it will instead issue READ VERIFY commands | 
|  | directly to the disk. | 
|  | If media errors are found, the error report will include the disk offset, in | 
|  | bytes. | 
|  | If the media errors affect a file, the report will also include the inode | 
|  | number and file offset, in bytes. | 
|  | These actions will confirm that all file data blocks can be read from storage. | 
|  | .SH OPTIMIZATIONS | 
|  | Optimizations supported by this program include, but are not limited to: | 
|  | .IP \[bu] 2 | 
|  | Instructing the underlying storage to discard unused extents via the | 
|  | .B TRIM | 
|  | ioctl. | 
|  | .IP \[bu] | 
|  | Updating secondary superblocks to match the primary superblock. | 
|  | .IP \[bu] | 
|  | Turning off shared block write checks for files that no longer share blocks. | 
|  | .SH REPAIRS | 
|  | Repairs are performed by calling into the kernel. | 
|  | This limits the scope of repair activities to rebuilding primary data | 
|  | structures from secondary data structures, or secondary structures from | 
|  | primary structures. | 
|  | The existence of secondary data structures may require features that can | 
|  | only be turned on from | 
|  | .BR mkfs.xfs (8). | 
|  | If errors cannot be repaired, the filesystem must be | 
|  | unmounted and | 
|  | .BR xfs_repair (8) | 
|  | run. | 
|  | Repairs supported by the kernel include, but are not limited to: | 
|  | .IP \[bu] 2 | 
|  | Reconstructing extent allocation data. | 
|  | .IP \[bu] | 
|  | Rebuilding free space information. | 
|  | .IP \[bu] | 
|  | Rebuilding inode indexes. | 
|  | .IP \[bu] | 
|  | Fixing minor corruptions of inode records. | 
|  | .IP \[bu] | 
|  | Recalculating reference count information. | 
|  | .IP \[bu] | 
|  | Reconstructing reverse mapping data from primary extent allocation data. | 
|  | .IP \[bu] | 
|  | Scheduling a quotacheck for the next mount. | 
|  | .PP | 
|  | If corrupt metadata is successfully repaired, this program will log that | 
|  | a repair has succeeded instead of a corruption report. | 
|  | .SH EXIT CODE | 
|  | The exit code returned by | 
|  | .B xfs_scrub | 
|  | is the sum of the following conditions: | 
|  | .br | 
|  | \	0\	\-\ No errors | 
|  | .br | 
|  | \	1\	\-\ File system errors left uncorrected | 
|  | .br | 
|  | \	2\	\-\ File system optimizations possible | 
|  | .br | 
|  | \	4\	\-\ Operational error | 
|  | .br | 
|  | \	8\	\-\ Usage or syntax error | 
|  | .br | 
|  | .SH CAVEATS | 
|  | .B xfs_scrub | 
|  | is an immature utility! | 
|  | Do not run this program unless you have backups of your data! | 
|  | This program takes advantage of in-kernel scrubbing to verify a given | 
|  | data structure with locks held and can keep the filesystem busy for a | 
|  | long time. | 
|  | The kernel must be new enough to support the SCRUB_METADATA ioctl. | 
|  | .PP | 
|  | If errors are found and cannot be repaired, the filesystem must be | 
|  | unmounted and repaired. | 
|  | .SH SEE ALSO | 
|  | .BR xfs_repair (8). |