如何在Linux上實(shí)現(xiàn)文件系統(tǒng)的自動(dòng)檢查和修復(fù)?
譯文【51CTO精選譯文】平常Linux管理方面最重要的任務(wù)之一就是,檢查文件系統(tǒng)的完整性。Linux文件系統(tǒng)有可能在各種各樣的情況下受到損壞,比如系統(tǒng)崩潰、突然斷電、磁盤斷開,或者文件節(jié)點(diǎn)(i-node)不小心被覆蓋等等。因此,定期檢查文件系統(tǒng)的完整性是個(gè)好主意,以便盡量減小文件系統(tǒng)受到損壞的風(fēng)險(xiǎn)。而說(shuō)到檢查和修復(fù)Linux文件系統(tǒng),fsck是一款實(shí)用的工具。
我在本教程中將介紹如何借助fsck工具,實(shí)現(xiàn)文件系統(tǒng)的自動(dòng)檢查。
系統(tǒng)一啟動(dòng),就觸發(fā)文件系統(tǒng)自動(dòng)檢查機(jī)制
如果你希望系統(tǒng)一啟動(dòng),就自動(dòng)觸發(fā)fsck,那么有一些方法可以設(shè)置在啟動(dòng)過(guò)程中實(shí)現(xiàn)無(wú)人值守的fschk,這些方法具體取決于特定的Linux發(fā)行版。
在Debian、Ubuntu或Linux Mint上,編輯/etc/default/rcS,如下所示。
- $ sudo vi /etc/default/rcS
# 啟動(dòng)過(guò)程中,自動(dòng)修復(fù)出現(xiàn)不一致性的文件系統(tǒng)
- FSCKFIX=yes
在CentOS上,使用下列內(nèi)容,編輯/etc/sysconfig/autofsck(要是它沒(méi)有,就創(chuàng)建)。
- $ sudo vi /etc/sysconfig/autofsck
- AUTOFSCK_DEF_CHECK=yes
強(qiáng)制定期檢查文件系統(tǒng)
如果文件系統(tǒng)很龐大,你可以強(qiáng)制定期檢查文件系統(tǒng),而不是每次系統(tǒng)啟動(dòng)時(shí)檢查文件系統(tǒng)。為了實(shí)現(xiàn)這個(gè)操作,先要借助tune2fs命令,找到文件系統(tǒng)配置。下面這個(gè)命令行顯示了文件系統(tǒng)相關(guān)參數(shù)的當(dāng)前值。請(qǐng)注意:/dev/sda1是文件系統(tǒng)超級(jí)塊所在的分區(qū)。
- $ sudo tune2fs -l /dev/sda1
從tune2fs的輸出結(jié)果中,我們不僅可以看到文件系統(tǒng)的狀態(tài)(干凈與否),還可以看到與文件系統(tǒng)檢查有關(guān)的一些參數(shù)。"Maximum mount count"(***掛載次數(shù))這個(gè)參數(shù)是指文件系統(tǒng)檢查被觸發(fā)后的掛載次數(shù)。"Check interval"(檢查時(shí)間間隔)這個(gè)參數(shù)顯示了兩次文件系統(tǒng)檢查之間的最長(zhǎng)時(shí)間。在大多數(shù)Linux發(fā)行版上,這些參數(shù)并不是默認(rèn)情況下被設(shè)置的,這意味著并不進(jìn)行任何定期的文件系統(tǒng)檢查。
如果想強(qiáng)制每隔30次掛載就檢查文件系統(tǒng),請(qǐng)運(yùn)行下面這個(gè)命令。
- $ sudo tune2fs -c 30 /dev/sda1
如果想強(qiáng)制每隔3個(gè)月就檢查文件系統(tǒng),請(qǐng)使用下面這個(gè)命令。
- $ sudo tune2fs -i 3m /dev/sda1
現(xiàn)在確認(rèn)剛添加上去的文件系統(tǒng)檢查條件已正確設(shè)置。
- $ 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
強(qiáng)制下一次系統(tǒng)重啟時(shí),進(jìn)行一次性的文件系統(tǒng)檢查
如果你想在下一次系統(tǒng)重啟時(shí)觸發(fā)一次性的文件系統(tǒng)檢查,可以使用這個(gè)命令。
- $ sudo touch /forcefsck
一旦你在類似上面的頂層目錄(/)中創(chuàng)建了一個(gè)名為forcefsck的空文件,它就會(huì)在你下一次重啟時(shí),強(qiáng)制進(jìn)行文件系統(tǒng)檢查。系統(tǒng)成功啟動(dòng)后,/forcefsck則會(huì)自動(dòng)被清除。
原文鏈接:http://xmodulo.com/2014/03/automatic-filesystem-checks-repair-linux.html