I am having a problem with my 1 TB XFS LVM logical volume. This formerly resided on a physical volume which developed IO errors, so I used "pvmove" to migrate to a new disk. After the migration I was able to read from and write to the volume, but started seeing "structure needs cleaning" errors. So I decided to unmount the volume and run xfs_repair.
This started out with the following messages (I've replaced some of the often-repeated redundant-looking messages with "<snipped>" to reduce the volume of text):
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 entry "/rca.orca_gui_find.indexcache.2012-11-13T22:29:05-05:00.snapshot.gz" at block 147 clearing inode number in entry at offset 2912... entry at block 147 offset 2912 in directory inode 1893017 has illegal name "/rca.orca_gui <snipped> entry at block 0 offset 1616 in directory inode 3728154 has illegal name "/andler.html.zh cleared inode 3728972 imap claims a free inode 3729023 is in use, correcting imap and clearing inode cleared inode 3729023 <snipped> bad magic number 0x0 on inode 3729024 bad version number 0x0 on inode 3729024 <snipped> entry "/gi.html.en" at block 0 offset 696 in directory inode 3729503 references invalid i clearing inode number in entry at offset 968... <snipped> entry at block 0 offset 968 in directory inode 3729503 has illegal name "/taccess.html": will junk block no . entry for directory 3996998 no .. entry for directory 3996998 problem with directory contents in inode 3996998 cleared inode 3996998 bad directory block magic # 0 in block 0 for directory inode 3997000 <snipped> 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 bad directory block magic # 0 in block 0 for directory inode 4003024 corrupt block 0 in directory inode 4003024 will junk block no . entry for directory 4003024 no .. entry for directory 4003024 entry "Authoring.pod" at block 0 offset 160 in directory inode 14276983 references free i clearing inode number in entry at offset 160... entry "Base.pm" at block 0 offset 216 in directory inode 14276983 references free inode 3 <snipped> - agno = 1 entry "wireless" at block 0 offset 688 in directory inode 2207138636 references free inod clearing inode number in entry at offset 688... entry "xfrm" at block 0 offset 728 in directory inode 2207138636 references free inode 39 clearing inode number in entry at offset 728... entry "seq" at block 0 offset 64 in directory inode 2207276722 references free inode 4001 clearing inode number in entry at offset 64... - agno = 2 - agno = 3 Phase 5 - rebuild AG headers and trees... - reset superblock... Phase 6 - check inode connectivity... - resetting contents of realtime bitmap and summary inodes - traversing filesystem ...
Since yesterday, xfs_repair has stopped outputting anything new to the screen. I checked with strace, but I don't see any activity. The xfs_repair process still exists in the process table, and is consuming memory but no CPU.
So is it doing anything? Should I let it run, or terminate the process? Will I be able to use the existing filesystem, or will I need to start over with a new, clean XFS volume instead?