用光碟救援模式進入壞掉的CentOS系統
我這邊使用VirtualBox架設CentOS的時候,時常遇到開機程序無法順利進行的問題。雖然可以進入單機維護模式,但卻不能透過網路將檔案拿出來。後來發現可以用CentOS光碟的Linux救援模式來開機,並順利進入原本應該是壞掉的系統中,而且居然還可以順利開啟網頁服務來使用,就像是在原本的系統一樣。
當然,這並不是完整的解決方案,而只是我還在研究如何修復中的一個發現的筆記而已。
問題敘述
上述的問題都是在開機過程中進入到「Checking filesystems」的步驟時出現「e2fsck: aborted [FAILED]」 的錯誤訊息,然後出現以下訊息:
*** 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): _
雖然可以輸入root密碼進入維護模式,但是因為不能用網路,所以還要找其他的方法來取出檔案,對我來說是比較麻煩的。
於是我嘗試使用CentOS 5 Final的光碟來修復看看。
從光碟進入救援模式(rescue)
從CentOS 5 Final光碟中看到的畫面如上。如果要進入救援模式(rescue mode),我們可以先按 <F5>看一下說明。
簡單來說,輸入「linux rescue」並按下 <ENTER>就可以進入救援模式。
救援模式設定
進入救援模式之後,會有幾項設定需要確認:
操作語言。用英文最穩啦,沒有亂碼問題。
鍵盤配置。台灣通常都是用美規的「us」。
是否要啟動網路,選擇「Yes」。
網路的相關配置。按<TAB>切換操作項目,移到「OK」進入下一步。
掛載原本系統
是否掛載原本的檔案系統到「/mnt/sysimage」。選擇「Continue」吧。
掛載完成之後,你就可以用「chroot /mnt/sysimage」指令進入原本的root環境。
進入原本系統
接著進入到了指令列,輸入「chroot /mnt/sysimage」 吧。
雖然系統沒有回應,但現在你已經是以root身分進入原本的系統中,而各種服務都可以正常使用。
啟動DSpace服務
以我在實驗室常用的DSpace來說,你可以透過以下指令來啟動DSpace:
sh-3.1# export JAVA_HOME=/usr/java/jdk1.6.0_06
sh-3.1# /opt/apache-tomcat-6.0.16/bin/startup.sh
sh-3.1# /etc/init.d/postgresql start
同理,要啟動SSH也可以輸入以下指令:
sh-3.1# service sshd start
就跟在原本系統一樣操作。
小結:救援模式只是應急的技巧
儘管用這種方式可以啟動網頁服務,至少大致上看起來是沒問題,不過畢竟不是長久之道。
我本來想試著用upgrade升級原本系統,可是失敗了。現在試著在救援模式中用fsck –y /dec/VolGroup00/LogVol00來修復看看,目前仍在跑,但我覺得成功機率應該不大。
最後的方法就是先在救援模式中取出必要的檔案,然後再架一台同樣環境但可以正常運作的機器,把檔案復原回去吧。