This question is related to xfs_repair (recovery) and journalling.
I powered off (improper shut down) the system when the IO was
undergoing on mounted XFS filesystem.
Then I tried to recover the inconsistent filesystem using xfs_repair,
after powering on the same machine.
The XFS filesystem didnât get recovered which was not expected. The
output displayed by xfs_repair is as follows:
Phase 1 - find and verify superblock...
Phase 2 - using internal log
- zero log...
ERROR: The filesystem has valuable metadata changes in a log which needs to
be replayed. Mount the filesystem to replay the log, and unmount it before
re-running xfs_repair. If you are unable to mount the filesystem, then use
the -L option to destroy the log and attempt a repair.
Note that destroying the log may cause corruption -- please attempt a mount
of the filesystem before doing this.
The question that arises here is that why xfs_repair should be re-run
after mounting and unmounting the XFS filesystem. According to my
understanding, when we perform mount operation, recovery is
automatically done if the filesystem is in inconsistent state. Then
what is the need of re-running xfs_repair after mount is being
performed? Does xfs_repair recovers something indifferent from the one
recovered on mount? What exactly happens when we mount and unmount XFS
This is not observed in EXT4, fsck successfully recovers without
mounting the filesystem.