Linux基礎命令—e2fsck

一生有你llx發表於2018-11-01

ex2fsck

      檢查ext2、ext3、ext4檔案系統,如果系統已經掛載了,那麼不建議去檢查,因為這樣是不安全的。此命令的適用範圍:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。

 

1、語法

      e2fsck  [-pacnyrdfkvtDFV]  [-b superblock]  [-B  blocksize] [-l|-L bad_blocks_file ]  [-C fd]  [-j external-journal]  [-E extended_options ]  device

      裝置是儲存檔案系統的裝置檔案(例如/dev/hdc 1)。

 

2、選項列表

選項

說明

-a | -p

自動修復檔案系統

-b superblock

指定塊大小。不要使用普通的超級塊,而是使用由superblock指定的替代超級塊。此選項通常在主超級塊損壞時使用。備份超級塊的位置取決於檔案系統的塊大小。對於具有1k塊的檔案系統,可以使用備份超級塊。在塊8193處找到;對於具有2k塊的檔案系統,在塊16384處找到;對於4k塊在塊32768處找到。

其他備份超級塊可以通過使用mke2fs程式使用-n選項列印出建立超級塊的位置來確定。mke2fs的-b選項必須指定檔案系統的塊大小,以便列印出準確的超級塊位置。

如果指定了另一個超級塊,並且檔案系統不是隻讀的,e2fsck將確保主超級塊在完成檔案系統檢查後得到適當更新。

-B blocksize

正常情況下,e2fsck將在不同塊大小下搜尋超級塊,以試圖找到適當的塊大小。在某些情況下,此搜尋可能會被愚弄。此選項迫使e2fsck只嘗試在特定塊大小上定位超級塊。如果找不到超級塊,e2fsck將以致命錯誤結束。

-c

此選項會導致e2fsck使用badblock(8)程式對裝置執行只讀掃描,以查詢任何壞塊。如果發現任何壞塊,則將它們新增到壞塊inode中,以防止將它們分配給檔案或目錄。如果指定了該選項兩次,則將使用無損讀寫測試完成壞塊掃描。

-C fd

此選項導致e2fsck將完成資訊寫入指定的檔案描述符,以便監視檔案系統檢查的進度。執行e2fsck的程式通常使用此選項。如果檔案描述符號為負數,則將使用檔案描述符的絕對值,而進度資訊最初將被抑制。之後,可以通過向e2fsck程式傳送SIGUSR 1訊號來啟用它。如果指定的檔案描述符為0,e2fsck將在其業務進行時列印一個完成欄。這要求e2fsck在視訊控制檯或終端上執行。

-d

顯示除錯資訊

-D

優化檔案系統中的目錄。此選項導致e2fsck嘗試優化所有目錄,如果檔案系統支援目錄索引,則通過重新索引這些目錄,或者對較小目錄的目錄進行排序和壓縮,或者使用傳統的線性目錄對檔案系統進行排序和壓縮。即使沒有-D選項,e2fsck有時也可能優化幾個方向。例如,如果啟用目錄索引,並且目錄沒有索引,或者索引結構被破壞並需要重建,則會受益。-D選項強制對檔案系統中的所有目錄進行優化。它們較小,搜尋速度稍快,但實際上,您不需要使用此選項。-D選項將檢測單個目錄中具有重複名稱的目錄項,由於效能原因,e2fsck通常不強制執行。

-E extended_options

設定e2fsck擴充套件選項。擴充套件選項是逗號分隔的,可以使用等於(‘=’)號進行引數設定。

ea_ver=extended_attribute_version,在檢查檔案系統時,設定e2fsck所需的擴充套件屬性塊的版本。版本號可能是1或2。預設的擴充套件屬性版本格式是2。

fragcheck,在傳遞1期間,為檔案系統中的檔案列印任何不連續塊的詳細報告。

discard,在進行完整的檔案系統檢查後,嘗試丟棄空閒塊和未使用的inode塊。

