CentOS GRUB损坏修复方法
前言
博客很久没有更新了,一个原因就是原来存放部署博客的环境坏了,硬盘使用的是SSD,只要读取到某个文件,整个磁盘就直接识别不到了,还好博客环境之前有做备份,最近一直没有把部署环境做下恢复,今天抽空把环境做下恢复并且记录一篇基础的GRUB的处理文档
这两天正好碰到GRUB损坏的事,很久前处理过,但是没留下文档,正好现在把流程梳理一下,来解决grub.cfg损坏的情况,或者无法启动的情况
实践步骤
安装操作系统的时候会有多种可能分区的方法,一个直接的分区,一个是用了lvm,本篇将几种分区的情况分别写出来
lvm分区的情况
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 17G 927M 17G 6% /
devtmpfs 901M 0 901M 0% /dev
tmpfs 912M 0 912M 0% /dev/shm
tmpfs 912M 8.6M 904M 1% /run
tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda1 1014M 143M 872M 15% /boot
tmpfs 183M 0 183M 0% /run/user/0
模拟/boot/grub2/grub.cfg的破坏
[root@localhost ~]# mv /boot/grub2/grub.cfg /boot/grub2/grub.cfgbk
[root@localhost ~]# reboot
重启后就会出现这个

使用ls查询当前的分区情况

查询分区情况

可以看到(hd0,msdos1)可以列出/boot里面的内容,可以确定这个就是启动分区
设置root
grub> set root=(hd0,msdos1)
命令后面的路径可以用tab键补全,/dev/mapper/centos-root为根分区,因为当前的分区模式是lvm的
grub> linux16 /vmlinuz-3.10.0-693.el7.x86_64 root=/dev/mapper/centos-root
grub> initrd16 /initramfs-3.10.0-693.el7.x86_64.img
启动
grub> boot
进入系统后重新生成grub.cfg
grub2-mkconfig -o /boot/grub2/grub.cfg
然后重启下系统验证是否好了
一个完整/分区形式
这种情况,整个安装的系统就一个分区,boot是作为/分区的一个子目录的情况
ls 查询分区

设置根分区
grub> set root=(hd0,msdos3)
可以看到上面是msdos3分区对应的就是root=/dev/sda3,下面就设置这个root
设置linux16
grub> linux16 /root/vmlinuz-3.10.0-693.el7.x86_64 root=/dev/sda3
设置initrd16
grub> initrd16 /root/initramfs-3.10.0-693.el7.x86_64.img
启动
grub> boot
进入系统后重新生成grub.cfg
grub2-mkconfig -o /boot/grub2/grub.cfg
然后重启下系统验证是否好了
/分区和/boot分区独立分区的情况

