Linux环境下如何修复GRUB引导故障

一、Linux启动的顺序

1. BIOS阶段
 2. Grub 阶段
 3. 内核引导阶段
 4. init 进程 与 rc.sysinit 执行阶段 
 5. 特定级别的服务启动阶段 
 6. rc.local   执行的阶段
 7. 打开tty终端 并且 运行  login 程序阶段,执行登录的账号密码检测。
 8. Bash 程序 读取 相关的环境变量配置文件阶段。
 9. 获得完整的 shell 环境,启动完成

二、Linux详细启动过流程

在这里插入图片描述
GNU GRUB(GRand Unified Bootloader简称“GRUB”)是一个来自GNU项目的多操作系统启动程序。GRUB是多启动规范的实现,它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统。GRUB可用于选择操作系统分区上的不同内核,也可用于向这些内核传递启动参数

当 “/boot/grub/grub.conf” 配置文件丢失,或者关键配置出现错误,或者MBR记录中的引导程序遭到破坏时,Linux主机启动后可能只会出现 “grub>” 的提示符,无法完成进一步的系统启动过程。

关于引起GRUB故障的简单说明

  • 引起故障的原因:
    • MBR中的GRUB程序遭到破坏
    • grub.conf文件丢失,引导配置有误
  • 故障现象:
    • 系统引导停滞,显示 “grub>” 提示符
  • 解决思路:
    • 尝试手动输入引导命令
    • 进入紧急模式,从备份文件中恢复grub.conf

二、修复GRUB引导故障

这个实验之前应该参考“Linux环境下MBR简介,如何修复MBR扇区故障”添加新硬盘sdb,并对新硬盘进行分区。

(1)查看系统中的grub.conf配置文件;

在这里插入图片描述在这里插入图片描述
(注:建议保存红色圈内的内容,title…initrd…,因为修复时方法二需要手动输入如下内容)

title Red Hat Enterprise Linux (2.6.32-431.el6.x86_64)
	root (hd0,0)
	kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=UUID=4988ef15-49d4-4559-b70a-4a8a9bf9cbc5 rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=128M LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet
	initrd /initramfs-2.6.32-431.el6.x86_64.img

此次实验是为了模拟GTUB引起故障,所以我们需要先将grub.conf进行备份,在破坏了grub.conf文件时,尝试用备份进行修复。

(2)备份grub.conf文件(建议备份到第2块磁盘中)

*[root@root ~]# mkdir /sdb1
[root@root ~]# mount /dev/sdb1 /sdb1
[root@root ~]# cp /boot/grub/grub.conf /sdb1/grub.conf.bak
*

在这里插入图片描述

(3)模拟破坏grub.conf文件

命令:rm -rf /boot/grub/grub.conf

在这里插入图片描述

(4)进行修复的方式主要有两种:
  • 进入紧急模式,从备份中恢复grub.conf
  • 尝试手动输入引导命令
方法一:进入急救模式,从备份中恢复grub.conf

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
RHEL6.5光盘引导,进入急救模式(第3项)

在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述从备份文件中恢复grub.conf文件

命令:fdisk -l(可看到sda,sdb设备)

在这里插入图片描述

  • mkdir /sdb1(在急救模式下的虚拟磁盘中建立sdb1分区的挂载点目录)
  • mkdir /sda1(创建sda1分区的挂载点目录)
  • mount /dev/sdb1 /sdb1
  • mount /dev/sda1 /sda1
  • cp /sdb1/grub.conf.bak /sda1/grub/grub.conf

在这里插入图片描述
重新启动虚拟机

在这里插入图片描述并按F10进行保存!!!

在这里插入图片描述
登录系统后,可以发现grub.conf已经存在在/boot/grub目录中,GRUB引导故障已经成功修复;

在这里插入图片描述

方法二:尝试手动输入引导命令

grub> root (hd0,0)(指定引导分区/boot,(hd0,0) 对应为 /dev/sda1)

grub> kernel  /vmlinuz... ro root=/dev/... rhgb quiet(指定内核文件所在的路径、根分区所在的设备位置)

grub> initrd  /initrd-...(指定引导过程中使用的缓存盘镜像文件位置)

grub> boot(启动进入系统)

在这里插入图片描述
进入系统后:从备份文件中恢复grub.conf文件

mkdir /backup

cp /backup/grub.conf.bak /boot/grub/grub.conf

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值