如何在Linux上實現檔案系統的自動檢查和修復?

2021-07-23 16:28:25 字數 1894 閱讀 4687

平常linux管理方面最重要的任務之一就是,檢查檔案系統的完整性。linux檔案系統有可能在各種各樣的情況下受到損壞,比如系統崩潰、突然斷電、磁碟斷開,或者檔案節點(i-node)不小心被覆蓋等等。因此,定期檢查檔案系統的完整性是個好主意,以便盡量減小檔案系統受到損壞的風險。而說到檢查和修復linux檔案系統,fsck是一款實用的工具。

我在本教程中將介紹如何借助fsck工具,實現檔案系統的自動檢查。

系統一啟動,就觸發檔案系統自動檢查機制

如果你希望系統一啟動,就自動觸發fsck,那麼有一些方法可以設定在啟動過程中實現無人值守的fschk,這些方法具體取決於特定的linux發行版。

$ sudo vi /etc/default/rcs 

# 啟動過程中,自動修復出現不一致性的檔案系統

fsckfix

=yes

$ sudo vi /etc/sysconfig/autofsck 

autofsck_def_check

=yes

強制定期檢查檔案系統

如果檔案系統很龐大,你可以強制定期檢查檔案系統,而不是每次系統啟動時檢查檔案系統。為了實現這個操作,先要借助tune2fs命令,找到檔案系統配置。下面這個命令列顯示了檔案系統相關引數的當前值。請注意:/dev/sda1是檔案系統超級塊所在的分割槽。

從tune2fs的輸出結果中,我們不僅可以看到檔案系統的狀態(乾淨與否),還可以看到與檔案系統檢查有關的一些引數。"maximum mount count"(最大掛載次數)這個引數是指檔案系統檢查被觸發後的掛載次數。"check interval"(檢查時間間隔)這個引數顯示了兩次檔案系統檢查之間的最長時間。在大多數linux發行版上,這些引數並不是預設情況下被設定的,這意味著並不進行任何定期的檔案系統檢查。

如果想強制每隔30次掛載就檢查檔案系統,請執行下面這個命令。

$ sudo tune2fs -c 30 /dev/sda1 

如果想強制每隔3個月就檢查檔案系統,請使用下面這個命令。

$ sudo tune2fs -i 3m /dev/sda1 

現在確認剛新增上去的檔案系統檢查條件已正確設定。

$ sudo tune2fs -l /dev/sda1 

. . . 

last mount time:          n/a 

last write time:           fri mar 14 22:29:24 2014 

mount count:             20 

maximum mount count:   30 

last checked:             mon mar  3 20:55:08 2014 

check interval:           7776000 (3 months) 

next check after:          sun jun  1 21:55:08 2014 

強制下一次系統重啟時,進行一次性的檔案系統檢查

如果你想在下一次系統重啟時觸發一次性的檔案系統檢查,可以使用這個命令。

$ sudo touch /forcefsck 

一旦你在類似上面的頂層目錄(/)中建立了乙個名為forcefsck的空檔案,它就會在你下一次重啟時,強制進行檔案系統檢查。系統成功啟動後,/forcefsck則會自動被清除。

如何在Linux上新增或編輯檔案系統的卷標

檔案系統卷標並不是為了linux作業系統正常執行所必需的,但當你有幾個磁碟分割槽時檔案系統卷標可以使你更容易去導航到那些磁碟分割槽。在這篇文章中我將展示如何在ext2,ext3和ext4磁碟分割槽中新增或編輯linux檔案系統卷標。我的上網本裝有3個作業系統 windows xp,linux min...

Linux檔案系統實現

linux檔案管理從使用者的層面介紹了linux管理檔案的方式。linux有乙個樹狀結構來組織檔案。樹的頂端為根目錄 節點為目錄,而末端的葉子為包含資料的檔案。當我們給出乙個檔案的完整路徑時,我們從根目錄出發,經過沿途各個目錄,最終到達檔案。我們可以對檔案進行許多操作,比如開啟和讀寫。在linux檔...

如何在linux系統上安裝 Nginx?

nginx實現功能 反向 真正伺服器不被外部訪問,訪問到的是 伺服器 負載均衡 根據規則景請求分發到指定伺服器上。多台伺服器同時工作,請求傳送到一台伺服器上,伺服器掛了可以將請求轉到另外一台伺服器。安裝步驟teacher版 nginx安裝 tar zxvf nginx 1.8.1.tar.gz ro...