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.重启即可