Scroll to navigation

FSCK(8) System Manager's Manual 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
July 2003 E2fsprogs version 1.34