fsck 檢查或者修複指定的文件系統,可以是設備名、掛載點,還可以是一個ext2的label,或者是一個UUID。此命令的適用範圍:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。 1、語法 fsck [選項] –t systype device fsc ...
fsck
檢查或者修複指定的文件系統,可以是設備名、掛載點,還可以是一個ext2的label,或者是一個UUID。此命令的適用範圍:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。
1、語法
fsck [選項] –t systype device
fsck [-sAVRTMNP] [-C [fd]] [-t fstype] [filesys...] [--] [fs-specific-options]
2、選項列表
選項 |
說明 |
-s |
檢查的序列。如果有多個文件系統需要檢查,那麼按照順序來操作。註意:e2fsck(8)預設以交互模式運行。要使e2fsck(8)在非互動式模式下運行,必須指定-p或-a選項,如果希望自動更正錯誤,則必須指定-n選項。 |
-t fslist |
指定要檢查的文件系統的類型。當指定-A標誌時,只檢查與fslist匹配的文件系統。fslist參數是以逗號分隔的文件系統和選項說明符列表。這個逗號分隔的列表中的所有文件系統都可能以否定操作符“no”或“!”作為首碼,該操作符要求只檢查fslist中未列出的文件系統。如果fslist中的所有文件系統都不以否定操作符作為首碼,那麼將只檢查fslist中列出的文件系統。 選項說明符可能包含在逗號分隔的fslist中。它們必須具有“opts=s-option”的格式。如果存在選項說明符,那麼只有在“/etc/fstat”的掛載選項欄位中包含s-option的文件系統才會被檢查。如果選項說明符以否定操作符為首碼,那麼只有那些沒有fs-option的文件系統才會被選中。在它們的掛載選項欄位“/etc/ffstab中”將被檢查。例如,如果“opts=ro”出現在fslist中,那麼只會檢查“/etc/fstab”中列出的帶有ro選項的文件系統。 為了相容Mandrake發行版,它的引導腳本依賴於對fsck程式的未經授權的ui更改,如果在fslist中找到了一個文件系統類型的迴圈,就會將它視為將opts=loop指定為-t選項的參數。 通常,文件系統類型是通過在“/etc/fstab”文件中搜索文件並使用相應的條目來推斷的。如果無法推斷該類型,並且只有一個文件系統作為-t選項的參數,fsck將使用指定的文件系統類型。如果該類型不可用,則使用預設的文件系統類型(當前Ext 2)。 |
-A |
遍歷“/etc/fstab”文件,並嘗試在一次運行中檢查所有文件系統。此選項通常來自“/etc/rc”系統初始化文件,而不是用於檢查單個文件系統的多個命令。除非指定了-P選項(見下文),否則將首先檢查根文件系統。之後,將按照“/etc/fstab”文件中fs_passno(第六個)欄位指定的順序簽入文件系統。跳過fs_passno值為0的文件系統,將檢查fs_passno值大於零的文件系統。如果有多個文件系統具有相同的通行號,fsck將嘗試並行地檢查它們,儘管它將避免在同一個物理磁碟上運行多個文件系統檢查。 fsck不與任何其他設備並行檢查堆疊設備。因此,在“/etc/fstab“文件中非常常見的配置是將根文件系統設置為fs_passno值為1,並將所有其他文件系統設置為fs_passno值為2。如果由於某種原因需要避免多個文件系統檢查並行運行,則選擇不使用此配置。例如,如果有問題的機器記憶體不足,因此過多的分頁會引起關註。 fsck通常不會在調用文件系統的檢查器之前檢查設備是否實際存在。因此,如果文件系統特定的檢查器返回致命錯誤,則不存在的設備可能導致系統在引導期間進入文件系統修複模式。“/etc/fstab”掛載選項不會失敗,可以讓fsck跳過不存在的設備。fsck還跳過具有特殊文件系統類型AUTO的不存在設備。 |
-C [fs] |
顯示檢查的進度。顯示支持這些文件系統檢查程式的完成/進度條(目前只用於ext 2和ext 3)。Fsck將管理文件系統檢查器,以便它們中一次只顯示一個進度條。gui前端可以指定文件描述符fd,在這種情況下,進度條信息將發送到該文件描述符。 |
-M |
不要檢查已安裝的文件系統,並返回安裝文件系統的退出代碼0。 |
-N |
不執行檢查操作,只是演示一下 |
-P |
設置-A標誌時,與其他文件系統並行檢查根文件系統。這不是世界上最安全的事情,因為如果根文件系統懷疑e2fsck(8)可執行文件可能被破壞了!這個選項主要是為那些不希望將根文件系統重新劃分為小型和緊湊(這是真正正確的解決方案)的系統管理員提供的。 |
-R |
當使用-a標誌檢查所有文件系統時,跳過根文件系統 |
-T |
啟動時不要顯示標題 |
-V |
顯示執行過程 |
fs-specific-options |
fsck不理解的選項被傳遞給特定於文件系統的檢查器。這些參數不能使用參數,因為fsck無法正確猜測哪些參數可以選擇選項,哪些參數不能。後面的選項和參數被視為要傳遞給文件系統特定檢查器的文件系統特定選項。 請註意,fsck的設計並不是為了將任意複雜的選項傳遞給特定於文件系統的檢查器。如果您正在做一些複雜的事情,請直接執行特定於文件系統的檢查程式。如果您傳遞fsck一些非常複雜的選項和參數,並且它沒有按照您的預期執行,那麼就不要將它報告為bug。你幾乎肯定在做一些不該用fsck做的事。 不同文件系統特定fsck的選項沒有標準化。如果有疑問,請查閱文件系統特定檢查器的手冊頁。雖然沒有保證,但大多數文件系統檢查程式都支持下列選項 |
-a |
自動修複文件系統。請註意e2fsck(8)只支持向後相容。此選項映射到e2fsck的-p選項,與某些文件系統檢查器支持的-a選項不同,該選項是安全的。 |
-n |
對於某些特定於文件系統的檢查程式,-n選項將導致fs特定的fsck避免試圖修複任何問題,但只需將此類問題報告給stdout。然而,並不是所有特定於文件系統的檢查程式都是如此。特別是,如果給定該選項,fsck.reiserfs(8)將不會報告任何損壞。fsck.minix(8)根本不支持-n選項。 |
-r |
以交互方式修複文件系統(請求確認)。註意:如果多個fsck並行運行,使用此選項通常是個壞主意。還請註意,這是e2fsck的預設行為;它僅出於向後相容性的原因支持此選項。 |
-y |
對於某些特定於文件系統的檢查程式,-y選項將導致fs特定的fsck總是試圖自動修複任何檢測到的文件系統損壞。有時專家可能能夠更好地手動驅動fsck。請註意,並非所有特定於文件系統的檢查程式都實現了此選項。特別是fsck.minix(8)和fsck.lamfs(8)不支持-y選項。 |
3、說明
如果命令行上沒有指定任何文件系統,並且沒有指定-A選項,fsck將預設為串列地檢查/etc/fstat中的文件系統。fsck指令可以有以下的返回值:
0,沒有錯誤。
1,文件系統錯誤更正。
2,系統應該重啟。
4,系統錯誤沒有更正。
8,操作錯誤。
16,語法錯誤。
32,用戶取消fsck。
128,共用庫錯誤。
檢查多個文件系統時返回的退出代碼是所檢查的每個文件系統的退出代碼的逐位OR。
實際上,fsck只是linux下可用的各種文件系統檢查器(fsck.fstype)的前端。文件系統特定的檢查器首先在/sbin中搜索,然後在/etc/fs和/etc中搜索,最後在PATH環境變數中列出的目錄中搜索。
4、環境變數
fsck的執行收到以下環境變數的影響:
1)FSCK_FORCE_ALL_PARALLEL,如果設置了此環境變數,fsck將嘗試並行運行所有指定的文件系統,而不管文件系統是否位於同一設備上。(這對於RAID系統或高端存儲系統(如IBM或EMC等公司銷售的存儲系統)非常有用。)請註意,fs_passno值仍被使用。
2)FSCK_MAX_INST,這個環境變數將限制一次運行的文件系統檢查器的最大數量。這允許具有大量磁碟的配置避免fsck一次啟動過多的文件系統檢查器,這可能會使系統上可用的CPU和記憶體資源超載。為零,則可以生成無限數量的進程。這是當前的預設情況,但未來版本的fsck可能會嘗試根據從操作系統收集會計數據自動確定可以運行多少個文件系統檢查。
3)PATH,PATH環境變數用於查找文件系統檢查器,首先搜索一組系統目錄:/sbin、/sbin/fs.d、/sbin/fs、/etc/fs和/etc/fs,然後搜索路徑環境中的一組目錄。
4)FSTAB_FILE,這個環境變數允許系統管理員覆蓋/etc/fstab文件的標準位置,對於正在測試fsck的開發人員也很有用。
5、實例
檢查sdb4
|