Linux启动类故障排除(grub引导)
Linux系统在启动过程中,首先是固件(PC上大多是CMOS/BIOS)的物理检测,诸如检测系统的显卡、CPU和硬盘等,可从系统按下电源后看到此检测信息;检测无问题,将读取硬盘的MBR(主引导记录)中的自举程序,Linux中常用的自举程序如LILO和GRUB。自举程序GRUB在系统启动期间只有一个作用,就是载入内核,内核在引导期间有两个主要的作用,一个是驱动系统硬件,另一个将启动系统进程init;init进程将读取其配置文件/etc/inittab完成后续所有的引导。
所以其实GRUB在引导期间只有一个最重要的作用,就是载入系统内核。那么GRUB在引导期间到底是如何执行引导的呢?让我们来看下的GRUB配 置 文件/boot/grub/grub.conf(一定要注意/etc/grub.conf只是此文件的一个软链接)Grub是大多数Linux系统默认使用的引导程序,可以通过启动菜单的方式选择进入不同的操作系统(如果有的话)。/boot/grub/grub.conf配置文件丢失,或者关键配置出现错误,或者MBR记录中的引导程序遭到破坏时,Linux主机启动后可能只会出现grub>的提示符时,无法完成进一步的系统启动过程,那么,怎样解决这一问题呢,下面我们就来学习它。
1.如果grub配置文件没有备份
模拟grub损坏,人为的将/boot/grub/grub.conf配置文件删掉,在删掉之前,先看一下Grub.conf启动菜单的配置文件内容
重启之后,无法完成进一步的系统启动过程,就会进入grub>提示符下
通过在grub>环境中手动输入引导命令启动Linux系统,也就是刚上面配置文件中的所要执行的那一部分内容
进入系统之后,由于grub的配置文件已被删除,因此只能手动去重建,重建一个和其他正常主机中的同名文件一样。
重启之后就好了。
2.存在grub配置文件已经备份
如果存在GRUB配置文件备份,那么比较省事的办法就是对其进行备份恢复。在这里,同样使用RHEL5的安装光盘引导进入急救模式
进入sh-3.1#的Shell环境以后,执行chroot/mnt/sysimage命令可以将目录结构切换到待修复的Linux系统中(因绝大多数Linux光盘修复模式中会将硬盘系统的“/”分区chroot到“/mnt/sysimage”处)
若未执行chroot/mnt/sysimage命令,则重新建立的grub.conf配置文件应该位于/mnt/sysimage/boot/grub/grub.conf中
内核文件、镜像文件、/boot目录等文件损害或丢失,也可以使用此种方法修复。