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、将光盘插入光驱
   2、进入系统修复摸式在boot: 输入linux rescue 进入光盘救援模式 
   3、chroot /mnt/sysp_w_picpath
  
三、修复过程记录
       
   1、执行chroot后,光盘将原有系统挂载,实际切换到原有linux系统
   2、查看现象
     #cd /boot  进入到boot目录
     #ls   使用ls命令后发现已经没有内容,原有内核文件和其他文件已经不存在
 
   3、排除思路
    
     1、修复kerner 
       1)、 卸载原有kernel
           #rpm -e kernel --nodeps
     2、重新安装kernel
        1)、 首先挂载光盘
           #mount  /dev/cdrom /opt 挂在光盘成功,如果没有/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、重启一切正常