透過編輯 fstab 檔案修復檔案系統

透過編輯 fstab 檔案修復檔案系統

是否可以透過重新編輯 fstab 檔案來執行 xfs 修復?

/dev/mapper/vg-linux_root /                       xfs     defaults        0 0
UUID=7de1dc5c-b605-4a6f-bdf1-f1e869f6ffb9 /boot   xfs     defaults        0 0
/dev/mapper/vg-linux_var /var                     xfs     defaults        0 0
/dev/mapper/vg-linux_swap swap                    swap    defaults        0 0

我不確定,但是將最後一個數字從 0 替換為 1 ,對嗎?

答案1

不,僅僅編輯 /etc/fstab 並不能導致 xfs_repair 被執行。

對於其他檔案系統類型,它也可以工作。但 XFS 在這裡很特別。

將 XFS 檔案系統上的第 6 個欄位變更/etc/fstab為非零值將導致系統運行fsck.xfs,其手冊頁顯示:

NAME
       fsck.xfs - do nothing, successfully

[...]

       However,  the  system  administrator  can force fsck.xfs to run xfs_re‐
       pair(8) at boot time by creating a /forcefsck file or booting the  sys‐
       tem with "fsck.mode=force" on the kernel command line.

所以,平常fsck.xfs什麼事都不做。

如果你真的想xfs_repair在啟動時運行,有兩個條件必須滿足:

a) 對於相關的 XFS 檔案系統,第 6 個欄位/etc/fstab必須非零,以便fsck.xfs執行。

b)/forcefsck檔案必須存在於根檔案系統上(或可能存在於 initramfs 中,如果計劃檢查根檔案系統),或者核心命令列必須具有fsck.mode=force引導選項。這將導致fsck.xfs運行xfs_repair而不是不執行任何操作。

那麼 xfs_repair 有什麼特別之處呢?

XFS 檔案系統和xfs_repair工具都將假設底層磁碟狀況良好,或至少能夠使用內建備用區塊透明地替換壞區塊(就像所有現代磁碟一樣)。如果現代磁碟存在作業系統可見的持久性壞區塊,通常表示內建的備用區塊機制已經被壞區塊數量淹沒,並且磁碟可能很快就會完全失效。

的手冊頁xfs_repair說:

   Disk Errors
       xfs_repair aborts on most disk I/O errors. Therefore, if you are trying
       to  repair  a  filesystem that was damaged due to a disk drive failure,
       steps should be taken to ensure that all blocks in the  filesystem  are
       readable and writable before attempting to use xfs_repair to repair the
       filesystem. A possible method is using dd(8) to copy the  data  onto  a
       good disk.

因此,在正常情況下您可能不應該設定xfs_repair為自動運行。

如果 XFS 檔案系統有錯誤,您應該始終先評估底層磁碟的狀況:smartctl -a /dev/<disk device>可能有用,因為可能用於dd讀取分割區/LV 的全部內容/dev/null並查看命令是否可以無錯誤地完成。

如果磁碟發生故障,您應該先將分割區/LV 的內容複製到新的、無錯誤的磁碟(可能使用dd或),然後才應嘗試在無錯誤磁碟上的檔案系統上ddrescue執行。xfs_repair

xfs_repair如果您知道某些原因導致檔案系統層級錯誤,即使您的磁碟狀況良好,在啟動時自動執行可能是合適的解決方法。但這只是一種解決方法,而不是修復:您應該找出導致檔案系統錯誤的原因,並修復根本原因。 (也許是檔案系統驅動程式錯誤,需要更新的核心包來修復?)

答案2

如果上面的文件/dev/sda有錯誤,那麼你需要運行fsck它。請記住,它實際上不會修復磁碟本身,而只會修復檔案。如果磁碟確實有錯誤並且出現故障,那麼最好更換磁碟並從備份中恢復數據,因為如果它變得足夠糟糕,您可能會丟失數據,尤其是當磁碟完全損壞時。

相關內容