使用fsck修複檔案系統錯誤
1、問題描述
伺服器maint_samba
由于伺服器maint_samba (debian作業系統)沒有正常關機,在重新啟動過程中/dev/sdb1出現檔案系統錯誤,需要手動使用fsck進行掃描和修複。出現如下情況:
…...
Checking file systems ...fsck 1.41.3(12-OCT-2008)
/dev/sdb1 contains a file system with errors check forced
/dev/sdb1: |========== 百分數%
……
/dev/sdb1: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY (i.e.,without -a or -p options)
fsck died with exit status4
……
……/var/log/fsck/fsck ---fsck報錯日志的存放位置
……
Warning
……
Press enter for maintenance
(or type Control-D to continue): --- Ctrl+d繼續啟動伺服器。
2、手動fsck修複
2.1 fsck簡介
fsck不僅可以對檔案系統進行掃描,還能修正檔案系統的一些問題。值得注意的是fsck 掃描檔案系統時一定要在單使用者模式、修複模式或把裝置umount後進行。
警告:如果掃描運作中的系統,會造成系統檔案損壞。
檔案系統掃描工具有 fsck,fsck.ext2,fsck.jfs,fsck.msdos,fsck.vfat,fsck.ext3,fsck.reiserfs(reiserfsck)。其中fsck 預設支援檔案系統ext2,如果想支援ext3檔案系統的掃描,應該加-j 參數。最好是根據不同的檔案系統來調用不同的掃描工具,比如ext3的檔案系統使用fsck.ext3,ext2檔案系統使用fsck.etx2等。
/dev/sdb1是ext3的檔案系統,隻介紹fsck.ext3
fsck.ext3
[文法]
fsck.ext3[必要參數][選擇參數][裝置代号]
[功能]
fsck.ext3 指令:
針對ext3型檔案系統進行檢測
[執行權限]
超級使用者普通使用者
[參數]
必要參數
-a 非互交模式,自動修複
-c 檢查是否存在有損壞的區塊。
-C<反叙述器> fsck.ext3指令會把全部的執行過程,都交由其逆向叙述,便于監控程式
-d 詳細顯示指令執行過程
-f 強制進行檢查
-F 檢查檔案系統之前,先清理該儲存裝置塊區内的資料
-l<損壞區塊檔案> 把檔案中所列出的損壞區塊,加入标記
-L<損壞區塊檔案> 清除所有損壞标志,重新标記
-n 非互動模式,把欲檢查的檔案系統設成隻讀
-P<數字> 設定fsck.ext2指令所能處理的inode大小為多少
-r 互動模式
-R 忽略目錄
-s 順序檢查
-S 效果和指定“-s”參數類似
-t 顯示fsck.ext2指令的時序資訊。
-v 顯示詳細的處理過程
-y 關閉互動模式
選擇參數
-b<分區第一個磁區位址> 指定分區的第一個磁區的起始位址/Super Block
-B<區塊大小> 設定該分區每個區塊的大小
-I設定欲檢查的檔案系統,其inode緩沖區的區塊數目
-V顯示版本資訊
[參考範例]
範例1: 檢測磁盤
[[email protected] test]# fsck.ext3 /dev/fd0
範例2: 檢測磁盤并顯示時序資訊
[[email protected] test]# fsck.ext3 -ft /dev/fd0
2.2 伺服器maint_samba使用fsck.ext3對檔案系統進行修複過程
2.2.1檢視fsck報錯的日志
fileserver:~# 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
這兩個檔案中會出現fsck的報錯資訊。
fileserver:~# more /var/log/fsck/checkfs
fileserver:~# more /var/log/fsck/checkroot
2.2.2檢視目前的運作級别:
fsck.ext3掃描檔案系統時一定要在單使用者模式、修複模式或把裝置umount後進行。如果掃描運作中的系統,會造成系統檔案損壞。
選擇在單使用者模式下運作
# runlevel ---檢視運作級别
fileserver:~# runlevel
N 2
#init 1 --單使用者模式(1 S),在轉換成單使用者模式時可能會需要輸入root密碼。
fileserver:~# init 1
2.2.3使用fsck.ext3對檔案系統進行掃描、修複
fileserver:~# fsck.ext3 -y /dev/sdb1 ---開始進入掃描、修正檔案系統
注意紅色方框,該位置需要輸入yes
fsck.ext3開始進入掃描、修正檔案系統,這個過程時間比較長,中間有數次停頓的過程,隻需等待即可,千萬不要以為當機而重新開機伺服器。
fsck.ext3掃描、修正完檔案系統後,根據提示可能需要重新開機系統。如果沒有提示重新開機系統,也需要reboot來重新開機系統。
fileserver:~# reboot ---重新開機系統
在重新開機系統的過程中,fsck會對檔案系統進行掃描,如下:
fsck掃描完以後,會啟動到系統的登入界面,不需要進行任何幹涉。
再次重新啟動系統,系統可以正常啟動。
至此伺服器maint_samba使用fsck修複檔案系統完成。