设置根分区
grub> set root=(hd0,msdos1)
根据/分区为msdos2可以知道root分区为/dev/sda2
grub> linux16 /vmlinuz-3.10.0-693.el7.x86_64 root=/dev/sda2
设置initrd16
grub> initrd16 /initramfs-3.10.0-693.el7.x86_64.img
启动
grub> boot
进入系统后重新生成grub.cfg
grub2-mkconfig -o /boot/grub2/grub.cfg
然后重启下系统验证是否好了
总结
主要的处理流程如下:
- 首先通过
ls得到分区的情况 - 通过
set设置/boot所在的分区为root - 分别设置linux16,initrd16并且指定root分区为/分区所在的目录
- 重启后重新生成grub即可
本篇作为一个总结以备不时之需
变更记录
| Why | Who | When |
|---|---|---|
| 创建 | 武汉-运维-磨渣 | 2017-11-30 |
CentOS GRUB损坏修复方法的更多相关文章
- 双系统或三系统:Grub Rescue修复方法
我是在装三系统的时候(1.WIN 7 ,2.Ubuntu 12.04 ,3.CentOS 6.4 ),中间步骤出错,造成引导区覆盖,grub乱掉了. 症状: 开机显示:GRUB loading err ...
- 【转】Grub Rescue修复方法
症状: 开机显示: GRUB loading error:unknow filesystem grub rescue> 原因:已经发现下面几种操作会导致这种问题:1,想删除debian,于是直接 ...
- Grub Rescue修复方法[repost]
From : http://www.2cto.com/os/201111/112327.html 症状:开机显示:GRUB loading error:unknow filesystem grub r ...
- mysql数据损坏修复方法
1.myisamchk使用 myisamchk 必须暂时停止 MySQL 服务器.例如,我们要检修 discuz 数据库.执行以下操作:# service mysql stop (停止 MySQL ) ...
- linux服务器系统盘坏且系统盘为软raid的修复方法
1 需要换新盘的情况 1.1 一块盘grub损坏修复 一块盘grub损坏修复(可通过另一块盘进入系统的情况).更换硬盘的方式,可以热插拔,也可以服务器断电后更换,但如果是热插拔,可能会导致盘符变更.坏 ...
- VNC错误修复⽅方法
VNC错误修复方法 VNC错误描述 vnc viewer开启后弹窗提示 Could not connect to session bus: Failed to connect to socket /t ...
- 旧文备份:硬盘MBR引导记录损坏的一种修复方法
硬盘MBR信息损坏原因:硬盘上安装了windows XP和linux双系统,在windows下安装一套软件,破解的时候修改了硬盘的序列号,结果导致引导系统的grub无法完成linux的引导,只能进到w ...
- 开机出现 grub rescue> 终端模式修复方法
1. 先使用ls命令,找到Ubuntu的安装在哪个分区: grub rescue>ls 会罗列所有的磁盘分区信息,比方说: (hd0),(hd0,msdos3),(hd ...
- win7注册表损坏的修复方法
win7注册表损坏的修复方法 发布时间:2013-07-19 09:31发布者:系统城-小薇浏览数:3129 注册表是window系统中的一个非常重要的数据库,用于存储电脑系统和应用程序的设置信息,我 ...
随机推荐
- pytest文档41-参数化 ids 用例描述为中文时控制台输出unicode编码问题(pytest_collection_modifyitems)
前言 使用 pytest.mark.parametrize 参数化的时候,加 ids 参数用例描述有中文时,在控制台输出会显示unicode编码,中文不能正常显示. 使用 pytest_collect ...
- ABAP 7.55 新特性 (一)
最近几天,SAP S4 2020对应的ABAP 7.55的新版文档已经出现.本文翻译了ABAP SQL之外的更新部分.ABAP SQL的更新比较长,会再之后单独成篇. 译者水平有限,如有错误,请评论指 ...
- abp(net core)+easyui+efcore实现仓储管理系统——出库管理之三(五十一)
abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统--ABP总体介绍(一) abp(net core)+ ...
- spring boot:使接口返回统一的RESTful格式数据(spring boot 2.3.1)
一,为什么要使用REST? 1,什么是REST? REST是软件架构的规范体系,它把资源的状态用URL进行资源定位, 以HTTP动作(GET/POST/DELETE/PUT)描述操作 2,REST的优 ...
- salesforce零基础学习(九十六)项目中的零碎知识点小总结(四)
本篇参考: https://developer.salesforce.com/docs/atlas.en-us.216.0.apexcode.meta/apexcode/apex_classes_ke ...
- 论文学习笔记 - Classifification of Hyperspectral and LiDAR Data Using Coupled CNNs
Classifification of Hyperspectral and LiDAR Data Using Coupled CNNs 来源:IEEE TGRS 2020 下载:https://arx ...
- Spring之IOC/DI(反转控制/依赖注入)_入门Demo
在平时的java应用开发中,我们要实现某一个功能或者说是完成某个业务逻辑时至少需要两个或以上的对象来协作完成,在没有使用Spring的时候,每个对象在需要使用他的合作对象时,自己均要使用像new ob ...
- filezilla pureftpd 读取目录列表失败
放行 21, 39000 - 40000端口
- MFiX做增量编译的时候不要删掉*.mod和*.inc文件
其实之前发现了这个问题,但是没有记录,过了好久又忘了.具体问题是,在做增量编译的之前,都会习惯性地删除多余文件再编译,随手就把*.mod和*.inc这类中间文件也删了,结果修改完代码执行 make - ...
- 数据结构(C++)——顺序栈
顺序栈结构 #include<iostream> #define MaxSize 50 using namespace std; typedef int ElemType; typedef ...