Redhat Enterprise 5的系統故障的極端情況主要包括grub設定檔丟失,fstab分區掛載表丟失及/boot系統引導目錄被刪除的故障的恢複.
一 .Grub設定檔丟失的故障恢複:
Grub設定檔一般指/boot/grub/grub.conf檔案,該檔案指示了系統引導時要從哪個
分區去載入核心及記憶體鏡像(RAMDISK)檔案,該檔案的丟失將使電腦啟動時在grub配置
介面中卡住.
解決該檔案丟失需要管理員記住grub.conf的基本配置資訊,比如:
[root@localhost ~]# cat /etc/grub.conf
default=0 #預設載入第幾個系統,從0起算
timeout=5 #啟動時停留在Grub配置介面中的時間
splashimage=(hd0,0)/grub/splash.xpm.gz #Grub的背景圖片
hiddenmenu #是否隱藏菜單
title Red Hat Enterprise Linux Server (2.6.18-8.el5) #作業系統的標題
root (hd0,0) #作業系統的引導分區
kernel /vmlinuz-2.6.18-8.el5 ro root=LABEL=/ rhgb quiet #設定載入的核心 initrd /initrd-2.6.18-8.el5.img #設定載入
的記憶體磁碟檔案
解決方案:
1在系統啟動的grub配置環境中敲入如下幾條語句;
root (hd0,0)
kernel /vmlinuz-2.6.18-8.el5 ro root=LABEL=/ rhgb quiet
initrd /initrd-2.6.18-8.el5.img
2 再敲入boot 啟動;
3 去/boot/grub/中做一個grub.conf檔案(檔案內容就是剛才顯示的內容),
或者把備份的grub檔案恢複一份為grub.conf;此後系統重啟後即可正常引導;
二 fstab分區掛載表丟失的故障恢複:
fstab檔案位於/etc/fstab,該檔案指示了系統在啟動後要怎麼裝載系統磁碟分割,像系統的幾個
重要系統磁碟分割如/,/boot,/home,swap分區都要通過fstab讓系統去掛載,該檔案丟失的話系統
掛載過程會出錯,雖然在RedhatLinux Enterprise 5中fstab丟失系統仍可啟動至圖
形介面(如果有安裝的話),但是在切入到命令列介面即會出錯
解決方案:
A 如有系統可以啟動並可以使用命令的話,手工做一份fstab放入/etc即可,但fstab比較難
記,管理員先前最好要有備份,將備份檔案拷貝為/etc/fstab即可.
B 如果系統不能啟動,要依靠系統光碟片的救援模式,按照如下步驟解決:
1 放入Redhat系統光碟片,設定從光碟片引導,並且進入救援模式(敲入linux rescue);
2 findfs LABEL=/ 來尋找原來/目錄所掛載的分區名;
3 進入/mnt/sysimage/etc目錄,如果fstab有備份的話將其恢複(如mv fstab.bak fstab),如果
沒有,請自己做一個fstab;如果用chroot /mnt/sysimage將當前根目錄設定為磁碟中的根目錄
(否則當前根目錄在光碟片中),此時進入/etc目錄,如果fstab有備份的話將其恢複
4 敲入reboot或敲入兩次exit並命出光碟片重啟即可;
三 /boot系統引導目錄被刪除的故障恢複
/boot目錄中存放有grub.conf及系統引導用的核心及記憶體磁碟檔案,該目錄被刪除一般會
導致grub配置介面都沒有使用,並有提示 error15,解決方案還只能依靠系統光碟片的救援模式.
我們來考查最糟糕的一種情況,就是/boot目錄被刪除的同時,fstab也被刪除了,此時要怎麼恢
複?
系統先前環境:
系統假設安裝有linux與winxp
其中/dev/sda8掛載在/boot目錄下
/dev/sda9掛載在/目錄下
/dev/sda12掛載於/home目錄下
且/home目錄中備份有kernel-2.6.18-8.el5.i686.rpm(該檔案用於安裝系統核心,極為重要,建議管理員備份一個,在系統光碟片中也
有),fstab,grub.conf檔案
以下是系統grub.conf的配置:
default=1
timeout=5
splashimage=(hd0,7)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux Server (2.6.18-8.el5)
root (hd0,7)
kernel /vmlinuz-2.6.18-8.el5 ro root=LABEL=/ rhgb quiet
initrd /initrd-2.6.18-8.el5.img
title Other
rootnoverify (hd0,0)
chainloader 1
解決方案:
1 放入系統硬碟,設定從光碟片啟動,敲入linux rescue進入救援模式;
2 此時是光碟片無法自動掛載/分區到/mnt/sysimage,要手工掛載;
用findfs LABEL=/ 找到原來/分區所掛載的分區,比如為/dev/sda9,同樣的找到
原來/home,/boot對應的分區/dev/sda12,/dev/sda8
mount /dev/sda9 /mnt/sysimage 掛載/
mount /dev/sda8 /mnt/sysimage/boot 掛載/ (註:也可不掛載)
mount /dev/sda12 /mnt/sysimage/home 掛載/home
3 chroot /mnt/sysimage切換到原系統的根分區,否則是光碟片上的分區;
4 比如管理員在/home目錄下有fstab的備份,此時要把/home下的備份fstab拷貝到/etc/fstab,沒有的話請自己配一下;重啟;
5 再次進入光碟片救援模式,chroot /mnt/sysimage切換到原系統的根分區,
6 去/home目錄,並安裝kernel-2.6.18-8.el5.i686.rpm
rpm -ivh kernel-2.6.18-8.el5.i686.rpm --root=/ --force
7 此時可以查看/boot目錄,已經安裝了核心檔案與檔案系統檔案
vmlinuz-2.6.18-8.el5
initrd-2.6.18-8.el5.img
8 安裝grub: grub-install /dev/sda
9 把/home下的grub.conf拷貝到/boot/grub/grub.conf,沒有的話請自己配一下;
10 reboot或兩次exit重啟,並拿出光碟片即可啟動;
本文出自 “Linux Study” 部落格