本次测试用的是centost7,主动删除/boot/grub2/grub.cfg 文件,重启到恢复的过程
1:首先得记录下 根的挂载信息;
2:删除/boot/grub2/grub.cfg 文件,并重启:
3:检查引导界面
4,找到boot分区在那个盘,指定内核,指定initrd文件(.img)
首先在grub > 模式下用ls命令,找到boot系统安装在哪个磁盘分区
根据再步骤1 的图中uuid信息,在此我们可知boot和 / 所在的磁盘信息;
UUID=9cf7a720-a5c5-414c-aa8e-2883498a9f0b 设备(hd0,msdos3) 为 /
UUID=3280b49d-db6f-44fd-b660-693dcfc58456 设备(hd0,msdos1) 为 /boot
如果没有这些设备信息,可使用 ls (X,Y)/grub 命令浏览所有分区,其中 X 代表硬盘号,Y 代表分区号
输出的结果为 splash.xpm.gz 为确定设备的条件,如下图
5:变量设置(通过tab键补全路径)
一共需要设置3步,顺序不能乱,一步也不能少,建议照做;
a.设置boot分区
b.指定Linux内核以及根目录(/)所在分区;vmlinuz作为后面进程管理、内存管理、文件管理、驱动管理、网络管理等使用。
c.initrd命令指定initrd文件(.img); initrd.img,是一个小的映象, 放的是和启动相关的驱动模块。
1. grub> set root=(hd0,msdos1)
2. grub> linux /vmlinuz-3.10.0-1160.95.1.e17.x86_64 ro root=/dev/sda3#root=系统根分区路径或root=UUID=xxxxx
3. grub> initrd /initramfs-3.10.0-1160.95.1.e17.x86_64.img
或
(以上重要的3个步骤希望可以一次性完成,如果设置错误再重新修正设置,可能后面出现Failed to start Switch Root 的错误;如果设置错误建议reboot 后再继续)
6.成功登陆系统,重新生成grub.cfg文件
# grub2-mkconfig -o /boot/grub2/grub.cfg
参考文章:
Centos6/Centos7实现:删除grub配置文件后系统修复,实现进入单用户模式恢复用户密码,实现GRUB加密
grub2详解
开机提示grub可咋办啊
记一次恢复Grub经历|Grub command启动原理浅析(新手向
Linux 系统引导失败,出现 grub rescue 恢复界面