summaryrefslogtreecommitdiffstats
path: root/upstream/opensuse-leap-15-6/man8/xfs_repair.8
diff options
context:
space:
mode:
Diffstat (limited to 'upstream/opensuse-leap-15-6/man8/xfs_repair.8')
-rw-r--r--upstream/opensuse-leap-15-6/man8/xfs_repair.8601
1 files changed, 601 insertions, 0 deletions
diff --git a/upstream/opensuse-leap-15-6/man8/xfs_repair.8 b/upstream/opensuse-leap-15-6/man8/xfs_repair.8
new file mode 100644
index 00000000..6625b47a
--- /dev/null
+++ b/upstream/opensuse-leap-15-6/man8/xfs_repair.8
@@ -0,0 +1,601 @@
+.TH xfs_repair 8
+.SH NAME
+xfs_repair \- repair an XFS filesystem
+.SH SYNOPSIS
+.B xfs_repair
+[
+.B \-dfLPv
+] [
+.BR \-n " | " -e
+] [
+.B \-m
+.I maxmem
+] [
+.BI \-c " subopt" = value
+] [
+.B \-o
+.I subopt\c
+[\c
+.B =\c
+.IR value ]
+] [
+.B \-t
+.I interval
+] [
+.B \-l
+.I logdev
+] [
+.B \-r
+.I rtdev
+]
+.I device
+.br
+.B xfs_repair \-V
+.SH DESCRIPTION
+.B xfs_repair
+repairs corrupt or damaged XFS filesystems
+(see
+.BR xfs (5)).
+The filesystem is specified using the
+.I device
+argument which should be the device name of the disk partition or
+volume containing the filesystem. If given the name of a block device,
+.B xfs_repair
+will attempt to find the raw device associated
+with the specified block device and will use the raw device instead.
+.PP
+Regardless, the filesystem to be repaired
+must be unmounted,
+otherwise, the resulting filesystem may be inconsistent or corrupt.
+.SH OPTIONS
+.TP
+.B \-f
+Specifies that the filesystem image to be processed is stored in a
+regular file at
+.I device
+(see the
+.B mkfs.xfs \-d
+.I file
+option). This might happen if an image copy
+of a filesystem has been copied or written into an ordinary file.
+This option implies that any external log or realtime section
+is also in an ordinary file.
+.TP
+.B \-L
+Force Log Zeroing.
+Forces
+.B xfs_repair
+to zero the log even if it is dirty (contains metadata changes).
+When using this option the filesystem will likely appear to be corrupt,
+and can cause the loss of user files and/or data. See the
+.B "DIRTY LOGS"
+section for more information.
+.TP
+.BI \-l " logdev"
+Specifies the device special file where the filesystem's external
+log resides. Only for those filesystems which use an external log.
+See the
+.B mkfs.xfs \-l
+option, and refer to
+.BR xfs (5)
+for a detailed description of the XFS log.
+.TP
+.BI \-r " rtdev"
+Specifies the device special file where the filesystem's realtime
+section resides. Only for those filesystems which use a realtime section.
+See the
+.B mkfs.xfs \-r
+option, and refer to
+.BR xfs (5)
+for a detailed description of the XFS realtime section.
+.TP
+.B \-n
+No modify mode. Specifies that
+.B xfs_repair
+should not modify the filesystem but should only scan the
+filesystem and indicate what repairs would have been made. This option cannot
+be used together with
+.BR \-e .
+.TP
+.B \-P
+Disable prefetching of inode and directory blocks. Use this option if
+you find
+.B xfs_repair
+gets stuck and stops proceeding. Interrupting a stuck
+.B xfs_repair
+is safe.
+.TP
+.BI \-m " maxmem"
+Specifies the approximate maximum amount of memory, in megabytes, to use for
+.BR xfs_repair .
+.B xfs_repair
+has its own internal block cache which will scale out up to the lesser of the
+process's virtual address limit or about 75% of the system's physical RAM.
+This option overrides these limits.
+.IP
+.B NOTE:
+These memory limits are only approximate and may use more than the specified
+limit.
+.TP
+.BI \-c " subopt" = value
+Change filesystem parameters. Refer to
+.BR xfs_admin (8)
+for information on changing filesystem parameters.
+.HP
+.B \-o
+.I subopt\c
+[\c
+.B =\c
+.IR value ]
+.br
+Override what the program might conclude about the filesystem
+if left to its own devices.
+.IP
+The
+.IR subopt ions
+supported are:
+.RS 1.0i
+.TP
+.BI bhash= bhashsize
+overrides the default buffer cache hash size. The total number of
+buffer cache entries are limited to 8 times this amount. The default
+size is set to use up the remainder of 75% of the system's physical
+RAM size.
+.TP
+.BI ag_stride= ags_per_concat_unit
+This creates additional processing threads to parallel process
+AGs that span multiple concat units. This can significantly
+reduce repair times on concat based filesystems.
+.TP
+.BI force_geometry
+Check the filesystem even if geometry information could not be validated.
+Geometry information can not be validated if only a single allocation
+group exists and thus we do not have a backup superblock available, or
+if there are two allocation groups and the two superblocks do not
+agree on the filesystem geometry. Only use this option if you validated
+the geometry yourself and know what you are doing. If In doubt run
+in no modify mode first.
+.TP
+.BI noquota
+Don't validate quota counters at all.
+Quotacheck will be run during the next mount to recalculate all values.
+.RE
+.TP
+.B \-t " interval"
+Modify reporting interval, specified in seconds. During long runs
+.B xfs_repair
+outputs its progress every 15 minutes. Reporting is only activated when
+ag_stride is enabled.
+.TP
+.B \-v
+Verbose output. May be specified multiple times to increase verbosity.
+.TP
+.B \-d
+Repair dangerously. Allow
+.B xfs_repair
+to repair an XFS filesystem mounted read only. This is typically done
+on a root filesystem from single user mode, immediately followed by a reboot.
+.TP
+.B \-e
+If any metadata corruption was repaired, the status returned is 4 instead of the
+usual 0. This option cannot be used together with
+.BR \-n .
+.TP
+.B \-V
+Prints the version number and exits.
+.SS Checks Performed
+The correctness of the crc32c checksum implementation will be tested
+before examining the filesystem.
+If the test fails, the program will abort.
+
+Inconsistencies corrected include the following:
+.IP 1.
+Inode and inode blockmap (addressing) checks:
+bad magic number in inode,
+bad magic numbers in inode blockmap blocks,
+extents out of order,
+incorrect number of records in inode blockmap blocks,
+blocks claimed that are not in a legal data area of the filesystem,
+blocks that are claimed by more than one inode.
+.IP 2.
+Inode allocation map checks:
+bad magic number in inode map blocks,
+inode state as indicated by map (free or in-use) inconsistent
+with state indicated by the inode,
+inodes referenced by the filesystem that do not appear in
+the inode allocation map,
+inode allocation map referencing blocks that do not appear
+to contain inodes.
+.IP 3.
+Size checks:
+number of blocks claimed by inode inconsistent with inode size,
+directory size not block aligned,
+inode size not consistent with inode format.
+.IP 4.
+Directory checks:
+bad magic numbers in directory blocks,
+incorrect number of entries in a directory block,
+bad freespace information in a directory leaf block,
+entry pointing to an unallocated (free) or out
+of range inode,
+overlapping entries,
+missing or incorrect dot and dotdot entries,
+entries out of hashvalue order,
+incorrect internal directory pointers,
+directory type not consistent with inode format and size.
+.IP 5.
+Pathname checks:
+files or directories not referenced by a pathname starting from
+the filesystem root,
+illegal pathname components.
+.IP 6.
+Link count checks:
+link counts that do not agree with the number of
+directory references to the inode.
+.IP 7.
+Freemap checks:
+blocks claimed free by the freemap but also claimed by an inode,
+blocks unclaimed by any inode but not appearing in the freemap.
+.IP 8.
+Super Block checks:
+total free block and/or free i-node count incorrect,
+filesystem geometry inconsistent,
+secondary and primary superblocks contradictory.
+.PP
+Orphaned files and directories (allocated, in-use but unreferenced) are
+reconnected by placing them in the
+.I lost+found
+directory.
+The name assigned is the inode number.
+.SS Disk Errors
+.B xfs_repair
+aborts on most disk I/O errors. Therefore, if you are trying
+to repair a filesystem that was damaged due to a disk drive failure,
+steps should be taken to ensure that all blocks in the filesystem are
+readable and writable before attempting to use
+.B xfs_repair
+to repair the filesystem. A possible method is using
+.BR dd (8)
+to copy the data onto a good disk.
+.SS lost+found
+The directory
+.I lost+found
+does not have to already exist in the filesystem being repaired.
+If the directory does not exist, it is automatically created if required.
+If it already exists, it will be checked for consistency and if valid
+will be used for additional orphaned files. Invalid
+.I lost+found
+directories are removed and recreated. Existing files in a valid
+.I lost+found
+are not removed or renamed.
+.SS Corrupted Superblocks
+XFS has both primary and secondary superblocks.
+.B xfs_repair
+uses information in the primary superblock
+to automatically find and validate the primary superblock
+against the secondary superblocks before proceeding.
+Should the primary be too corrupted to be useful in locating
+the secondary superblocks, the program scans the filesystem
+until it finds and validates some secondary superblocks.
+At that point, it generates a primary superblock.
+.SS Quotas
+If quotas are in use, it is possible that
+.B xfs_repair
+will clear some or all of the filesystem quota information.
+If so, the program issues a warning just before it terminates.
+If all quota information is lost, quotas are disabled and the
+program issues a warning to that effect.
+.PP
+Note that
+.B xfs_repair
+does not check the validity of quota limits. It is recommended
+that you check the quota limit information manually after
+.BR xfs_repair .
+Also, space usage information is automatically regenerated the
+next time the filesystem is mounted with quotas turned on, so the
+next quota mount of the filesystem may take some time.
+.SH DIAGNOSTICS
+.B xfs_repair
+issues informative messages as it proceeds
+indicating what it has found that is abnormal or any corrective
+action that it has taken.
+Most of the messages are completely understandable only to those
+who are knowledgeable about the structure of the filesystem.
+Some of the more common messages are explained here.
+Note that the language of the messages is slightly different if
+.B xfs_repair
+is run in no-modify mode because the program is not changing anything on disk.
+No-modify mode indicates what it would do to repair the filesystem
+if run without the no-modify flag.
+.PP
+.B disconnected inode
+.IB ino ,
+.B moving to lost+found
+.IP
+An inode numbered
+.I ino
+was not connected to the filesystem
+directory tree and was reconnected to the
+.I lost+found
+directory. The inode is assigned the name of its inode number
+.RI ( ino ).
+If a
+.I lost+found
+directory does not exist, it is automatically created.
+.PP
+.B disconnected dir inode
+.IB ino ,
+.B moving to lost+found
+.IP
+As above only the inode is a directory inode.
+If a directory inode is attached to
+.IR lost+found ,
+all of its children (if any) stay attached to the directory and therefore
+get automatically reconnected when the directory is reconnected.
+.PP
+.B imap claims in-use inode
+.I ino
+.B is free, correcting imap
+.IP
+The inode allocation map thinks that inode
+.I ino
+is free whereas examination of the inode indicates that the
+inode may be in use (although it may be disconnected).
+The program updates the inode allocation map.
+.PP
+.B imap claims free inode
+.I ino
+.B is in use, correcting imap
+.IP
+The inode allocation map thinks that inode
+.I ino
+is in use whereas examination of the inode indicates that the
+inode is not in use and therefore is free.
+The program updates the inode allocation map.
+.PP
+.B resetting inode
+.I ino
+.B nlinks from
+.I x
+.B to
+.I y
+.IP
+The program detected a mismatch between the
+number of valid directory entries referencing inode
+.I ino
+and the number of references recorded in the inode and corrected the
+the number in the inode.
+.PP
+.I fork-type
+.B fork in ino
+.I ino
+.B claims used block
+.I bno
+.IP
+Inode
+.I ino
+claims a block
+.I bno
+that is used (claimed) by either another inode or the filesystem
+itself for metadata storage. The
+.I fork-type
+is either
+.B data
+or
+.B attr
+indicating whether the problem lies in the portion of the
+inode that tracks regular data or the portion of the inode
+that stores XFS attributes.
+If the inode is a real-time (rt) inode, the message says so.
+Any inode that claims blocks used by the filesystem is deleted.
+If two or more inodes claim the same block, they are both deleted.
+.PP
+.I fork-type
+.B fork in ino
+.I ino
+.B claims dup extent ...
+.IP
+Inode
+.I ino
+claims a block in an extent known to be claimed more than once.
+The offset in the inode, start and length of the extent is given.
+The message is slightly different
+if the inode is a real-time (rt) inode and the extent is therefore
+a real-time (rt) extent.
+.PP
+.B inode
+.I ino
+.B \- bad extent ...
+.IP
+An extent record in the blockmap of inode
+.I ino
+claims blocks that are out of the legal range of the filesystem.
+The message supplies the start, end, and file offset of the extent.
+The message is slightly different if the extent is a real-time (rt) extent.
+.PP
+.B bad
+.I fork-type
+.B fork in inode
+.I ino
+.IP
+There was something structurally wrong or inconsistent with the
+data structures that map offsets to filesystem blocks.
+.PP
+.B cleared inode
+.I ino
+.IP
+There was something wrong with the inode that
+was uncorrectable so the program freed the inode.
+This usually happens because the inode claims
+blocks that are used by something else or the inode itself
+is badly corrupted. Typically, this message
+is preceded by one or more messages indicating why the
+inode needed to be cleared.
+.PP
+.B bad attribute fork in inode
+.IR ino ,
+.B clearing attr fork
+.IP
+There was something wrong with the portion of the inode that
+stores XFS attributes (the attribute fork) so the program reset
+the attribute fork.
+As a result of this, all attributes on that inode are lost.
+.PP
+.B correcting nextents for inode
+.IR ino ,
+.B was
+.I x
+.B \- counted
+.I y
+.IP
+The program found that the number of extents used to store
+the data in the inode is wrong and corrected the number.
+The message refers to nextents if the count is wrong
+on the number of extents used to store attribute information.
+.PP
+.B entry
+.I name
+.B in dir
+.I dir_ino
+.B not consistent with .. value
+.BI ( xxxx )
+.B in dir ino
+.IB ino ,
+.B junking entry
+.I name
+.B in directory inode
+.I dir_ino
+.IP
+The entry
+.I name
+in directory inode
+.I dir_ino
+references a directory inode
+.IR ino .
+However, the ..\& entry in directory
+.I ino
+does not point back to directory
+.IR dir_ino ,
+so the program deletes the entry
+.I name
+in directory inode
+.IR dir_ino .
+If the directory inode
+.I ino
+winds up becoming a disconnected inode as a result of this, it is moved to
+.I lost+found
+later.
+.PP
+.B entry
+.I name
+.B in dir
+.I dir_ino
+.B references already connected dir ino
+.IB ino ,
+.B junking entry
+.I name
+.B in directory inode
+.I dir_ino
+.IP
+The entry
+.I name
+in directory inode
+.I dir_ino
+points to a directory inode
+.I ino
+that is known to be a child of another directory.
+Therefore, the entry is invalid and is deleted.
+This message refers to an entry in a small directory.
+If this were a large directory, the last phrase would read
+"will clear entry".
+.PP
+.B entry references free inode
+.I ino
+.B in directory
+.IB dir_ino ,
+.B will clear entry
+.IP
+An entry in directory inode
+.I dir_ino
+references an inode
+.I ino
+that is known to be free. The entry is therefore invalid and is deleted.
+This message refers to a large directory.
+If the directory were small, the message would read "junking entry ...".
+.SH EXIT STATUS
+.B xfs_repair \-n
+(no modify mode)
+will return a status of 1 if filesystem corruption was detected and
+0 if no filesystem corruption was detected.
+.B xfs_repair
+run without the \-n option will always return a status code of 0 if
+it completes without problems, unless the flag
+.B -e
+is used. If it is used, then status 4 is reported when any issue with the
+filesystem was found, but could be fixed. If a runtime error is encountered during
+operation, it will return a status of 1. In this case,
+.B xfs_repair
+should be restarted. If
+.B xfs_repair is unable
+to proceed due to a dirty log, it will return a status of 2. See below.
+.SH DIRTY LOGS
+Due to the design of the XFS log, a dirty log can only be replayed
+by the kernel, on a machine having the same CPU architecture as the
+machine which was writing to the log.
+.B xfs_repair
+cannot replay a dirty log and will exit with a status code of 2
+when it detects a dirty log.
+.PP
+In this situation, the log can be replayed by mounting and immediately
+unmounting the filesystem on the same class of machine that crashed.
+Please make sure that the machine's hardware is reliable before
+replaying to avoid compounding the problems.
+.PP
+If mounting fails, the log can be erased by running
+.B xfs_repair
+with the -L option.
+All metadata updates in progress at the time of the crash will be lost,
+which may cause significant filesystem damage.
+This should
+.B only
+be used as a last resort.
+.SH BUGS
+The filesystem to be checked and repaired must have been
+unmounted cleanly using normal system administration procedures
+(the
+.BR umount (8)
+command or system shutdown), not as a result of a crash or system reset.
+If the filesystem has not been unmounted cleanly, mount it and unmount
+it cleanly before running
+.BR xfs_repair .
+.PP
+.B xfs_repair
+does not do a thorough job on XFS extended attributes.
+The structure of the attribute fork will be consistent,
+but only the contents of attribute forks that will fit into
+an inode are checked.
+This limitation will be fixed in the future.
+.PP
+The no-modify mode
+.RB ( \-n
+option) is not completely accurate.
+It does not catch inconsistencies in the freespace and inode
+maps, particularly lost blocks or subtly corrupted maps (trees).
+.PP
+The no-modify mode can generate repeated warnings about
+the same problems because it cannot fix the problems as they
+are encountered.
+.PP
+If a filesystem fails to be repaired, a metadump image can be generated
+with
+.BR xfs_metadump (8)
+and be sent to an XFS maintainer to be analysed and
+.B xfs_repair
+fixed and/or improved.
+.SH SEE ALSO
+.BR dd (1),
+.BR mkfs.xfs (8),
+.BR umount (8),
+.BR xfs_admin (8),
+.BR xfs_metadump (8),
+.BR xfs (5).