光碟救援模式(rescue mode)用fsck修復無法啟動的CentOS
光碟救援模式(rescue mode)用fsck修復無法啟動的CentOS
繼今天(實際上是昨天)下午寫的用救援模式暫時進入原本系統的研究,之後在救援模式用fsck花了許多時間修復檔案系統之後,居然順利讓我修復完成並且正常啟動了!
以下就記錄修復的過程。
問題敘述
這個作業系統是CentOS 5 final,提供DSpace服務。
跟前一篇一樣,我要處理的問題都是開機過程「Checking filesystems」時出現「e2fsck: aborted [FAILED]」 錯誤,然後Linux指示以下訊息:
*** An error occurred during the file system check.
*** Dropping you to a shell; the system will reboot
*** when you leave the shell.
Give root password for maintenance
(or type Control-D to continue): _
也許可以在維護模式(maintenance)中進行修復,但我摸了一陣子搞不太定。倒是利用CentOS 5 Final的救援模式,用fsck順利修復了系統本身。
從光碟進入救援模式 (rescue mode)
用光碟開機之後,輸入「linux rescue」就可以進入救援模式。上圖是按下<F5>之後對救援模式的說明。
接著要設定語系、鍵盤與網路。
最後要決定是否掛載原本的系統。因為我們是要修復原本壞掉的系統,所以這邊要選擇「Continue」。
掛載完成,原本的系統被掛載到「/mnt/sysimage/」。
接著會進入指令列模式,可以輸入指令進行操作。
請輸入以下指令,將原本的檔案系統視為根目錄:
sh-3.1# chroot /mnt/sysimage/
試著查詢一下現在的目錄看看吧:
sh-3.1# ls
bin dev halt lost+found mnt pgdb sbin sys var
boot dspace home media net proc selinux tmp
core.15890 etc lib misc opt root srv usr
其他的細節請看前一篇的「從光碟進入救援模式(rescue)」。
利用fsck修復檔案系統
在使用fsck修復之前,必須要先卸載要修復的檔案系統,否則會造成檔案系統毀損。
透過「mount」指令,可以知道要修復的檔案系統「/dev/VolGroup00/LogVol00」掛載在「/」根目錄。現在我們使用「umount」卸載檔案系統:
sh-3.1# umount /
接著就能用「fsck」來修復檔案系統囉,指令如下:
sh-3.1# fsck -y /dev/VolGroup00/LogVol00
記得要加上「-y」選項喔,不然會確認按到累死。
看到以下訊息,就知道fsck開始修復動作了:
fsck 1.39 (29-May-2006)
e2fsck 1.39 (29-May-2006)
/dev/VolGroup00/LogVol00 contains a file system with errors, check forced.
Pass 1: Checking inodes, blocks, and sizes
修復的過程非常久。我的硬碟有2T大小,修復大概也要快兩個小時有吧。總之請耐心等待。
修復完成之後會看到上圖的訊息。
重開機看看,這次就能夠正常運作囉!
小結:能在維護模式下用fsck修復嗎?
雖然透過光碟的救援模式(rescue mode)使用fsck的確能修復檔案系統,但畢竟這還是要片光碟,比較麻煩。不知道能不能在維護模式(maintenance)中就直接使用fsck修復呢?
當然,直接用上述的作法來做,只會收到以下錯誤訊息:
Error allocating icount link information: Memory allocation failed
e2fsck: aborted
到這邊我就不知道該怎麼做才好了。因為時間的限制,我也沒有繼續找下去。未來有機會再繼續研究吧。
(more...)
Comments