如何使用’fsck’修复Linux文件系统错误

Linux 檔案系統負責組織資料的存儲和檢索。無論如何,隨著時間的推移,檔案系統可能會損壞,某些部分可能無法訪問。如果您的檔案系統出現此類不一致,建議您驗證其完整性。

可以通過一個名為fsck檔案系統一致性檢查)的系統工具來完成此操作,它會在開機時自動檢查根檔案系統或手動運行。

在本文中,我們將回顧fsck 命令及其用法,以幫助您修復 Linux 磁碟錯誤。

何時在 Linux 中使用 fsck 命令

在不同的情境下,您可能會想運行 fsck。以下是一些示例:

  • 系統無法啟動。
  • 系統上的文件損壞(通常您可能會看到輸入/輸出錯誤)。
  • 連接的驅動器(包括閃存驅動器/SD 卡)未按預期運作。

fsck 命令選項

需要使用超級用戶權限或 root 來運行 fsck 命令。您可以使用不同的參數。它們的使用取決於您的具體情況。以下是一些較重要的選項:

  • -A – 用於檢查所有文件系統。列表來自 /etc/fstab
  • -C – 顯示進度條。
  • -l – 鎖定設備以保證在檢查期間不會有其他程序嘗試使用該分區。
  • -M – 不檢查已掛載的文件系統。
  • -N – 僅顯示將要執行的操作 – 不進行實際更改。
  • -P – 如果要並行檢查文件系統,包括根文件系統。
  • -R – 不檢查根文件系統。這僅與 ‘-A‘ 一起使用時有用。
  • -r – 提供正在檢查的每個設備的統計信息。
  • -T – 不顯示標題。
  • -t – 專門指定要檢查的 Linux 文件系統類型。類型可以是逗號分隔的列表。
  • -V – 提供正在執行的操作的描述。

運行 fsck 命令來修復 Linux 文件系統錯誤

為了運行 fsck,您需要確保要檢查的分區未掛載。本文將使用我第二個設備 /dev/sdb 掛載在 /mnt 中。

如果嘗試在分區掛載時運行 fsck,將發生以下情況。

# fsck /dev/sdb
Run fsck on Mounted Partition

為了避免這種情況,請使用

# umount /dev/sdb

。然後可以安全地運行 fsck

# fsck /dev/sdb
Run fsck on Linux Partition

理解 fsck 退出代碼

執行完 fsck 後,它將返回一個退出代碼。這些代碼可以在 fsck 的手冊中找到,方法是運行:

# man fsck

0      No errors
1      Filesystem errors corrected
2      System should be rebooted
4      Filesystem errors were left uncorrected
8      Operational error
16     Usage or syntax error
32     Checking canceled by user request
128    Shared-library error            

Fsck 修復 Linux 文件系統

有時一個文件系統上可能會發現多個錯誤。在這種情況下,您可能希望fsck自動嘗試修正這些錯誤。可以使用以下方法實現:

# fsck -y /dev/sdb

使用 -y 標誌,自動回答 fsck 提示以更正錯誤。

同樣,您可以在所有文件系統上運行相同的操作(無需 root):

$ fsck -AR -y 

在 Linux 根分區上運行 fsck 的方法

在某些情況下,您可能需要在系統的分區上運行fsck。由於不能在分區掛載時運行fsck,您可以嘗試以下其中一個選項:

  • 在系統啟動時強制執行 fsck
  • 在救援模式下運行 fsck

我們將檢討這兩種情況。

在系統啟動時強制執行 fsck

這是相對容易完成的,你需要做的唯一事情就是在你系統的根分割區中創建一個名為forcefsck的文件。使用以下命令:

# touch /forcefsck

然後你可以簡單地強制或安排重新啟動你的系統。在下一次啟動時,將執行fsck。如果停機時間至關重要,建議仔細計劃,因為如果你的系統中有許多使用的inode,fsck可能需要額外的時間。

系統啟動後,檢查文件是否仍然存在:

# ls /forcefsck

如果存在,你可能希望刪除它以避免在每次系統啟動時進行fsck

在救援模式下運行fsck

救援模式中運行fsck需要進行幾個額外的步驟。首先,準備好你的系統進行重新啟動。停止任何關鍵服務,如MySQL/MariaDB等,然後輸入。

# reboot

在啟動過程中,按住shift鍵以顯示grub菜單。選擇“高級選項”。

Grub Advanced Options

然後選擇“恢復模式”。

Select Linux Recovery Mode

在下一個菜單中選擇“fsck”。

Select fsck Utility

你將被問及是否希望重新掛載你的/文件系統。選擇“是”

Confirm Root Filesystem

你應該會看到類似於這樣的內容。

Running fsck Filesystem Check

你在這個教程中學到了如何使用 fsck 並對不同的 Linux 檔案系統進行一致性檢查。如果你對 fsck 有任何問題,請毋需猶豫在下面的評論區提出。

Select Normal Boot
結論

Source:
https://www.tecmint.com/fsck-repair-file-system-errors-in-linux/