CENTOS7 系统启动故障修复方法

时间:2024-03-05 14:42:30
grub损坏一般有两种情况:第一、安装双系统时,后安装的系统把先安装的系统的MBR删除了。第二、误操作将grub文件删除了。

一、 MBR删除处理
A. 先备份MBR,有可能是MBR问题,但可以不是,先备份总是没有错的。
dd if=/dev/sda of=/var/mbr.bak count=1 bs=512
B. 进入到救援模式后,先使用chroot /mnt/sysimage进入到实根下。
C. 接着使用grub-install接着使用grub-install /dev/sda(或者 grub2-install root-directory=/mnt/sysimage /dev/sda)修复MBR引导记录,
D. 最后exit退出实根,并使用reboot重启。


二、 如果grub配置文件丢失处理,
grub配置丢失后,开机后会直接进入grub界面:

A. grub>:ls
(hd0,1),(hd0,5),(hd0,3),(hd0,2)

B. 查看/boot 是否单独分区
a.如果/boot没有单独分区,用以下命令:
ls (hd0,X)/boot/grub2

b.如果/boot单独分区,则用下列命令:
ls (hd0,X)/grub2

例如:
grub > ls (hd0,msdos1)/grub2
会有如下的输出:
 -grub2  grub  grub.cfg  i386-pc ...

C. 手动引导进入系统

引导步骤如下:

grub> insmod xfs
grub> set root=(hd0,msdos1)   (----> 这个为你上一步中找到的boot分区)
grub> linux16 /vmlinuz-xxxxx root=/dev/mapper/centos-root
grub> initrd16 /initramfs-.xxxxx.img
grub> boot

D. 修复grub配置文件

上面已经进入到系统了,这个时候可以查看/boot/grub2/grub.cfg文件,应该是空的。可以通过如下命令来修复grub 。
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
有时候使用sudo grub2-mkconfig命令已经识别了Windows系统,但是就是没有更新grub2的配置文件/boot/grub2/grub.cfg。那就多加一个参数-o

三、 从U盘进入救援模式:
#浪潮M5服务器,建议采用16G或者8G的U盘,否则进入rescue模式后,不识别U盘。
A. 开机设置从U盘启动
B. 进入到U盘的安装操作系统界面
C. 选择‘Troubleshooting’,按回车进入选项;
D. chroot /mnt/sysimage
   ls /boot
   mkdir /boot/grub2
   grub2-mkconfig -o /boot/grub2/grub.cfg
   grub2-install  /dev/sda
   exit
   reboot
   
三、 /boot目录被破坏后的修复
操作步骤:
 1. rm -rf /boot/* (仅测试,正常服务器不建议此操作)
 2. reboot
 3. 以光盘启动引导系统 (在进入虚拟机的瞬间按下F2)
 4. chroot /mnt/sysimage
 5. mount /dev/sr0 /mnt
 6. rpm -ivh /mnt/Packages/kernel-3.10.0-693.e17.x86_64.rpm.rpm --force
 7. ls /boot
 8. grub2-install /dev/sda
 9. grub2-mkconfig -o /boot/grub2/grub.cfg
 10. exit
 11.reboot
 12. 以光盘启动引导系统 (在进入虚拟机的瞬间按下F2,将修改的还原)
 13.重启即可