UNIX几种常见系统故障和解决办法
我们作为金融系统的计算机系统管理员,从1994年开始就看好了SCO公司的多用户系列操作系统产品,先后使用了XENIX、SCO UNIX SVR4的普通版和网络版、SCO OPENSERVER 5.0.5,原因是这些操作系统产品有多用户、多任务的功能,安全保密性比较好,容易挂接图形、字符终端设备,网络连接简单,业务使用成本低。但正是由于这些,不可避免地带来了计算机异常关闭、误删系统文件等问题,不象windows系列产品那样有中文提示、帮助,需要系统维护人员读懂系统出现的各种英文提示,手工敲入一条条unix命令来排除各种故障,给系统维护带来了困难,也给系统维护人员提出了比较高的技术要求。在实际工作中,我们发现造成UNIX系统故障的原因主要有两个:一是计算机异常关闭,重新启动时尽管计算机会自动检查文件系统,但那些关于不能自动修复的错误提示,一线操作人员读不懂,也不再处理,日积月累造成系统崩溃。二是支行的技术维护人员在处理计算机故障时照本宣科,不但原问题没有解决,又给系统造成了新的伤害。其故障现象集中表现为系统不能引导、不能进入多用户工作方式、login状态下所有用户都不能登录、系统不能正常关闭、个别接终端的串口不能使用等等。解决这些问题所使用的工具主要是安装好系统时创建的应急系统启动盘,关于应急盘的做法,有很多文章都有介绍,可以参见《中国金融电脑》2001年第10期《unix系统超级用户密码丢失的处理办法》中的有关介绍。下面就几个典型常见的故障提示逐一说明解决办法。
一、计算机启动时提示:
boot not found
cannot open
stage 1 boot failure:error loading hd(40) /boot
原因是系统的/boot文件损坏或丢失,造成系统不能启动。修复办法:
1、用应急盘的boot盘引导系统,在Boot:提示下输入:
fd(60) unix.Z root=hd(42)
2、在系统启动时输入超级用户口令,进入单用户模式,卸载/stand文件系统,命令格式:
#umount /stand
3、重新加载stand文件系统
#mount /stand
执行第2、3步的目的是改变/stand的只读属性,在缺省情况下,/stand是只读方式的。
4、架设引导盘文件系统,命令格式:
#mount -r /dev/rfd0135ds18 /mnt
5、将引导盘的boot文件拷入硬盘
#cp /mnt/boot /stand
6、卸载软盘文件系统,重新启动计算机,命令格式:
#umount /mnt
#reboot
二、计算机启动时提示:
unix not found
然后系统挂起,原因是系统的/unix文件损坏或丢失。解决办法有两个:一是使用系统在原来重新连接内核时自动备份的旧内核启动:在Boot:下输入unix.old启动即可。二是用应急启动盘修复,具体操作步骤为:
1、Boot下输入:fd(60) unix.Z root=hd(42) swap=hd(41)
2、和处理第一种故障类似,系统启动到单用户方式下,卸载/stand文件系统再加载,将软盘的unix.Z拷入硬盘。命令格式:
#umount /stand
#mount /stand
#mount -r /dev/rfd0135ds18 /mnt
#cp /mnt/unix.Z /stand
#reboot
三、系统启动后不能进入多用户工作方式
造成这种情况的原因一般有两种可能:
1、/etc/inittab文件丢失或损坏
2、/etc/passwd文件丢失或损坏
如果在系统在引导时提示:
init:cannot open /etc/inittab errno:2
然后按+d进入多用户失败。则表明是/etc/inittab文件丢失或损坏,而此文件包括init命令,控制计算机所进入的init级别,其中init 0就是关闭计算机,init 1为进入单用户工作方式,init 2是系统启动时默认的多用户运行级别。解决办法是修复inittab文件,重新建立unix内核。解决办法有两个:
1、重新建立inittab的文件联结,命令格式:
#ln -s /var/opt/K/SCO/unix/5.0.5a/etc/inittab /etc.inittab
2、重构inittab文件
#touch /etc/.new-unix
#cd /etc/conf/bin
#./idmkenv
在系统提示下输入"y",然后输入:
#cat /etc/inittab
完成上述工作后,输入:
#init 2
就可以进入多用户操作系统了。
如果在系统引导时提示
su:unknown id:root
init:single user mode
password file missing
entering system maintenance mode
然后系统只能进入单用户维护模式,则表明是/etc/passwd文件丢失或损坏。如果使用l 命令显示文件的长列表,系统会首先显示:/etc/passwd cannot be opened for reading。解决办法是将应急盘的root盘(第二张应急盘)中的passwd文件拷入硬盘,修改passwd文件的属主和属组。命令格式为:
#mount -r /dev/rfd0135ds18 /mnt
#cp /mnt/etc/passwd /etc/passwd
#chown bin:auth passwd
#reboot
四、系统不能正常关闭
计算机运行正常,但系统关闭输入shutdown -g0 -i0 -y命令后,计算机提示/etc/initscript:/etc/uadmin:not found,然后系统挂起。造成每次关闭计算机都是非正常关机,开机就需要检查文件系统。原因是/etc/uadmin文件丢失或损坏。解决办法是将应急启动root盘的uadmin文件拷入硬盘,命令格式为:
系统以单用户方式启动,检查完文件系统后:
#mount /dev/rfd0135ds18 /mnt
#cp /mnt/etc/uadmin /etc/uadmin
#chown bin:bin /etc/uadmin
#umount /mnt
#reboot
五、个别串口所联结的终端上所有用户都不能注册
其现象为终端、连接线都正常,终端上也显示login提示符,但是在用户名后系统提示terminal 串口名(比如tty21a等) is disabled ---see account administrator,然后又退出到login提示符下,普通用户都不能登录系统。原因是初装系统时系统默认用户最多不成功登录次数为99次,如果超过这一次数,系统将自动将此串口锁住。解决办法是超级用户登录后,使用scoadmin管理工具,操作步骤为:scoadminàsystemàterminal manageràunlock,按功能键选出被锁住的终端口,解锁。然后退出到terminal manageràoptions,其中的maximum unsuccessful attempts before locking terminal 默认选项为99次,改为infinte(不限制),这样以后用户再有超过99次的不正确的登录也不会锁死终端串口。
长期的工作实践发现计算机操作系统中,感觉到sco公司的unix操作系统还是很稳定可靠的。在实际应用中要象windows平台下检查病毒那样经常使用fsck -y 命令检查文件系统的一致性并自动修复错误。一旦计算机系统出现故障,无论是一线操作人员还是技术维护人员,都要将计算机的异常现象、处理措施和步骤记录在案,为将来进一步更高一级的技术处理提供了详细的资料,同时也是工作经验的文字积累过程,为经验的交流提供了良好的基础。