星期四, 1月 17, 2013

xfs repair in root fs

用 xfs 好一陣子了,都沒有發生過什麼問題,但今天在做系統 update 的時候居然發現有硬碟有資料毀損的情況,而且還是 root fs... 頓時背脊都涼了一半,才發現 xfs 居然都沒有自己 repair(但說實在其實那些會自己修復的 fsck 有時候也蠻恐怖的)。

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 個檔案,但大部分好像都是每刪除乾淨的而已)

4 則留言:

MEEEEE 提到...
作者已經移除這則留言。
MEEEEE 提到...
作者已經移除這則留言。
MEEEEE 提到...

Do I need to type "xfs_repair -n" before "xfs_repair"
What will happen if I do "xfs_repair" without doing "xfs_repair -n" before?

Sorry for my poor English, I have no Chinese input method right now.

MEEEEE 提到...

How long does it take to the end?
My H.D.D. is almost 2TB.