在使用Linux的过程中,难免会出现开机提示grub >而无法启动,可能是系统中/boot/grub文件丢失等原因造成的,当出现此问题的时候只要系统分区没有格式化一般是可以修复的,下面就以虚拟 机为例,删除/boot分区,在linux救援模式下重新修复:

实验使用的系统为Centos 6.5 x86_64

1、删除boot分区:会导致gurb和linu内核丢失,然后重启:

此时系统重启后已经完全无法再次启动,如下:

2、使用光盘镜像引导系统,并选择救援模式启动:

提示将系统挂载至/mnt/sysimage:

2、将根切换至之前的系统:

3、创建光盘挂载目录并挂载光盘:

4、安装kerner包,会生成/boo目录以及内核及initramfs

5、修复grub,首先要查看一下自己的磁盘分区情况,以确认grub安装在那个磁盘上:

为第一块磁盘安装grub引导:

6、确认geub目录已经生成:

此时系统仍然无法正常启动,因为确认grub.conf文件,可以尝试重启看一下界面:

5、在grub界面指定kernel和initramfs所在路径启动,可以操作的命令有:

grub>kernel 内核文件     //设置内核文件的路径

grub>initrd  镜像文件名  //设置镜像路径

grub>boot               //启动指定操作系统

grub>help               //获取帮助

grub>reboot             //重启系统

grub>md5-crypt         //生成口令的MD5密文

grub>setup (hdx[,y])    //安装GURB到MBR/指定分区的引导扇区中

grub>hide 分区       //隐藏分区

grub>cat 文件名      //显示文件内容

grub>find 文件名     //查找文件

grub>rootnoveify (hdx,y)  //设置根设备所对应的分区,但不检查加载点

grub>chainloader  文件名 //加载指定的文件

在此指定linux内核和initramfs文件路径,并启动linux系统:

注:

grub>  root (hd0,1)  #是说跟分区在第一块硬盘的第二个分区

grub>  kernel /boot/vmlinuz-2.6.32-431.el6.x86_64 ro root=/dev/sda2 #指明内核路径和根分区

grub>  initrd  /boot/initramfs-2.6.32-431.el6.x86_64.img #指明initramfs路径启动系统加载驱动

grub>  boot  #启动上面指定的系统,如果是reboot就等于重启整个系统了,刚才的设置就失效了

此时已经可以引导系统启动了,但是还没有grub.conf文件,可以在系统启动后编写一个grub.conf文件即可

6、编写grub.conf文件:

可以看到,此时系统是没有grub.conf文件的,如果重启系统后就无法正常开机了,除非在grub界面指定内核和驱动文件的路径:

创建grub.conf文件:

注:kernel
一行后面root=/dev/sda2是指的根分区所在的磁盘,假如boot分区和根分区没有在一起,则grub.conf文件要写明boot分区和根分
区,另外不推荐安装磁盘分区的方式写根分区的路径,因为有可能系统重启后磁盘好会出现变化,因此推荐使用UUID的方式表明,每个分区都有自己的
UUID,是在整个系统中唯一的身份标示,可以使用命令blkid  /dev/sda2获取。

7、最后重启系统,以硬盘直接启动测试;

系统已经正常启动完成!

总结:修复grub是个漫长的过程,下午用了三个多小时的时间写博客和修复系统,修复期间为了排错,虚拟机重启了至少几十次,因此要有耐心、认真的去做一件事,才能做的最好!

