• CentOS 6.5中linux grub修复


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

        实验使用的系统为Centos 6.5 x86_64

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

    wKioL1RYkszQO4RkAACXef0TFZk482.jpg

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

    wKiom1RYkqTT2fYAAAAcouO9Ixc854.jpg

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

    wKioL1RYk2ahqNpGAADYoAWdN6Q330.jpg

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

    wKioL1RYk8DT9AhyAABzL2VnpKI072.jpg

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

    wKioL1RYlOSh_k0XAAAkn671x74638.jpg

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

    wKiom1RYlDqQcB4WAAEP1QqXK2Y497.jpg

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

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

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

    wKiom1RYlvej3VizAAEfrbngHgE274.jpg

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

    wKiom1RYl2mSvBdiAACouXFmx-I110.jpg

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

    wKiom1RYl8yhbYBMAACOry0M5Vk427.jpg    

    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系统:

    wKioL1RYmjPzN4xYAAGqbyGteLg125.jpg注:

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

    wKioL1RYm6TRdGuHAAHcN7PTais608.jpg

    6、编写grub.conf文件:

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

    wKiom1RYnCrisRsGAAENq6Ic4TY341.jpg

    创建grub.conf文件:

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

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

    wKiom1RYogKhvNoHAAEpafMUZrE568.jpg

    wKioL1RYopvz5AM7AADrX5eVk5s506.jpg

    系统已经正常启动完成!

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

  • 相关阅读:
    利用SVN进行个人代码管理
    ECEF坐标系
    地理坐标系、大地坐标系、投影坐标系
    让VS能够识别我的DLL运行库
    cannot convert parameter 1 from 'const char *' to 'LPCWSTR' 修改
    创建文件目录C++ windows
    GDAL获取遥感图像基本信息
    全球经纬度划分
    遥感影像度与米的转换
    C++ assert用法
  • 原文地址:https://www.cnblogs.com/swordxia/p/4616054.html
Copyright © 2020-2023  润新知