Linux
使用 e2fsck 定位特定塊以縮短等待時間
最近有一個 LVM’d CentOS 6.5 安裝意外冷關機。在啟動時,它說主分區需要 fscking:
/dev/mapper/vg_myserver-lv_home: Block bitmap for group 3072 is not in group. (block 3335668205) /dev/mapper/vg_myserver-lv_home: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.
…但我猜根分區沒問題,因為它給了我一個外殼。所以我們執行
e2fsck -b 32768 /dev/mapper/vg_myserver/lv_home
並在對各種修復說“是”之後,在第 5 階段它只是在螢幕上列印出無窮無盡的數字,非常快。偶爾它會將它們列印在整齊的列中,如果這些是塊編號,那麼幾個小時後,我們仍然距離完成 1.2 TB LV 的前 2% 還差得很遠。我讀到您可以使用
cleap_mmp
withtune2fs
,但在嘗試時,它不接受 cleap_mmp 也不將其列在有效選項中。我的問題是,每個人如何在不停機數週的情況下處理損壞的 ext4 fs?是否每個人都有這種困境,或者幾週的停機時間與重建伺服器/失去的數據?如果是這樣,為什麼有人使用或推薦使用 ext4?是否有一些我錯過的技巧可以讓我針對它抱怨的特定塊/組,所以我們可以繼續它並再次安裝家庭 fs?
執行
e2fsck -y
自動對所有問題說“是”,而不必手動說“是”一百萬次。
磁碟出現故障或有問題的解決方案是從備份中恢復。如果是硬體問題,請先更換磁碟。
嘗試重建損壞的文件系統是一項非常耗時的操作,很少會產生好的結果。