CentOS 6.5中linux grub修复的更多相关文章

  1. GRUB与Linux系统修复(第二版)

    GRUB配置解析 配置文件保存在 /boot/grub/grub.conf[/boot分区最好应该单独划分出来] 软链接保存在 /etc/grub.conf 1.grub.conf文件分析 defau ...

  2. 如何在CentOS 5.x 中安装Windows Azure Linux Agent (WALA)

    Qing Liu  Tue, Mar 10 2015 3:06 AM 在今天的这一个章节中,我们主要讨论在CentOs 5.x 中如何安装Windows Azure Linux Agent 2.11 ...

  3. Linux Grub系统加密、破密、修复

    一.在重新启动系统时候按任意键进入 grub界面  Grub加密 一.title前的密码 修改grub.conf 这种加密只是在用户要进入grub界面的时候提示要输入密码,但是可以正常进入系统,有没有 ...

  4. ssh远程连接docker中linux(ubuntu/centos)

    ssh远程连接docker中linux(ubuntu/centos) https://www.jianshu.com/p/9e4d50ddc57e centos docker pull centos: ...

  5. VMware Workstation中linux(centos)与windows7共享文件夹

    引用网站有: http://www.jb51.net/LINUXjishu/161994.html http://www.cnblogs.com/xiehy/archive/2011/12/19/22 ...

  6. Linux GRUB手动安装方法详解

    需要手工安装 GRUB 主要有两种情况: Linux 系统原先不是使用 GRUB 作为引导程序而现在想要使用 GRUB 来作为引导程序: MBR 中的引导程序被覆盖,需要在 MBR 中重新安装 GRU ...

  7. [转帖]如何重置CentOS/RHEL 7中遗忘的根用户帐户密码

    如何重置CentOS/RHEL 7中遗忘的根用户帐户密码 https://www.cnblogs.com/swordxia/p/4389466.html 作者的blog质量很高呢 没看完 但是感觉 很 ...

  8. CentOS 6.4中升级编译安装GCC 4.8.1 + GDB 7.6.1 + Eclipse 以及Kdump配置

    在CentOS 6.4中编译安装GCC 4.8.1 + GDB 7.6.1 + Eclipse 今天在isocpp上看到"GCC 4.8.1 released, C++11 feature ...

  9. Linux——GRUB简单学习笔记

    GRUB的配置文件默认为  :/boot/grub/grub.conf # ls -l /etc/grub.conf GRUB配置选项: default定义缺省启动系统 timeout定义缺省等待时间 ...

随机推荐

  1. paper 2:图像处理常用的Matlab函数汇总

    一 图像的读写 1 imread imread函数用于读入各种图像文件,如:a=imread('e:\w01.tif') 注:计算机E盘上要有w01相应的.tif文件. 2 imwrite imwri ...

  2. Tostring(); 括号中的参数 格式化字符串

    最近在逛 msdn 发现    查到  getTypeCode 方法  看到里边居然有 tostring("D")这样的写法      运行了一遍 感觉可以显示值      然后就 ...

  3. Delphi中SQL批量插入记录

    http://www.cnblogs.com/azhqiang/p/4050331.html 在进行数据库操作时, 我们经常会遇到批量向数据库中写入记录的情况. 在这里我提供3种操作方式:   1.  ...

  4. 有关git的换行符的处理问题

    签入签出时对换行符的操作: #签出时将LF转换为CRLF,签入时将CRLF转换为LF git config --global core.autocrlf true #签出时不转换,签入时转换为LF g ...

  5. 为什么在我眼里你是一只傻逼——傻逼“常所用”句型之(2)——“当当网的就有XXX人评论,YYY%的推荐”

    A:这东西里面尽是大粪. B:这东西当当网的就有325人评论,98.8%的推荐.京东的整体评论是五星,37人评价,31人给好评,1人差评,5人中评:亚马逊有6条好评,1条中评. http://news ...

  6. OpenStack 镜像密码修改办法

    Contents [hide] 1 场景 2 方案一 3 方案二 4 方案三 5 目前采用方案三 场景 用户将实例里的root密码修改了,/root/.ssh/的公钥文件删除了,然后把密码忘记了,需要 ...

  7. OpenStack 的防火墙规则流程

    Contents [hide] 1 发现的问题 2 解决过程 3 删除临时错误数据 4 其实前面的解决办法是错的 发现的问题 3台虚拟机在同一宿主机,防火墙配置都一样,但是他们的网络表现不一致,有的能 ...

  8. IE浏览器相关的问题及解决方案[转]

    seleniumquery和IE的司机 本网页是关于seleniumquery和IE(Internet Explorer)作为驱动/ WebDriver /浏览器. 首先,确保你检查internete ...

  9. ==,equal,hasCode(),identifyHasCode()浅析

    在java中如果我们要比较两个对象之间的关系的话有可能会用到下面的几种方法:==,equal,hasCode(),identifyHasCode(). ==用来比较对象本身是不是相同的. public ...

  10. nginx负载均衡的实现

    将一台nginx主机当作前端负载均衡服务器,后面通过交换机链接多台web服务器,提供html和php的web界面服务.通过配置前端负载均衡服务器,可以实现将html界面和php界面的分开访问,即htm ...