专栏首页磨磨谈CentOS GRUB损坏修复方法

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即可

本篇作为一个总结以备不时之需

本文分享自微信公众号 - 磨磨谈(momotan1987),作者:张鹏

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-11-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • REDHAT 7.5beta 新推出的VDO功能

    VDO的技术来源于收购的Permabit公司,一个专门从事重删技术的公司,所以技术可靠性是没有问题的

    用户2772802
  • Cephfs的快照功能

    Cephfs的快照功能在官网都很少提及,因为即使开发了很多年,但是由于cephfs的复杂性,功能一直没能达到稳定,这里,只是介绍一下这个功能,怎么使用,并且建议...

    用户2772802
  • rbd的image对象数与能写入文件数的关系

    对于这个问题,我原来的理解也是:对象默认设置的大小是4M一个,存储下去的数据,如果小于4M,就会占用一个小于4M的对象,如果超过4M,那么存储的数据就会进行拆分...

    用户2772802
  • Linux 当grub引导故障时该怎么办?

    grub引导的配置文件存放于 /boot/grub2/grub.cfg,当此文件损坏或丢失的话,Linux主机启动后可能只会出现 “grub>” 的提示符,如下...

    小手冰凉
  • 腾讯云六大安全产品介绍

    有利益的地方就有斗争,在互联网这块大蛋糕面前,也少不了网络黑产的参与:恶性竞争带来的雇佣攻击、敲诈勒索、发泄不满……种种原因导致网络安全问题愈演愈烈。

    用户6619056
  • 基于pyenv和virtualenv搭建python多版本虚拟环境

    pyenv简介 由于Python的依赖是基于site的,这对于生产环境来说,是一种简单而正确的方式,然而,对于我们的开发环境,基于这样的管理方式,带来了可怕的第...

    Python中文社区
  • 【干货合集】WannaCry 勒索病毒解读与防护

    近日,勒索软件 WannaCry 感染事件爆发,全球范围99个国家遭到大规模网络攻击,被攻击者电脑的文件被加密,被要求支付比特币以解密文件。腾讯云技术社区「腾云...

    云加社区
  • Fedora28正式版发布:GNOME 3.28使用更优雅

    深受Linux之父 — Linus Torvalds 青睐的 GNU/Linux 发行版 – Fedora 于今天发布了 28.0 正式版。Fedora 28 ...

    Debian社区
  • 如何快速上手Linux操作系统?

    记得当初刚找工作时,面试官问了我很多操作系统方面的知识:你了解操作系统原理吗?Linux 环境会部署吗?底层是怎么实现的?都会哪些 Linux命令?一系列问题把...

    谭庆波
  • Ubuntu: 安装 OMNeT++ 仿真工具

    Note: 在Ubuntu下才需要事先安装这些依赖库。 其他Linux系统不需要,可直接跳至工具安装。

    JNingWei

扫码关注云+社区

领取腾讯云代金券