boot目錄檔案丢失修複
一、故障現象
1、重新開機後進入grub> 提示符 ,或error 15
2、按常理判斷,執行
grub> root (hd0,0)
grub> kernel /vm +tab鍵 ,出現error 15 ,file not found ,确定核心檔案已經不存在
grub> initrd /init +tab鍵 出現error 15 ,file not found ,以初步确定檔案已經不在
二、修複摸式
1、将CD光牒插入光驅
2、進入系統修複摸式在boot: 輸入linux rescue 進入CD光牒救援模式
3、chroot /mnt/sysimage
三、修複過程記錄
1、執行chroot後,CD光牒将原有系統挂載,實際切換到原有linux系統
2、檢視現象
#cd /boot 進入到boot目錄
#ls 使用ls指令後發現已經沒有内容,原有核心檔案和其他檔案已經不存在
3、排除思路
1、修複kerner
1)、 解除安裝原有kernel
#rpm -e kernel --nodeps
2、重新安裝kernel
1)、 首先挂載CD光牒
#mount /dev/cdrom /opt 挂在CD光牒成功,如果沒有/dev/cdrom ,可能 是/dev/hdc ,還一下就可以挂載了。
#cd /opt/Server
#ls |grep kernel
#rpm -ivh kernel-2.6.18+tab補全
安裝kernel完成,現在ls /boot下面有關核心的檔案都已經存在 ( 注意redhat6版本, 會少一個initramfs- .img檔案,
可以執行dracut -f 指令生成, redhat5版本,可以使用mkinitrd指令生成。)
3、修複grub
#cd /boot
正常情況下在 /boot 下有一個grub的目錄,現在沒有了,需要修複
執行:
#grub-install /dev/sda 看實際情況 ,完成後在看/boot目錄,grub目錄也有了,一些檔案也有了,但是,grub.conf檔案沒有了
這個需要手動寫一個出來
#cd grub
#touch grub.conf
添加 default=0
title redhat 5.5
root (hd0,0)
kernel /vmlinuz-2.6.18-194.el5 ro root=LABEL=/ 如果不确定根在那裡,可以檢視/etc/fstab檔案
initrd /initrd-2.6.18-194.el5.img
實際情況在/etc/目錄下也有一個grub的檔案,給連結一個過去
#rm -rf /etc/grub.conf
#ln -s /boot/grub/grub.conf /etc/grub.conf
4、基本修複完成,現在可以重新啟動系統了 ,重新開機系統後發現啟動了後,立刻重新開機,又有新的問題了。
5、進入但使用者模式,或者也可以進入到修複模式。
編輯/etc/rc.local檔案,發現有一個開機啟動項,将其删除,重新開機。
6、啟動圖形,發現圖形啟動不了,初步想到/tmp是否沒空間,或者權限問題。在rhel6的系統,沒有問題,可以啟動,但是會報錯。
進入單使用者模式,檢視/tmp目錄
#cd /
#ls -l 發現tmp目錄權限為d---------
正常的/tmp目錄為777權限,有一個t權限位
修改一下
#chmod 777 /tmp
#chmod o+t /tmp
7、重新開機一切正常
本文轉自zhaoyun00 51CTO部落格,原文連結:http://blog.51cto.com/zhaoyun/812322