nodiscard,不要試圖丟棄空閒塊和未使用的inode塊。這個選項與discard選項正好相反。此設定為預設設定。

-f

強制檢查

-F

在開始檢查之前,清空緩衝區

-I file

指定檔案中的塊新增在損壞列表

-j file

設定檔案系統在日誌檔案的路徑

-k

當與-c選項相結合時,壞塊列表中的任何現有壞塊將被保留,而通過執行badblocks (8)發現的任何新壞塊將被新增到現有的壞塊列表中。

-l filename

將檔名指定的檔案中所列的塊號新增到壞塊的列表中。此檔案的格式與badblocks (8)程式生成的格式相同。請注意,塊號是基於檔案系統的塊大小。因此,對e2fsck使用-c選項更簡單、更安全,因為它將確保將正確的引數傳遞給badblock程式。

-L filename

將壞塊列表設定為檔名指定的塊列表。(此選項與-l選項相同,除非在將檔案中列出的塊新增到壞塊列表之前清除壞塊列表。)

-n

開啟檔案系統只讀,並假設對所有問題的答案為“no”。允許非互動地使用e2fsck。此選項不能與-p或-y選項同時指定。

-p

自動修復(“preen”)檔案系統。此選項將導致e2fsck自動修復任何不需要人工干預就能安全修復的檔案系統問題。如果e2fsck發現可能需要系統管理員採取額外糾正措施的問題,e2fsck將列印問題的描述,然後以程式碼4退出。(請參閱退出程式碼部分。)此選項通常由系統的引導指令碼使用。它不能與-n或-y選項同時指定。

-r

不執行任何操作,提供向後的相容性

-S

交換檔案系統的位元組順序

-t

列印e2fsck的時間統計資訊。如果使用此選項兩次,則附加的時間統計資訊將按傳遞方式列印。

-v

顯示執行的詳細過程

-V

顯示命令版本號,並且退出

-y

所有的互動回話都回答yes,此選項不能與-n或-p選項同時指定。

 

3、說明

      e2fsck用於檢查ext 2/ext 3/ext 4系列檔案系統。對於使用日誌的ext 3和ext 4檔案系統,如果系統在沒有任何錯誤的情況下被不乾淨地關閉,通常在日誌中重播提交的事務之後,檔案系統應該標記為乾淨。因此,對於使用日誌的檔案系統,e2fsck通常會重播日誌並退出,除非它的超級塊表明需要進一步檢查。

      請注意,通常在掛載的檔案系統上執行e2fsck是不安全的。唯一的例外是指定了-n選項,並且沒有指定-c、-l或-L選項。然而,即使這樣做是安全的,如果掛載了檔案系統,e2fsck列印的結果也是無效的。

 

4、返回值

      e2fsck可以返回以下值:

    0,沒有錯誤。

    1,檔案系統錯誤更正。

    2,檔案系統錯誤更正,系統應該重啟。

    4,檔案系統錯誤沒有更正。

    8,操作錯誤。

    16,語法錯誤。

    32,使用者取消了操作。

    128,共享庫錯誤

 

5、訊號

  對e2fsck傳送以下訊號,併產生相應的結果:

    SIGUSR1,此訊號導致e2fsck開始顯示完成欄或發出進度資訊。(見對-C選項的討論。)

    SIGUSR2,此訊號導致e2fsck停止顯示完成欄或發出進度資訊。。

 

6、例項

以只讀的方式檢查sda1

[root@localhost ~]# e2fsck  -n /dev/sda1

e2fsck 1.41.12 (17-May-2010)

Warning!  /dev/sda1 is mounted.             //檔案系統已經掛載,因此會有警告

Warning: skipping journal recovery because doing a read-only filesystem check.      //以只讀的方式執行,不去修復

/dev/sda1: clean, 39/128016 files, 49152/512000 blocks

     

相關文章