admin 管理员组

文章数量: 887018

RHCE考试Troubleshooting

发布时间:2008-03-13 10:33:59来源:红联作者:xlsogb

一、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

[!--empirenews.page--]

四、/etc/fstab

/etc/fstab文件错误(比/etc/inittab文件后出错)

(一)出现WARNING:coundn't open /etc/fstab: No such file or directory

/etc/fstab文件丢失

/etc/fstab 文件不属于任何rpm包,利用fdisk和e2label命令查看根分区(/分区)、/boot、/home、/usr、/var分区(如果有这几个分区),然后编辑/etc/fstab文件,注意fstab文件的格式,如果记不住,可以查看帮助:如果未mount /分区,则先装载,如果/usr分区单列,装载/usr分区。如果在rescue模式下则先chroot。查找fstab的帮助文件:

1、直接man fstab

2、locate fstab

你会发现有个叫fstab.5.gz的文件,一般在/usr/share/man/man5/fstab.5.gz

可以 man /usr/share/man/man5/fstab.5.gz

或者 zless /usr/share/man/man5/fstab.5.gz

3、rpm -ql mount | grep fstab 也能找到fstab的帮助文件

4、find / -iname "*fstab*" 最笨的办法

如果不是在rescue模式,修改fstab文件时出来Read-only file system咋办?重新装载成读写模式

mount -o remount,rw /dev/sdax /

(二)mount 文件丢失或被替换

mount 文件错误会出现/proc文件相关错误,红字显示很醒目,此时比较麻烦,需进入rescue模式而不是进入输入root口令进行修改,因为根分区现在被mount成只读(ro)模式,你没有mount命令来把根分区mount 成读写的(rw)。

(三)文件系统错误

1、使用fsck进行修复,郁闷的是无论出现什么提示只能选y,要不系统依然有问题。

2、可能文件系统的superblock有问题,把备份的恢复即可。(考试中这种情况几乎不可能)

fsck.ext3 -b (8192*n)+1

(四)raid或LVM错误

使用raid和lvm的知识进行修复,如果raid盘或lvm盘中没有数据,则可把/etc/fstab中提到的/dev/mdx和 /dev/xxxxxx/xxx相关的注释掉。如何修复raid或lvm上的数据估计Redhat是不会考的。我在做实验时,发现RedHat Enterprise AS3的/etc/rc.sysinit有个小bug如果我在做raid的基础上把raid做到LVM里面去,重启系统时,会报告出错。

例如:

1、编辑/etc/raidtab #设一个任意级别的 md0

2、mkraid /dev/md0  #假设一切都正常,该raid则可使用了

3、pvcreate /dev/md0 #建立LVM的pv

4、(方法一)、vgextend VGname /dev/md0 #把md0加到现有vg中

4、(方法二)、vgcreate VGname /dev/md0 /dev/sdax #新建一个vg

5、lvcreate -L 5G -n newlv VGname #在VGname这个vg中建立一个5G的名字newlv的lv

6、mkfs.ext3 /dev/VGname/newlv #格式化成ext3文件系统

7、把/dev/VGname/newlv加到/etc/fstab中

8、reboot

你会发现系统出错。原来/etc/rc.sysinit在启动raid时,是根据/etc/fstab这个文件来的,如果/etc/fstab中没有以 /dev/mdx开头行,则不启动/etc/raidtab中的md0、md1.....,重启系统,你会发现启动raid时有(skiped)的东东。如果这个raid是属于LVM中的一个pv,所以在启动LVM的时候,也跟着出错。临时办法倒是有:编辑/etc/rc.sysinit,因为在 rc.sysinit文件中确定/etc/fstab中是否有raid?br>?用的grep命令:

INFSTAB=`LC_ALL=C grep -c "^$i" /etc/fstab`

其中INFSTAB是确定命令是否成功的变量,$i是/etc/raidtab 文件中的md0或md1...etc,把$i前面的^去掉即可。

(五)quota设置错误

大不了把/etc/fstab中的usrquota和grpquota全部关闭。

FIXME:是否还有其他发生错误的可能?

五、/etc/inittab

系统反复重启或启动后就关机

设置了错误的runlevel,如0或6

***如果服务基本已经启动完毕却出现***

INIT: no more processes left in this runlevel

可能是没有程序守护 tty1或tty2…………等,即/etc/inittab文件中少了

1:2345:respawn:/sbin/mingetty tty1

2:2345:respawn:/sbin/mingetty tty2

等等

出现这种情况,如果不大明白//etc/inittab的格式,强制重装initscripts的rpm包即可

六、其他daemon错误

情况比较复杂,根据显示出错误信息决定如何修复。

七、xwindow错误

一般来说与/etc/X11/XF86config文件有关,考试中不可能涉及硬盘问题。运行redhat-config-xfree86一般都能解决,可能发生的问题较多,普通点的就是刷新率,显示模式如800x600等

八、root不能正常登录

********密码及PAM相关*******

(一)出现Login incorrect 多半与密码相关

1、的确是密码错误 单用户模式修改

2、root用户被锁 单用户模式 usermod -U root 即可

3、没有root用户,即没有uid为0的用户

4、/etc/securetty文件中没有tty*(*表示1,2,3,4等)

(二)输入用户名和密码后,只见屏幕一闪,那多半与authconfig、pam有关了

1、三轮车夫同志遇到的。authconfig时,选了ldap认证,后来ldap服务器的地址变了后,就无法登录。

解决办法:运行 authconfig取消该选项。

2、/etc/pam.d/system-auth中添加了

account required /lib/security/$ISA/pam_access.so或其他类似的pam模式限制,如pam_listfile.so、pam_time.so等。

解决办法同上,运行authconfig后会自动删掉。

3、/etc/pam.d/login中添加了

account required /lib/security/$ISA/pam_access.so

或其他类似的pam模式限制,如pam_listfile.so、pam_time.so等。

解决办法:只有手工去查看login文件,运行authconfig后不会自动取消。

4、/etc/pam.d/ 目录中的system-auth 或login中的模块文件名有误。

模块文件名错误同样会使系统无法登录。

建议发生无法登录的情况时,到单用户或rescue模式,首先查看/var/log/secure和message文件。

本文标签: 考试 man inittab Troubleshooting RHCE