xfs 在開機 fsck 的時候並不會做任何動作,所以有問題的話要自己用 xfs_check 及 xfs_repair 做檢查及修復。
但 xfs_check 時需要 fs 在 read-only 的狀況下,xfs_repair 需要 fs 不被 mount 的狀況下才能動作,但這次是 root filesystem... umount 了就不能執行 xfs_repair 了阿!
首先想到的是用 ubcd 或其他 livecd 來做但有點麻煩,翻了一下 man 看到 xfs_repair 的 -d 選項:
Repair dangerously. Allow xfs_repair to repair an XFS filesystem mounted read only. This is typically done on a root fileystem from single user mode, immediately followed by a reboot.有多 dangerous 我是不知道,但 google 了一下好像也沒發現過有什麼災情,反正 /home 還在,大部分的 config 都在這裡了,大不了重灌嘛!
於是就豁達的重開機到 recovery mode:(/dev/sda1 是我的 root device)
$ mount -oremount,ro / $ xfs_check /dev/sda1 $ xfs_repair -n /dev/sda1 #測試, 看到好長的一串要修復蠻抖的... $ xfs_repair /dev/sda1 #但指令還是拍了下去然後重開機就正常了(汗...(至少看起來沒什麼問題,雖然 /lost+found 有 93 個檔案,但大部分好像都是每刪除乾淨的而已)