一、MBR错误
由于意外原因,主引导记录被破坏,新手安装多操作时系统常发生先装linux再装windows类系统后只能引导win的情况。这种情况下,grub.conf或lilo.conf正常,只需进入rescue模式重安装一次MBR即可。
情况描述:只能进入win类系统或开机后BIOS自检通过后黑屏无任何提示。
二、引导程序错误
grub.conf或lilo.conf文件错误。修改了grub.conf或lilo.conf后,或者硬盘物理位置和分区发生变化后造成不能正常启动。进入rescue模式,修改grub.conf或lilo.conf即可。注意修改了lilo.conf后需执行lilo命令(可加-v 参数查看详细信息)。
(一)grub的一般情况
1、如果没有找到内核(vmlinuz-x.x.x文件),
出现File not found
Press any key to continue....
说明root(hdx,x)错误,或内核文件名不对
2、如果找到内核后,运行一会,
出现kernel Panic:Not init Found,
一般来说是没有找到根分区(/分区)即root=/dev/xxx不对
3、如果找到内核后,运行一会,
出现Kernel panic: VFS: Unable to mount root fs on ...,
一般来说可能忘了加上initrd /initrd-2.4.21-4.EL.img(大多情况发生在使用scsi硬盘)
4、总的来说grub.conf里面必须存在的就几行。
#more grub.conf
title linux
root (hd0,1) #/boot分区所在位置
kernel /vmlinuz-2.4.21-4.EL ro root=/dev/TEST/root #内核和根分区(/分区)位置
(根分区可能是LVM和raid,而不仅是hdx和sdx)
initrd /initrd-2.4.21-4.EL.img
平时练习grub.conf菜单文件的最好办法是把这个文件删掉,每次重启时自己使用grub的
交互命令行就快就会对文件里面的内容熟悉。
(二)lilo的一般情况
lilo中没有找到内核文件或ramdisk文件(initrd-2.4.xx.x.ximg)出现的提示与grub中相同,但如果是分区发生变化就会出现众所周知的L、LI、010101等错误。
lilo.conf中必须出现的几行。
image=/boot/vmlinuz-2.4.21-4.EL #内核所在位置
label=linux #等于grub中的title
root=/dev/sdc1 #根分区所在位置
initrd=/boot/initrd-2.4.21-4.EL.img
注意如果lilo中不加boot=/dev/sdx,则运行lilo程序时,需加参数指明
lilo -b /dev/sdx
(三)综述
1、grub.conf文件设置错误可以使用交互命令进入系统,而lilo.conf文件设置错误又没有设delay值的话,连sigle模式都无法进入,只能用rescue修复。修改文件后发正常的重启信号就行了,不用执行sync命令。
2、lilo.conf文件中基本上不管有没有/boot分区,而grub就要区别有无/boot分区,grub.conf中root(hdx,x),如果有/boot分区,这个root就是指/boot分区,如果/boot只是作为一个目录在根分区中(/分区),这个root(hdx,x)就是/分区的所在位置。
3、那麽:lilo.conf文件中的内核和根分区(/分区)的位置能不能象grub.conf这样写呢:
lilo:
image=/boot/vmlinuz-2.4.21-4.EL root=/dev/sdc1
grub:
kernel /vmlinuz-2.4.21-4.EL ro root=/dev/TEST/root
结果lilo是无法找到/分区。
4、记住lilo.conf和grub.conf都有4行必须写,不同之处在于grub.conf中多了一行指明/boot
目录(注意不是/boot分区,而仅仅是/boot目录)所在分区的位置,而lilo.conf中把kernel
和根分区(/分区)拆行为两行。
5、我估计grub和lilo是troubleshooting中必考项目
三、/etc/inittab
(一)如果出现INIT: No inittab file found
Enter runlevel:
一般来说就是inittab文件丢失或者有错误。
(二)如果启动基本正常,到了INIT:Entering runlevel: 3 (或者5)后,就开始出现一系列错误,很有可能/etc/inittab文件中si::sysinit:/etc/rc.d/rc.sysinit 这一行发生错误由于系统许多模块还没有初始化。
只能进入rescue模式,如果对inittab文件不很熟悉的话,最好把initscripts的rpm包重装一次。默认的/etc/inittab文件应该能正常启动。
(三) 首先进去linux的rescue的模式!
然后使用如下的命令:
rpm -qf --root /mnt/sysimage /etc/inittab
查出该文件属于哪个RPM包!
然后重新安装这个rpm包!
rpm -ivh --force --root /mnt/sysimage /mnt/source/Redhat/RPMS/packagename
sync
sync
sync
exit
Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论