实验环境:
GRUB是大多数Linux系统默认使用的引导程序,当“/boot/grub/grub.conf”配置文件丢失或者关键配置出现错误,或者MBR记录中的引导程序遭到破坏时,Linux主机启动可能会出现”grub>”的提示符,无法完成系统其它,如何修复系统
实验原理:
实验模拟:
一、系统/boot/grub/grub.conf文件丢失。
以下是正常的grub.conf配置文件,可以先参考下。
实验之前,先将grub.conf备份一份,以防出错。备份好之后,删除grub.conf文件,模拟文件丢失。
系统重启后,进入grub>模式
接下来开始恢复grub.conf信息,不过以下操作都是临时写入内存的,不会保存到/boot/grub/grub.conf文件中。
操作方法:
假如你不知道包含内核等引导文件的/boot分区所在的位置,可通过尝试进行,先输入”root (hd0,”然后按Tab键,其中后面写0X83的都是分区都有可能是/root分区,(0X82 是swap分区,就不用试了)
输入完成之后回车,接下来输入 kernel /vm 按Tab键,如果出来内容,说明选择对了;如果不对,再继续尝试。
补全了内核文件之后,还需要在后面设置内核加载权限为只读 ro,并通过“root=”指定根分区设备文件的位置。至于什么位置,只能一个一个试了。目前(hd0,0)、(hd0,2)都被使用了。剩下(hd0,1)和(hd0,3)[备注:(hd0,1)=/dev/sda2 (hd0,3)=/dev/sda4]
出现以下信息,说明选择的根分区不对,关闭电源继续。
关闭电源后,再开机,由于刚才写的内容都是暂时写入内存的,所以还需要重新写一遍。
最后一行输入启动内核所使用的临时系统镜像文件所在的位置,也是 先输入initrd /in 然后通过Tab补全即可,无需记忆。以下两种写法都可以。
重启后,正常进入系统。
如果在你没有grub.conf文件的情况下,只能通过手工编写grub.conf文件,防止下次重启再次进入grub>模式。
以下是默认的四行,必须写清楚,具体什么意思,参考man grub.conf文件。
本文出自 “UNIX/Linux Discovery” 博客,请务必保留此出处http://dreamfire.blog.51cto.com/418026/1076824
第五行开始写kernel文件,通过一些特殊命令协助你写完kernel文件。在vim查找模式下输入.! 命令可以将结果追加到文档后面。
#blkid /dev/sda4 显示分区的UUID信息
下面就写好了grub.conf的配置文档
重启系统,看是否能进入系统
进入成功。
二、系统/boot/grub/grub.conf损坏
修改grub.conf文件,制作文件损坏,然后重启,会发现电脑出现黑屏。
重启启动,按任意键进入GRUB模式。按e进入编辑
查找出错误,并进行修改后,按b 重启启动
由于在GRUB模式更改的内容只是临时写入内存,并没有写到grub.conf配置文件中,进入系统后,需要将配置文件修改正确。然后系统就进入正常模式。
本文出自 “UNIX/Linux Discovery” 博客,请务必保留此出处http://dreamfire.blog.51cto.com/418026/1076824
总结:整个实验其实很简单,只需要记住几个主要的关键词即可,其他都是通过Tab补全模式进行的。当然如果你有安装光盘,也可以通过急救模式进行修复。