要对系统排错主要是对系统启动流程的熟悉,然后启动到哪发现问题,就可以初步判断故障出来哪里。
今天我主要说说关于boot分区的问题。如果是boot分区出问题了。
boot分区问题分三种
一、grub问题
二、内核问题
三、boot分区问题
#################################################################################
我们来一一为大家讲解,
先说第一种,如果你boot分区的grub目录里的grub.conf配置文件丢失或者错误,回出现什么情况呢?会进入GRUB模式。但是这个不严重,我们只需要给系统提供系统启动的参数就能正常进入系统。
先看原始grub.conf文件什么样子
然后我们把这个文件里部分删除,就删initrd和kernel吧。然后我们从新启动系统
系统就会停在这个画面,不能前进了。
解决办法:
按e进行编辑。我们看到,initrd和kernel都不在了,所以我们就要添加。
、
添加两条参数
完成后,记住按B从新启动,切记。!!!!!这样就可以正常进入系统了,进入后你需要自己修改/boot/grub/grub.conf 。不然,你下次从新启动还要这样添加参数。
如果GRUB坏的什么严重的话,我们就需要重新安装GRUB,这个需要进入救援模式,所以下下个问题最后,我会教大家。
##########################################################################################
二、内核出故障。
内核故障分两种,一种是内核文件丢失,另一种是initrd 镜象文件丢失。
故障现象:内核和initrd镜象不能补全
这两中文件随便哪种丢失,我们都需要进入救援模式才能恢复。
进入救援模式的方法。
1、把安装光碟放去光驱
2、设置系统从光盘启动
3、按F5进入Recue 救援模式,然后输入linux rescue。
4、选择语言和键盘,不启动网络功能。
5、这步注意,要让系统帮你自动挂载以前的系统,也就是硬盘里的系统
好了,现在就正式进入救援模式了。
下面我们使用#chroot 切换到硬盘的系统
具体命令 # chroot /mnt/sysp_w_picpath/
然后我们去boot查看缺少什么文件
#cd /boot && ls
如果发现没有initrd文件而有内核的情况下,我们使用这个命令,来创建initrd 文件
在检查grub是否完好,如果没问题,那就可以连续使用两次exit命令来从新启动系统。
如果系统内核丢失的情况下我们需要先安装内核。使用下面命令安装内核,在安装内核时会自动生成initrd,前提是需要有安装包,这个就自己挂载了。
下面就是挂载和安装内核的过程
上面说过安装GRUB的问题。现在我给大家演示下:
刚安装的GRUB是没有grub.conf配置文件的,所以你需要自己编辑一个。
#######################################################################################################
三、如果你是boot分区都没了,那问题就比较严重了。不过还是可以搞定的。
能够搞定的前提是,df命令里还有/dev/sda1是boot分区的记录,不然就比较危险了
我们先给区,然后安装内核和GRUB,就可以搞定了。
现在就参照上面的安装内核和GRUB了。
注意:由于grub的原理,分stage1和stage2,所以安装好grub后/boot目录的位置不容易改变的。没必要 企图拷贝boot目录到其他地方来引导系统。
参考读物:http://blog.csdn.net/dongliheng/archive/2007/07/08/1682522.aspx