免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1201 | 回复: 0
打印 上一主题 下一主题

linux 系统不能开机或可能出现的错误情况 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-02-17 21:24 |只看该作者 |倒序浏览
[转载]
linux 系统不能开机或可能出现的错误情况
  ###############################################
#                                              #
############################################### #
#                                             # #
#  作者:羊(
flaunt@rest7.com
)                 # #
#  主页:
http://blueflybird.rest7.com
         # #
#  欢迎转载,但请保留此段                     # #
#                                             ##
###############################################
下周一(2004年4月19日)就要到上海参加RHCE考试,考完后基本上不会再碰这些无
关紧要的问题。实际上,只要有充足的时间,任何一个对linux有充分兴趣的大虾小虾们
都能想办法在不重装系统的前提下,上google查资料修复这些问题。但RHCE考试中时间
比较紧张,而一个系统管理员也不可能把所有千奇百怪的问题都遇到,所以了解一些常见
trouble还是有好处的。
RHCE不代表甚麽,虽然相对于其他许多考试RHCE要难一些,通过后也不会成为“理论
家”,不知如何实战,尤其在国内“假”文凭满天飞的情况下(“假”不是指制假文凭假证
书那种假,现在非常多的非常正规的教育部门的文凭,实际上与假的没甚麽区别),RHCE
比较容易受人尊敬(同时向CCIE敬礼),但RHCE考得毕竟比较浅,象许多坛子里的RHCE
们说的,“RHCE的服务设置贵在广而不是精”,“RHCE仅仅是开始”,拿不拿这个证就看
它对你有没有用了。anyway,在准备RHCE的过程中,你会发现自己以前忽略的一些基础
知识,对于考RHCE值不值这个问题总是仁者见仁,智者见智,就懒得想那么多了。
(假设系统中至少已经安装有grub或lilo程序,按错误可能发生的顺序,包括root帐号不
能正常登录的情况,写这个错误情况最初的目的是让自己有个大的概念,希望没有误人子
弟)
  #######################
#                      #
####################### #
#                     # #
#  一、MBR错误。      # #
#                     ##
#######################
由于意外原因,主引导记录被破坏,新手安装多操作时系统常发生先装linux再装windows
类系统后只能引导win的情况。这种情况下,grub.conf或lilo.conf正常,只需进入rescue
模式重安装一次MBR即可。
情况描述:只能进入win类系统或开机后BIOS自检通过后黑屏无任何提示。
  #######################
#                      #
####################### #
#                     # #
#  二(1)、引导程序错误# #
#                     ##
#######################
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中必考项目
  #######################
#                      #
####################### #
#                     # #
#  二(2)、/initrd目录 # #
#                     ##
#######################
这个该死的问题搞了我一整个下午,说来话长,写在最后(估计考试中不大可能出这种题,
要不就太缺德了)。
  
  
  #######################
#                      #
####################### #
#                     # #
#  三、/etc/inittab   # #
#                     ##
#######################
***(/etc/initab还可能在后面发生错误)*****
(一)如果出现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文件应该能正常启动。
  #######################
#                      #
####################### #
#                     # #
#  四、/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   # #
#                     ##
#######################
***/etc/inittab文件错误***
系统反复重启或启动后就关机
设置了错误的runlevel,如0或6
  #######################
#                      #
####################### #
#                     # #
# 六、其他daemon错误  # #
#                     ##
#######################
情况比较复杂,根据显示出错误信息决定如何修复。
  #######################
#                      #
####################### #
#                     # #
#  七、/etc/inittab   # #
#                     ##
#######################
***如果服务基本已经启动完毕却出现***
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包即可
  #######################
#                      #
####################### #
#                     # #
#  八、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文件。
****************************************************************
**********************关于第二点的说明**************************
****************************************************************
  #######################
#                      #
####################### #
#                     # #
#  二(2)、/initrd目录 # #
#                     ##
#######################
该问题困扰了整个下午。从头说起:
中午在linuxsir.org的论坛上发现一位叫Proarfei的发了个贴子,内容如下:
---------------------------发贴内容--------------------------------
RHAS3-请求帮助!
安装RHAS3时很顺利,由于是双系统,而且我希望是ntldr做主启动程序,所以我选择了
GRUB安装位置在引导分区的第一扇区,但很奇怪的是,AS在安装完成处没有提示创建
引导盘,在RH9中是有这一步的,我在查询AS3的安装说明中也没有这步骤,但在说明
GRUB配置时说可以创建引导在别的盘上,我不是很清楚AS3是如何创建引导程序在软盘
上的,请各位高手指点一二。
---------------------------发帖结束--------------------------------
AS3中的确没有创建引导盘这一步,当时我不明白Proarfei究竟是想用软盘引导还是想在
ntldr中引导linux,于是回贴如下:
---------------------------回帖内容--------------------------------
如果想用软盘启动linux与grub无关。
制作启动盘
mkbootdisk `uname -r`
如果想在nt启动菜单选择启动
ntldr是由配置文件boot.ini提供工作参数的,该文件位于Windows XP系统分区的根目录下,
具有隐藏、系统、只读属性。我们只需要将Red Hat Linux的引导记录作为一个文件备份到
C盘的根目录下,并相应地在boot.ini文件里添加一个项目来指向它们,就可以实现双重系
统了。


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/111851/showart_2182277.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP