FSCK(8)

NAME
fsck - 檢查並修復Linux文件系統

總覽 SYNOPSIS
fsck [ -sACVRTNP ] [ -t fstype ] [filesys ... ] [--] [ fs-specific-options ]

描述 DESCRIPTION
fsck 通常用來檢查並適當修復一個或多個Linux文件系統. filesys 可以是一個設備名(例如: /dev/hdc1, /dev/sdb2), 一個掛載點(例如: /, /usr, /home), 或一個ext2文件系統的磁盤標籤, 也可以是UUID指定符(例如: UUID=8868abf6-88c5-4a83-98b8-bfc24057f7bd 或 LABEL=root). 通常， fsck 會試着以並行的方式同時在不同的物理磁盤上運行文件系統檢查，這樣可以減少對所有文件系統進行檢查的時間。

如果沒有在命令行指定文件系統，並且沒有指定 -A 選項， fsck 將默認順序地檢查 /etc/fstab 中登記的文件系統。這和使用 -As 選項是相同的。

fsck 退出的返回值是下列情況之和：
    0    - 沒有錯誤
    1    - 文件系統有錯但已修復
    2    - 系統應當重啓
    4    - 文件系統錯誤沒有修復
    8    - 運行錯誤
    16    - 用法或語法錯誤
    32    - 用戶撤銷了fsck 操作
    128    - 共享庫出錯
當檢測多個文件系統時，退出的返回值是對每個文件系統檢查的返回值按位或的結果。

實際上， fsck 只是Linux 中不同的文件系統檢查器(fsck.fstype)的一個前端。首先，它在 /sbin 中搜索特定文件系統的檢查器，然後在 /etc/fs 和 /etc 中搜索，最後在 PATH 環境變量中列出的路徑中搜索。請查看特定文件系統的檢查器的手冊頁來獲取細節信息。

選項 OPTIONS

-s  順序地進行 fsck 操作。如果你要檢查多個文件系統，並且檢查器運行在交互模式，這樣作比較有好處。(注意: e2fsck(8) 默認是以交互方式運行的。要使 e2fsck(8) 以非交互方式運行，你必須指定 -p 和 -a 選項，如果你想要自動糾正錯誤，或 -n 選項，如果不想自動糾正錯誤。)

-t fslist
    指定要檢查的文件系統的類型。當指定了 -A 標誌時，只有 fslist 中列出的類型的文件系統會被檢查。 fslist 參數是一個以逗號分隔的文件系統類型列表以及選項說明符。可以在這個以逗號分隔的列表的所有文件系統前面加上否定前綴 'no' 或 '!' 來使得只有沒有列在 fslist 中的文件系統將被檢查。如果並非 fslist 中列出的所有文件系統都加上了否定前綴，那麼只有 fslist 中列出的文件系統將被檢查。

    選項說明符也可能包含在這個以逗號分隔的列表 fslist 中。它們的格式是 opts=fs-option 。如果出現了選項說明符，那麼只有在 /etc/fstab 中它們的掛載選項字段中不包含 fs-option 的文件系統將被檢查。 如果選項說明符有否定前綴，那麼只有在 /etc/fstab 中它們的掛載選項字段中包含 fs-option 的文件系統將被檢查。

    例如，如果 fslist 中出現了 opts=ro 那麼只有 /etc/fstab 中，掛載選項包含 ro 的文件系統將被檢查。

    爲了和Mandrake 發行版兼容(它的啓動腳本依賴於一個未經許可而對 fsck 程序用戶接口作出的改變)，如果 fslist 中有一個 loop 文件系統，它被視爲指定了 opts=loop 作爲 -t 選項的參數。

    一般地，文件系統類型是在 /etc/fstab 中通過搜索與 filesys 相應的條目得到的。如果不能這樣推知類型，並且 -t 選項只有一個文件系統參數， fsck 將使用指定的文件系統類型。如果不能使用這種類型，將使用默認的文件系統類型(當前是ext2)。

-A  搜索 /etc/fstab 文件，一次檢查所有在文件中有定義的文件系統。這個選項典型地用在 /etc/rc 系統初始化文件中，而不使用多條命令來分別檢查各獨立的分區。

    如果沒有使用 -P 選項，則根文件系統將第一個被檢查。之後，將按 /etc/fstab 文件中第六字段 fs_passno 指定的順序對各文件系統進行檢查。 fs_passno 值爲0 的文件系統將被跳過，不會被檢查。 fs_passno 值大於0 的文件系統將被按順序檢查， fs_passno 值最小的文件系統將被最先檢查。 如果多個文件系統有相同的pass號，fsck將試着並行處理這些文件系統，儘管它不允許在同一個物理磁盤上同時運行多個文件系統檢查程序。

    因此， /etc/fstab 文件中的一個很普遍的設置是將root文件系統的 fs_passno 設爲1，定義其它文件系統的 fs_passno 爲2。這樣就充許 fsck 程序自動以並行的方式運行文件系統檢查， 如果這樣有好處的話。系統管理員可能會出於某些原因而不希望並行運行多個文件系統檢查--例如，如果內存不夠，那麼過多的換頁會成爲系統瓶頸。

-C  如果文件系統檢查器支持的話(當前只有ext2)，顯示進度條。fsck 將管理各文件系統檢查器，使得同一時間它們中只能有一個可以顯示進度條。

-N  不執行，僅僅顯示將執行的操作。

-P  當設置了 -A 標誌時，將並行檢查root文件系統和其他文件系統。這樣是世界上最不安全的做法，因爲如果root文件系統有問題， e2fsck(8) 這樣的程序可執行文件將被破壞！這個選項是爲不想把root 文件系統分得小而緊湊(這纔是正確的做法)的系統管理員準備的。

-R  當使用 -A 標誌來檢查所有文件系統時，跳過root文件系統 (它可能已經被掛載爲可讀寫)。

-T  啓動時不顯示標題。

-V  產生冗餘輸出，包含所有被執行的特定文件系統的命令。

fs-specific-options
    fsck 不理解的選項被傳遞給特定文件系統的檢查器。這些選項 決不能 有參數，因爲 fsck 不能判斷出哪個選項有參數，那些沒有。

    以 -- 引導的選項和參數將被當作特定文件系統的選項傳給它的檢查器。

    注意 fsck 沒有爲傳遞任意複雜的選項給特定文件系統的檢查器而專門設計。如果你要做複雜的操作，請直接執行特定文件系統的檢查器。如果你傳給 fsck 極其複雜的選項和參數，它沒有按照你想要的那樣工作， 不要把它報告爲一個bug！ You're almost certainly doing something that you shouldn't be doing with fsck.

當前，標準的特定文件系統的選項仍在改進之中。儘管不能保證，還是有下列這些選項可以被大部分文件系統檢查器所支持。

-a  不提問，自動修復文件系統(請小心使用此選項)。注意 e2fsck(8) 支持 -a 僅僅是爲了向前兼容。這個選項被映射到 e2fsck 的 -p 選項，那比較安全一點，不像大多數文件系統檢查器支持的 -a 那樣。

-r  交互式地修復文件系統錯誤(詢問確認)。注意: 如果多個 fsck 在並行執行，這不是一個好想法。還要注意 e2fsck 的默認行爲；它也只爲了向前兼容才保留這個選項。

作者 AUTHOR
Theodore Ts'o (tytso@mit.edu)

文件 FILES
/etc/fstab

環境變量 ENVIRONMENT VARIABLES
fsck 程序的行爲受下列環境變量影響：

FSCK_FORCE_ALL_PARALLEL
    如果設置了這個環境變量， fsck 將試着並行運行所有指定的文件系統檢查，不管這些文件系統是不是在同一設備上。(這對於RAID系統或者高端存儲系統比如IBM或者EMC出售的那種很有用)

FSCK_MAX_INST
    這個環境變量將限制同時可以運行的文件系統檢查器的最大數量。這樣使得擁有大量磁盤的系統避免 fsck 一次啓動過多文件系統檢查器，那樣有可能耗盡機器的CPU和內存資源。如果值爲0，可以孵化出沒有限制的數量的進程，這是當前的默認值。將來版本的 fsck 將試着根據收集操作系統的統計數據，自動判斷應當啓動多少文件系統檢查。

PATH
    PATH 環境變量用來查找文件系統檢查器。一些系統目錄會被最先搜索： /sbin, /sbin/fs.d, /sbin/fs, /etc/fs, 和 /etc. 然後才搜索 PATH 環境變量中設置的目錄集合。

FSTAB_FILE
    這個環境變量允許系統管理員指定 /etc/fstab 文件的位置。它也爲 fsck 的開發者做測試之用。

參見 SEE ALSO
fstab(5), mkfs(8), fsck.minix(8), fsck.ext2(8) 或者 e2fsck(8), fsck.xiafs(8).

[中文版維護人]
袁乙鈞 <bbbush@163.com>

[中文版最新更新]
2003.11.01

《中國linux論壇man手冊頁翻譯計劃》:
http://cmpp.linuxforum.net

跋
本頁面中文版由中文 man 手冊頁計劃提供。
中文 man 手冊頁計劃：https://github.com/man-pages-zh/manpages-zh