环境: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 本文为实际操作后的记录

redhat8 rhel8 启动grub损坏修复的更多相关文章

  1. CentOS GRUB损坏修复方法

    前言 博客很久没有更新了,一个原因就是原来存放部署博客的环境坏了,硬盘使用的是SSD,只要读取到某个文件,整个磁盘就直接识别不到了,还好博客环境之前有做备份,最近一直没有把部署环境做下恢复,今天抽空把 ...

  2. CentOS 6 各种启动文件损坏及修复

    stage1 mbr的破坏和恢复 清空mbr 前446字节 dd if=/dev/zero of=/dev/sda bs=1 count=446 如果没有挂载启动光盘,会显示这样 如果启动前挂载了光盘 ...

  3. Ubuntu grub引导修复

    通过USB启动盘安装系统时将引导程序指定到/dev/sdb1,正常应该是指定到/dev/sdb才是,导致安装之后启动不起来. 重新通过USB启动盘进入试用界面,然后打开终端通过如下操作进行grub引导 ...

  4. SQL Server 损坏修复

    目录: 一. 常见错误解读 二. DBCC CHECKDB 三 .不同部位损坏的应对 四. Database Mirroring和AlwaysOn的页面自动修复功能 一 常见错误解读 SQL Serv ...

  5. 【转】Grub Rescue修复方法

    症状: 开机显示: GRUB loading error:unknow filesystem grub rescue> 原因:已经发现下面几种操作会导致这种问题:1,想删除debian,于是直接 ...

  6. 双系统或三系统:Grub Rescue修复方法

    我是在装三系统的时候(1.WIN 7 ,2.Ubuntu 12.04 ,3.CentOS 6.4 ),中间步骤出错,造成引导区覆盖,grub乱掉了. 症状: 开机显示:GRUB loading err ...

  7. Grub Rescue修复方法[repost]

    From : http://www.2cto.com/os/201111/112327.html 症状:开机显示:GRUB loading error:unknow filesystem grub r ...

  8. 07 oracle 归档模式 inactive/current redo log损坏修复--以及错误ORA-00600: internal error code, arguments: [2663], [0], [9710724], [0], [9711142], [], [], [], [], [], [], []

    07 oracle 归档模式 inactive/current redo log损坏修复--以及错误ORA-00600: internal error code, arguments: [2663], ...

  9. MySQL数据库INNODB 表损坏修复处理过程

    MySQL数据库INNODB 表损坏修复处理过程 博客分类: mysql tomcatmysql  最近mysql数据库经常死掉,用命令net stop mysql命令也无法停掉,关闭Tomcat的时 ...

  10. linux操作系统故障处理-ext4文件系统超级块损坏修复

    linux操作系统故障处理-ext4文件系统超级块损坏修复   背景 前天外面出差大数据测试环境平台有7台服务器挂了,同事重启好了五台服务器,但是还有两台服务器启动不起来,第二天回来后我和同事再次去机 ...

随机推荐

  1. 呼吁 《上海市卫生健康“信息技术应用创新白皮书》改正 C# 被认定为A 组件是错误认知

    近日,<上海市卫生健康"信息技术应用创新"白皮书>(以下简称<白皮书>)正式发布,介绍了"医疗信创核心应用适配方法.公立医院信息系统及全民健康信息 ...

  2. Java开发者的神经网络进阶指南:深入探讨交叉熵损失函数

    前言 今天来讲一下损失函数--交叉熵函数,什么是损失函数呢?大体就是真实与预测之间的差异,这个交叉熵(Cross Entropy)是Shannon信息论中一个重要概念,主要用于度量两个概率分布间的差异 ...

  3. Simple WPF: WPF 透明窗体和鼠标事件穿透

    一个自定义WPF窗体的解决方案,借鉴了吕毅老师的WPF制作高性能的透明背景的异形窗口一文,并在此基础上增加了鼠标穿透的功能.可以使得透明窗体的鼠标事件穿透到下层,在下层窗体中响应. 这个方法不一定是制 ...

  4. ubuntu16.04 安装 eclips c/c++

    前言 最近需要在ubuntu16上使用eclips编译c,尝试了apt安装和官网最新包安装甚至应用商店安装,效果都不太理想,现在把我的安装方法记录一下. 正文 !!!前提,已经自己配置好了java8的 ...

  5. LVGL一键打包图片工具,全部图片打包成一个bin文件,支持nor flash XIP模式下直接访问数据显示

    最近做工程项目,需要用到LVGL,但是搜了很长时间没有看到合适的图片打包工具,大多都是生成数组或者单个的bin文件,这样烧录到nor flash很麻烦 后来看到一篇博客,博主的想法与我类似,不过他后面 ...

  6. JavaSE 计算2个List集合中的交集、差集、并集、去重并集

    VideoOrder.java 重写里面的equals和hashCode方法 class VideoOrder { private int price; private String title; p ...

  7. Kolla-ansible部署openStack

    目录 Kolla-ansible部署openStack 1. 简介 2. 环境准备 3. 部署 3.1 基础环境配置 3.1.1 配置主机名,所有节点操作,这里以openstack01为例 3.1.2 ...

  8. SQL去重distinct方法解析

    来源:https://www.cnblogs.com/lixuefang69/p/10420186.html SQL去重distinct方法解析 一 distinct 含义:distinct用来查询不 ...

  9. Display、Visibility 和 Opacity 的区别

    <style> .d1{ display: none; } .d2{ visibility: visible; } .d3{ opacity: 0; } </style> &l ...

  10. BigDecimal的精度与刻度

    BigDecimal是Java中用于高精度算术运算的类.当您需要精确地处理非常大或非常小的数字时,例如在金融计算中,它特别有用.由于众所周知得原因,Double这种类型在某些情况下会出现丢失精度的问题 ...