xfs_repair Command: Tutorial & Examples

Troubleshooting XFS filesystems

The xfs_repair command is a crucial tool in any Linux administrator's toolkit. It's specifically designed to repair an XFS filesystem, which is a high-performance journaling filesystem created by Silicon Graphics. This command is of high importance due to its ability to salvage data from damaged or corrupted XFS partitions. This tutorial will focus on explaining what the xfs_repair command does, how it works, its importance, potential problems it can solve, and how to use it through various examples.

Understanding the xfs_repair Command

The xfs_repair command, as the name suggests, is used to repair XFS filesystems. It's typically used when a filesystem has been shut down uncleanly, and the filesystem's internal logs are not sufficient to restore it to a consistent state. This situation can arise due to a variety of reasons, such as a power failure or a kernel crash.

The way xfs_repair works is by scanning the filesystem metadata, identifying inconsistencies, and resolving them. It's important to note that xfs_repair does not operate on a mounted filesystem. The filesystem must be unmounted or mounted as read-only for the command to work.

The Importance of xfs_repair

The xfs_repair command is especially significant because it allows users to recover data from a damaged XFS filesystem, which could otherwise lead to data loss. It's a vital tool for system administrators, especially in environments where data integrity is of utmost importance.

Problems xfs_repair can Solve

The xfs_repair command can help recover from situations where the filesystem has been corrupted due to various reasons, including but not limited to:

Using the xfs_repair Command

Before running xfs_repair, it's important to ensure that the target filesystem is unmounted. You can unmount a filesystem using the umount command.

Here's an example of how to use xfs_repair:

sudo umount /dev/sdb1
sudo xfs_repair /dev/sdb1

This sequence of commands will unmount the filesystem located at /dev/sdb1, then run xfs_repair on it.

In certain cases, xfs_repair might not be able to repair a filesystem in the first attempt. In such scenarios, you can use the -L flag to force the command to zero the log:

sudo xfs_repair -L /dev/sdb1

Typical Output of xfs_repair

Here's an example of what the output of xfs_repair might look like:

Phase 1 - find and verify superblock...
Phase 2 - using internal log
- zero log...
- scan filesystem freespace and inode maps...
- found root inode chunk
Phase 3 - for each AG...
- scan and clear agi unlinked lists...
- process known inodes and perform inode discovery...
- agno = 0
- agno = 1
- agno = 2
- agno = 3
- process newly discovered inodes...
Phase 4 - check for duplicate blocks...
- setting up duplicate extent list...
- check for inodes claiming duplicate blocks...
- agno = 0
Phase 5 - rebuild AG headers and trees...
- reset superblock...
Phase 6 - check inode connectivity...
- resetting contents of realtime bitmap and summary inodes
- traversing filesystem ...
- traversal finished ...
- moving disconnected inodes to lost+found ...
Phase 7 - verify and correct link counts...
done

This output shows the different phases that xfs_repair goes through when repairing an XFS filesystem. The command first verifies the superblock, then uses the internal log to scan the filesystem's freespace and inode maps. It then scans and clears the AGI unlinked lists, processes known inodes, checks for duplicate blocks, rebuilds AG headers and trees, checks inode connectivity, and finally verifies and corrects link counts.

Dealing with filesystem issues can be a daunting task, but tools like xfs_repair make the process more manageable. Remember, proper understanding and careful usage of such commands can help prevent data loss and keep your system running smoothly.

Except where otherwise noted, content on this site is licensed under a CC BY-SA 4.0 license CC BY SA