Linux

如何修復文件系統損壞?

  • October 2, 2014

外部 USB SSD 驅動器上的 Debian。dmesg日誌文件中有一些錯誤:

...[    3.320718] EXT4-fs (sdb2): INFO: recovery required on readonly filesystem
[    3.320721] EXT4-fs (sdb2): write access will be enabled during recovery
[    5.366367] EXT4-fs (sdb2): orphan cleanup on readonly fs
[    5.366375] EXT4-fs (sdb2): ext4_orphan_cleanup: deleting unreferenced inode 6072
[    5.366426] EXT4-fs (sdb2): ext4_orphan_cleanup: deleting unreferenced inode 6071
[    5.366442] EXT4-fs (sdb2): 2 orphan inodes deleted
[    5.366444] EXT4-fs (sdb2): recovery complete
...

系統啟動並正常工作。是否有可能完全修復它,正確的方法是什麼?

您可以指示文件系統在安裝後立即執行,fsck如下所示:

方法 #1:使用 /forcefsck

您通常可以在下次重新啟動時安排檢查,如下所示:

$ sudo touch /forcefsck
$ sudo reboot

方法#2:使用關機

您也可以通過開關告訴shutdown命令這樣做:-F

$ sudo shutdown -rF now

**注意:**第一種方法是實現這一目標的最通用方法!

方法 #3:使用 tune2fs

您還可以使用tune2fs,它可以在文件系統本身上設置參數以在下次嘗試掛載時強制檢查。

$ sudo tune2fs -l /dev/sda1
Mount count: 3
Maximum mount count: 25

因此,您必須使用以下命令將“安裝計數”設置為高於 25:

$ sudo tune2fs -C 26 /dev/sda1

檢查更改的值tune2fs -l,然後重新啟動!

**注意:**在我使用的 3 個選項中,tune2fs它可以處理強制檢查任何文件系統,無論它是主文件系統 ( /) 還是其他文件系統。

補充筆記

您通常會看到與格式化為 ext2/3/4 的分區相關聯的“最大安裝計數:”和“檢查間隔:”參數。通常它們的配置如下:

$ tune2fs -l /dev/sda5 | grep -E "Mount count|Maximum mount|interval"
Mount count:              178
Maximum mount count:      -1
Check interval:           0 (<none>)

以這種方式設置參數時,設備將永遠不會fsck在安裝期間執行。這對於大多數發行版來說是相當典型的。

有 2 種力量會推動檢查。安裝次數或經過時間。“檢查間隔”是基於時間的。你可以每兩週對那個論點說一次,2w。有關更多資訊,請參見tune2fs手冊頁。

**注意:**還要確保了解這tune2fs是文件系統命令,而不是設備命令。因此,它不適用於任何舊設備,/dev/sda除非那裡有 ext2/3/4 文件系統,否則該命令tune2fs是沒有意義的,它必須用於已使用其中一種文件系統格式化的分區。

參考

引用自:https://unix.stackexchange.com/questions/158613