redhat8 rhel8 启动grub损坏修复

环境:redhat8.4 RHEL8.4

服务器:华为G560

问题描述:调整了/etc/default/grub文件,重新生成/boot/grub2/grub.cfg导致机器启动失败,直接进入了rescue模式

解决方案:

启动到如下界面

选择c进入grub命令界面

可以使用ls命令去查看驱动器的情况

  • (hd0) 是第一个硬盘。
  • (hd0,msdos1) 是第一个硬盘上的第一个分区。
  • (hd0,msdos2) 是第一个硬盘上的第二个分区。
  • (hd0,msdos3) 是第一个硬盘上的第三个分区。

一般来说,对于LVM结构磁盘,对应关系如下,这也是我的系统对应关系(这个结构需要根据自己系统情况仔细区分)

  • (hd0,msdos1) 是第一个硬盘上的第一个分区,对应/dev/sda1,也就是系统中文件系统/boot ,启动文件存储的分区 对应的是传统方式部署、启动的系统
  • (hd0,msdos2) 是第一个硬盘上的第二个分区,对应/dev/sda2,也就是系统中文件系统/boot/efi,对应的是UEFI方式部署、启动的系统
  • (hd0,msdos3) 是第一个硬盘上的第三个分区,对应/dev/sda3,也就是系统中其它文件系统,也就是根VG所在的分区

以上的对应关系也可以和同类系统对应

可以用命令详细查看磁盘内具体内容

现在清楚了这些内容,就开始

手动引导启动

首先让引导程序找到启动文件

grub> set root=(hd0,msdos1)

然后加载内核版本到根分区,我的根分区是在sda3里

  • 对于直接磁盘方式安装的话命令如下

grub> linux16 /vmlinuz-4.18.0-305.el8.x86_64 ro root=/dev/sda2

  • 对于LVM结构系统,命令如下

grub> linux16 /vmlinuz-4.18.0-305.el8.x86_64 ro root=/dev/mapper/vgrhel-lvroot

最后加载系统内核镜像

grub> initrd16 /initramfs-4.18.0-305.el8.x86_64.img

grub> boot

以上手工引导,并不能让下次系统能够正常启动。

配置自动启动:

先说明一点结论,千万不要手工编辑/etc/default/grub或者/etc/sysconfig/grub

因为我手工编辑了/etc/default/grub,所以执行如下步骤

  • 删除配置文件

rm /etc/default/grub

  • 重新安装软件包

yum reinstall grub2-tools

  • 重建 grub.cfg 文件以使更改生效

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

  • 重新安装 GRUB在 /boot/ 分区上恢复 GRUB

grub2-install /dev/sda

  • 验证

reboot

以上步骤基于BIOS安装的机器,基于UEFI安装的机器请参考https://docs.redhat.com/zh_hans/documentation/red_hat_enterprise_linux/8/html/managing_monitoring_and_updating_the_kernel/proc_resetting-grub_assembly_reinstalling-grub

相关内容

查看、配置grub使用如下命令:

grubby

还有其它情况的处理步骤,请参考:https://blog.csdn.net/Howei__/article/details/104537757 本文为实际操作后的记录

相关推荐
致奋斗的我们8 天前
RHCE的学习(7)
linux·服务器·网络·学习·redhat·rhce·rhcsa
咕噜Yuki06092 个月前
博睿谷IT认证-订阅试学习
linux·学习·redhat·rhce·红帽认证·ocm认证
不想秃头的烟花2 个月前
Linux安装软件的方法
linux·debian·redhat·软件仓库
JovaZou3 个月前
【ls】Centos/Linux ls命令详细介绍
linux·运维·服务器·centos·redhat
JovaZou3 个月前
【rz & sz】Centos/Linux 如何快捷的上传下载文件到系统当中?
linux·运维·服务器·centos·redhat
JovaZou3 个月前
【pkill & pgrep】Centos/Linux pkill命令详细介绍
linux·运维·服务器·centos·redhat
JovaZou3 个月前
【killall】Centos/Linux killall命令详细介绍
linux·运维·服务器·centos·redhat
疯狂的rabbit.4 个月前
Linux防火墙
linux·运维·服务器·云计算·redhat·rhce·openeular
Sarapines Programmer4 个月前
【VMware】VMware 开启的虚拟机无法联网的解决方案
vmware·解决方案·虚拟机·redhat·网络适配器·联网问题