FSCK(文件系統一致性檢查)是一個命令行實用程序,用於檢查和修復 Linux 文件系統錯誤。 這確保文件系統的完整性和一致性。
fsck 是一個前端程序,它為特定的文件系統調用相應的程序來運行。 Fsck 通常在系統無法啟動、文件系統損壞或連接的驅動器無法正常運行後運行。
在本教程中,我們將了解 fsck 命令以及如何修復 Linux 發行版上的文件系統。
先決條件
- Linux 或類 Unix 系統
- 具有 root 訪問權限的用戶
使用 fsck 命令時
- 通常在系統崩潰或斷電或不干淨的卸載後,系統會自動發現系統不一致。
- 系統無法啟動
- 當系統出現 I/O 錯誤時
- 計劃在啟動時或每隔幾個月為文件系統完整性運行 fsck
Linux 中的 fsck 命令
fsck 命令遵循基本語法。
$ sudo fsck [Option] [Filesystem]
這 [Option] 語法中是 fsck 實用程序可用的選項(本教程末尾給出了 fsck 選項)。 這 [Filesystem] 可以是設備、分區、掛載點等。 如果沒有憑據添加到 [Filesystem], fsck 檢查 fstab 文件中列出的設備。
fsck 默認包含在所有 Linux 發行版中。 擁有一個好的備份是運行 fsck 命令的安全點。 fsck 保持所有文件完好無損,只檢查文件系統的完整性。 此命令可以手動或自動運行。
在嘗試檢查或修復文件系統之前,請務必記住卸載分區。 如果不這樣做,文件系統可能會損壞。
檢查和修復文件系統錯誤
Fsck 通常用於修復損壞的 ext3 或 ext4 文件系統上的錯誤。 要使用 fsck 實用程序,您必須首先確保已卸載分區。 如果您嘗試在分區上運行 fsck 命令而不卸載它,您將收到錯誤消息並且您的進程將中止。 該過程完成後,您可以再次掛載文件系統。
如果您不確定設備名稱,請使用 df 命令、lsblk 或 fdisk (fdisk -l) 來查找它。
$ sudo df -h
使用 unmount 命令避免造成任何文件系統損壞。
句法:
$ sudo umount [filesystem]
您可以將 -p 選項與 fsck 實用程序一起使用,以自動修復可以在沒有用戶干預的情況下安全解決的任何問題。
句法:
$ sudo fsck -p [Filesystem]
例如:
$ sudo umount /dev/sdc
$ sudo fsck -p /dev/sdc
輸出:
$ sudo fsck -p /dev/sdc
fsck from util-linux 2.34
exfatfsck 1.3.0
Checking file system on /dev/sdc.
File system version 1.0
Sector size 512 bytes
Cluster size 128 KB
Volume size 55 GB
Used space 4 MB
Available space 55 GB
Totally 1 directories and 3 files.
File system checking finished. No errors found.
檢查和修復後,請確保掛載磁盤。
修復根文件系統錯誤
因為不能卸載根機器,所以 Fsck 不能檢查錯誤。 但是,您可以在恢復模式下運行 fsck。
通過在救援模式下重新啟動機器,您可以運行 fsck。 您可以使用以下步驟運行 fsck 來修復根系統文件錯誤。
Enter 啟動菜單並在重新啟動期間選擇“高級選項”。
從高級選項菜單中選擇“恢復模式”,然後從下拉菜單中選擇“fsck”。

將彈出一個消息窗口,詢問您是否要重新安裝 / 文件系統。 選擇選項“是”。

通過選擇“恢復”選項,您現在可以恢復正常啟動。


fsck 選項
fsck 實用程序提供了用於特定目的的選項列表。 一些有用的 fsck 選項是:
1. 執行 fsck 空運行 – 這將執行測試運行。
fsck -N /dev/sdc
2. 以非交互方式運行 – 對所有問題回答“是”,這將避免所有提示
fsck -y /dev/sdc
3. 直接打印 fsck Error 到 Stdout 無需修復
fsck -n /dev/sdc
4. 在所有文件系統上運行 fsck
fsck -AR
-R 將跳過根文件系統,因為它無法在正在運行的機器上卸載
5. 為特定的文件系統運行 fsck
fsck 命令是一個包裝器,在內部使用相應的文件系統檢查器命令(fsck.*
)。 您可以找到以下各種 fsck 檢查器命令,例如 fsck.ext2、fsck.ext3、fsck.ext4 等)。
# cd /sbin
# ls fsck*
fsck fsck.cramfs fsck.ext2 fsck.ext3 fsck.ext4 fsck.minix fsck.xfs
下表顯示了 fsck 命令的所有選項。
選項 | 描述 |
-一個 | 檢查 /etc/fstab 中存在的所有文件系統 |
-C | 顯示進度條 |
-F | 強制檢查文件系統 |
-l | 鎖定設備 |
-M | 不檢查掛載的文件系統 |
-N | 不執行任何操作打印輸出 |
-P | 並行檢查多個文件系統 |
-p | 自動修復任何可以安全解決的問題,無需用戶交互 |
-R | 與 -A 一起使用時不檢查根文件系統 |
-r | 打印每個已檢查設備的統計信息 |
-T | 不顯示標題 |
-t | 指定要檢查的文件系統類型(這可以使用 man 命令) |
-v | 提供詳細的輸出 |
-Y | 對所有問題假設“是” |
fsck 選項
fstab 是一個文件,它指導操作系統如何以及在哪里安裝分區。 您可以通過使用 /etc/fstab 打開 fstab 文件中的條目列表。
示例 /etc/fstab 文件:
<filesystem> <mount point> <type> <options> <dump> <pass>
/dev/sda / ext4 errors=remount-ro 0 1
/dev/sdb none swap sw 0 0
/dev/sdc /mnt/data ext4 defaults,noatime,nofail 0 2
結論
在本教程中,我們學習瞭如何在 Linux 中使用 fsck 命令來檢查和修復文件系統。 你可以參考 fsck 手冊頁 以獲得更完整的描述。