fsck---file system check
說明 : 檢查與修復 Linux 文件系統,可以同時檢查一個或多個 Linux 檔案系統。
注意:fsck 掃描文件系統時一定要在單用戶模式、修復模式或把設備umount後進行。如果掃描運行中的系統,會造成系統文件損壞。RHEL6中fsck默認支持文件系統ext4,如果想支持ext3文件系統的掃描,應該加-j 參數。最好是根據不同的文件系統來調用不同的掃描工具,比如ext3的文件系統使用fsck.ext3,ext2文件系統使用fsck -t etx2等。
參數 :-a : 如果檢查有錯則自動修復
-r : 如果檢查有錯則由使用者回答是否修復
-t : 給定檔案系統的型式,若在 /etc/fstab 中已有定義或 kernel 本身已支援的則不需加上此參數
-s : 依序一個一個地執行 fsck 的指令來檢查
-A : 對/etc/fstab 中所有列出來的 partition 做檢查
-C : 顯示完整的檢查進度
-d : 列印 e2fsck 的 debug 結果
-p : 同時有 -A 條件時,同時有多個 fsck 的檢查一起執行
-R : 同時有 -A 條件時,省略 / 不檢查
-V : 詳細顯示模式
執行後的傳回值及代表意義
0 沒有任何錯誤發生。
1 文件系統發生錯誤,並且已經修正。
2 文件系統發生錯誤,並且已經修正。
4 文件系統發生錯誤,但沒有修正。
8 運作時發生錯誤。
16 使用的語法發生錯誤。
128 共享的函數庫發生錯誤。
檢查 ext3 檔案系統的 /dev/sdb3 是否正常,如果有異常便自動修復
[root@justin ~]# fsck -t ext3 -a /dev/sdb3
一般出現以下提示時可以使用fsck命令來修復:
1、無法mount分區;
2、大量文件、目錄丟失,根目錄下生成/LOST+FOUND文件夾,裏面有大量#XXXXXX類的文件和目錄;
3、fsck很快報錯完成;
4、fsck執行時,有大量提示,如修改節點、清0節點等操作
當Linux系統被強行關閉或重新啓動,電腦的檔案系統便有可能受損,系統會自動檢查並修復檔案系統;但當檔案系統未能自動修復,需要手動使用fsck進行掃描和修復。出現如下情況:
…... Checking file systems ...fsck 1.41.3(12-OCT-2008) /dev/sdb5 contains a file system with errors check forced /dev/sdb5: |========== ---進度條 …… /dev/sdb5: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY (i.e., without -a or -p options) fsck died with exit status4 …… ……/var/log/fsck/ ---fsck報錯日誌的存放位置 …… Warning …… Press enter for maintenance (or type Control-D to continue): --- Ctrl+d繼續啓動服務器。
1、查看報錯日誌
[root@justin ~]# ls -l /var/log/fsck/ total 8 -rw-r----- 1 root adm 190 2011-06-09 10:03 checkfs -rw-r----- 1 root adm 192 2011-06-09 10:03 checkroot [root@justin ~]# more /var/log/fsck/checkfs [root@justin ~]# more /var/log/fsck/checkroot
2、查看運行級別
掃描文件系統時一定要在單用戶模式、修復模式或把設備umount後進行。如果掃描運行中的系統,會造成系統文件損壞。
[root@justin ~]# runlevel N 3 [root@justin ~]# init 1 [root@justin ~]#
3、使用fsck對文件系統進行掃描、修復
[root@justin ~]# fsck fsck fsck.ext2 fsck.ext4 fsck.msdos fsck.cramfs fsck.ext3 fsck.ext4dev fsck.vfat [root@justin ~]# fsck.ext4 -y /dev/sdb5 e2fsck 1.41.12 (17-May-2010) /dev/sdb5 已掛載. WARNING!!! The filesystem is mounted. If you continue you ***WILL*** cause ***SEVERE*** filesystem damage. 你真的想要要繼續 (y/n)? y
fsck.ext4開始進入掃描、修正文件系統,這個過程時間比較長,中間有數次停頓的過程,只需等待即可,千萬不要以爲死機而重啓服務器。fsck.ext4掃描、修正完文件系統後,根據提示可能需要重啓系統。如果沒有提示重啓系統,也需要reboot來重啓系統。在重啓系統的過程中,fsck會對文件系統進行掃描。fsck掃描完以後,會啓動到系統的登錄界面,不需要進行任何干涉。再次重新啓動系統,系統可以正常啓動。
e2fsck和fsck.ext2、fsck.ext3、fsck.ext4功能一樣都是檢查和修復文件系統,在檢查之前一定要卸載待檢查的文件系統分區。
主要參數包括:
-a: 檢查 partition,如發現問題會自動修復。
-B size: 指定 size 作爲區塊大小。
-c: 檢查 partition 是否有壞軌。
-C file: 將檢查結果儲存到 file。
-d: 輸出 e2fsck debug 結果。
-f: e2fsck 預設只會對錯誤的檔案系統檢查,加上 -f 是強制檢查。
[root@justin ~]# umount /dev/sdb5 [root@justin ~]# e2fsck -f /dev/sdb5 e2fsck 1.41.12 (17-May-2010) 第一步: 檢查inode,塊,和大小 第二步: 檢查目錄結構 第3步: 檢查目錄連接性 Pass 4: Checking reference counts 第5步: 檢查簇概要信息 /dev/sdb5: 11/131648 files (0.0% non-contiguous), 25432/526113 blocks [root@justin ~]#
案例:
機器斷電或者直接關電源強制重啓後出現以下界面:
提示:Giveroot password for maintenance
(or type Control-D for normal startup):
輸入fsck -y 修復,時間可能比較長,等待修復完成exit退出重啓