grub2故障举例及修复

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了grub2故障举例及修复相关的知识,希望对你有一定的参考价值。

一、CentOS7/RHEL7启动先从加点自检开始,然后会将控制权交给Bios,BIOS工作完成后会将控制权交给GRUB。GRUB在整个启动流程中起到很大的作用,而GRUB中最重要的就是/boot/grub2/grub.cfg配置文件。启动过程中通过临时修改GRUB可以做很多事,包括修改root密码这种危险操作,所以需要对grub.cfg做一些必要操作。
1、设置grub密码
通过grub2-mkpassword-pbkdf2生成加密密码,并编辑配置文件00_header(注意在RHEL6时我们可以直接修改/boot/grub/grub.conf,如今在RHEL7官方建议修改grub的模板文件,然后将模板文件编译进入grub.cfg)
技术分享图片
技术分享图片
通过模板文件编辑配置
技术分享图片
查看/boot/grub2/grub.cfg,可以看到已经自动将我们对00_header做的配置编译到该文件
技术分享图片
重启后,在开机时想要编辑grub需要输入用户和密码
技术分享图片
2、通过grub修改终端界面的窗体大小。开机后编辑grub配置,在下图位置添加vga=ask,然后按ctrl+x启动
技术分享图片
800X600这个大小看着比较舒服,输入对应十六进制,回车即可
技术分享图片
如果想要永久生效,编辑/etc/default/grub文件即可。注意,如果直接指定大小,需要明确表明340是十六进制,写法是0x340
技术分享图片
通过通过grub2-mkconfig使配置编译到grub.cfg
技术分享图片
3、应急模式。在下图位置,填写s。
技术分享图片
注意:应急模式需要root密码。通过netstat查看当前开放的端口、服务,可以看到为空。
技术分享图片
4、修该root密码。如图,输入
技术分享图片
重新挂载文件系统,改为读写模式,就可以修改了。修改完毕后,需要touch /.autorelabel,否则selinux会影响我们进行的操作。
技术分享图片
5、grub程序故障。
模拟故障
技术分享图片
解决办法:进入救援模式,重新安装grub程序。
首先,进入救援模式
技术分享图片
技术分享图片
技术分享图片
注意:输入df查看当前的文件系统挂载信息。可以看出,我们的boot分区位于/dev/sda1上;通过fdisk -l /dev/sda也可以看到操作系统就安装在该文件系统。所以,我们需要将grub程序安装在/dev/sda1上,完成修复。
进入急救模式,安装grub程序前,需要先切换根环境到/mnt/sysimage。否则是无法安装的,如下。
技术分享图片
6、模拟grub配置文件丢失;内核文件和虚拟文件系统文件丢失。
技术分享图片
重启后,系统直接提示进入救援模式。
技术分享图片
修改BIOS让光盘引导操作系统
技术分享图片
同样进入到/mnt/sysimage根环境中进行操作。挂载系统盘,安装kernel,然后安装grub程序,最后生成grub.cfg配置文件。(三者缺一不可,原因参照其引导过程)
技术分享图片
解决后,我们修改BIOS,将引导顺序改回到磁盘优先。(工作中,为防止有人理由修改BIOS的手段***操作系统,需要设置BIOS密码)
7、MBR扇区故障。
MBR扇区故障,如果没有备份将会是一件很麻烦的事。工作中也应当将MBR扇区进行备份。
备份MBR扇区(备份MBR需要将备份到没有安装操作系统的硬盘上)
技术分享图片
模拟故障
技术分享图片
同样进入救援模式,创建一个目录,将存有MBR备份的分区挂载到该目录,然后即可还原
技术分享图片

以上是关于grub2故障举例及修复的主要内容,如果未能解决你的问题,请参考以下文章

安装Windows与Linux双系统后MBR及GRUB2修复

-Linux系统启动原理及故障排除

CentOS 7中修复GRUB菜单故障实验

CentOS 7中修复GRUB菜单故障实验

Linux中如何修复GRUB引导故障

Linux常见运维故障及处理方法分享(持续更新)