centos 7 GRUB2 修复

linux 7的grub2目录 /boot/grub2, 用来加载kernel,提取initramfs镜像中的FS和硬件驱动。如果损坏了,就无法引导系统。这里我们来讨论下,grub2目录丢失和grub.cfg文件丢失的情况,处理方法不一样,注意区分。

grub2目录丢失

手工删除grub2目录
# rm -rf /boot/grub2/

然后重启,之后进入了grub rescue>模式,但是不能识别命令,还是要进救援模式:

进入救援模式,需要挂盘

切换到根目录

# chroot /mnt/sysimage
相当于直接把系统盘挂载到根目录,而不是之前的/mnt/sysimage

使用grub2-install命令修复grub

查看一下是否修复

修复grub配置文件

此时/boot/grub2下已生成grub.cfg文件。

退出exit并重启系统,看看是否正常。

grub.cfg配置文件丢失

删除grub.cfg
# rm -rf /boot/grub2/grub.cfg

然后重启系统,会进入grub命令行,并不能进入系统

手动引导进入系统

引导步骤
grub> insmod xfs
查看所有磁盘分区信息
grub> ls
(hd0),(hd0,msdos1),(hd0,msdos2)
设置分区
grub> set root=(hd0,msdos1)   (----> 这个为你上一步中找到的boot分区)

设置内核文件
grub> linux16 /vmlinuz-xxxxx root=/dev/mapper/centos-root

设置initramfs镜像
grub> initrd16 /initramfs-.xxxxx.img

grub> boot

xxxxx为系统版本os,例如 3.10.0-1062.el7.x86_64

如果没问题,则这个时候系统会正常启动。

修复grub.cfg

进入系统,发现grub.cfg还是没有。接下来我们创建一个

# grub2-mkconfig -o /boot/grub2/grub.cfg

操作完成之后,重启确认。

至此,修复GRUB2完成。

举报
评论 0