• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

UNIX下几种常见系统故障和解决办法,欢迎跟帖!!!

发布: 2007-6-08 22:43 | 作者: seanhe | 来源: | 查看: 19次 | 进入软件测试论坛讨论

领测软件测试网
 我们作为金融系统的计算机系统管理员,从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 命令检查文件系统的一致性并自动修复错误。一旦计算机系统出现故障,无论是一线操作人员还是技术维护人员,都要将计算机的异常现象、处理措施和步骤记录在案,为将来进一步更高一级的技术处理提供了详细的资料,同时也是工作经验的文字积累过程,为经验的交流提供了良好的基础。

 jiupima 回复于:2005-06-09 12:59:50
SCO Unix 操作系统是一个多用户、多任务的操作系统,在日常的系统维护中,正确处理突发的灾难故障(如不能启动或不能登录等),保证数据的完整可靠,是系统管理员应该掌握的一种技能。本文介绍有关该系统的一些常见故障的恢复技巧。 
应急引导盘的制作 
在系统配置完成后,创建boot/root应急引导盘。下面以SCO OpenServer 5.0为例,介绍应急引导盘的制作步骤: 
● 以超级用户root 注册; 
● 进入创建应急引导盘的界面: 
#mkdev fd 
● 根据提示制作boot和root盘,其中制作boot盘时一般选择与本机相同的内核。 
处理“No os”提示 
如果系统引导失败或显示“No os”信息,说明引导块中/etc/hd0boot和/etc/hd1boot或主引导块/etc/masterboot 被破坏了,需要进行恢复: 
● 插入boot 盘引导,当出现boot: 提示符时,键入命令: 
hd(40)unix 
● 进入单用户方式,并键入下列命令: 
#instbb hd /dev/hd0a 
#dparam -w 
其中,instbb把部分引导块写入硬盘; dparam 把主引导块代码写入硬盘的主引导块。对于某些硬盘,还需要按dparam 的描述标记硬盘划分情况。 
处理boot问题 
如果系统引导时,出现如下错误信息: 
boot not found 
cannot open 
stage 1 boot failure: error loading hd(40) /boot 
这表明系统中的/boot损坏或丢失了,可以按如下方法进行恢复: 
● 插入boot引导盘,重新引导机器。在boot: 提示下键入: 
fd(60) unix.Z root=hd(42) 
上述命令从软盘上引导系统,并从软盘上装入核心,安装根文件系统。 
● 在提示符下键入root口令,进入单用户模式。卸载/stand 文件系统 (boot和核心在该文件系统中): 
umount /stand 
由于/boot文件系统通常是以只读方式安装的,所以在替换boot文件之前,必须先把它卸下,再重新安装上。 
● 重新安装/stand文件系统: 
mount /stand 
● 安装引导盘: 
mount -r/dev/fd0 /mnt 
● 恢复/boot文件: 
cp /mnt/boot /stand 
该命令在硬盘上复制一个新的/boot文件。 
● 把引导盘从驱动器中取出之前,键入如下命令: 
mount /mnt 
重新启动系统即可。 
处理Unix文件问题 
如果在开始引导时,系统显示:unix not found,则表明系统文件被损坏或丢失了,该文件包含了系统核心的引导映像。Unix文件丢失后,可以从另外的核心文件(如unix.old或unix.safe)上引导系统,为此,只须在boot提示符下键入替代的核心文件名即可。 
如果在系统上没有另外的核心文件,就需要从应急盘引导系统,以便恢复系统unix文件。首先,在boot:提示下键入: 
fd(60) unix.Z root=hd(42)swap=hd(41) 
然后,在单用户模式下,键入命令: 
umount /stand 
mount /stand 
mount -r/dev/fd0 /mnt 
cp /mnt/unix.Z /stand 
处理不能进入多用户问题 
如果按<ctrl> +D键后,系统进入多用户方式失败,或在引导时显示如下信息,表明/etc/inittab文件丢失: 
init: cannot open /etc/inittab errno: 2 
文件/etc/inittab中包含init命令。如果文件inittab丢失了,就不能执行系统启动命令,系统也就不能进入多用户方式。所以,按<ctrl> +D键时,系统停留在单用户模式下,并显示上述出错信息。 
要恢复inittab文件,必须重建核心环境: 
● 进入系统维护模式,键入以下命令: 
#cd /etc/conf/cf.d 
#touch /etc/.new-unix 
#../bin/idmkenv 
● 在系统提示选择信息时,键入y并按<ctrl>键,然后键入命令: 
cat /etc/inittab 
● 如果系统提示有关不能打开该文件的信息,键入命令: 
ln -s/var/opt/K/SCO/unix/* /etc/inittab /etc/inittab 
● 再键入exit后,系统出现如下信息: 
Enter run level(0-6,s or S): 
键入2,系统即可以进入多用户方式。 
处理root文件问题 
如果root文件系统遭到破坏,可以通过以下步骤进行恢复: 
● 用应急boot软盘启动,并根据提示插入应急root盘。 
● 在root提示符下键入命令: 
fsck /dev/hd0root 
如果fsck检查无误,那么使用haltsys关闭系统,并且从硬盘启动即可;如果fsck检查有误,那么继续进行以下设置: 
● 重新配置系统硬盘: 
#mkdev hd 
用户可以运行所有的初始化硬盘的应用程序对硬盘重新进行配置。 
● 当系统提示:making filesystems后,系统将返回到root提示符下,键入如下命令整理硬盘上的root文件系统: 
#fsck /dev/hd0root 
● 安装硬盘上的root 文件系统: 
#mount /dev/hd0root /mnt 
● 恢复硬盘上的root文件系统的备份: 
cd /mnt 
cpio -ivmkBud -I/dev/xxx 
其中,xxx表示磁带驱动器设备名。对于1/4英寸盒式磁带驱动器,xxx为rcto;对于mini盒式磁带驱动器,xxx为rctmini。另外,用户还可以根据实际情况,用cpio命令的其他选项完成此项工作。 
完成备份工作后,还要确认stand目录是否位于root文件的顶层,如果不是,使用如下命令行进行相应的调整: 
mkdir stand 
● 卸载和整理恢复的root文件系统: 
cd / 
umount /dev/hd0root 
fsck /dev/hd0root 
此时,系统将会提示一个警告信息,用户可以忽略这个警告信息: 
umount: warning: /dev/filesystem was not in mount table 
● 检查boot文件系统(/stand): 
fsck /dev/boot 
● 安装boot文件系统: 
mount /dev/boot /mnt 
● 使用如下命令卸载和整理恢复的boot文件系统: 
cd / 
umount /mnt 
fsck /dev/boot 
重新启动系统即可。 
处理emulator问题 
如果在开始引导时,系统显示:No floating is available ……信息,表明系统的/etc/emulator文件被损坏或丢失了,可以按如下步骤恢复: 
● 插入boot应急盘启动系统,在出现boot:提示时回车。 
● 清理根文件系统: 
#fsck -s/dev/hd0root 
● 用应急引导盘重新启动系统,键入命令: 
#/etc/mount /dev/hd0root /mnt 
#cp /etc/emulator /mnt/etc/emulator 
#/etc/umount /mnt 
重新启动系统即可。 
处理login文件丢失 
当系统提示“login:”,但输入后却不能登录时,显示“cann't exec /bin/login: no such file”信息,表明login文件损坏或丢失。 
● 插入boot应急盘,重新启动系统,进入维护状态。 
● 恢复登录文件: 
# cpio idv -I/dev/rct0 bin/login

 zhyesno 回复于:2005-06-09 17:21:47
不错,支持。。。:)

 saintdragon 回复于:2005-06-09 22:43:43
这个最好放到置顶的新手必读里i

 12xuwei 回复于:2005-06-10 09:32:16
不错

 jeffreyli 回复于:2005-06-10 10:41:22
不错,,顶一下。

 enson2008 回复于:2005-06-10 11:04:11
:em03: 

真的 很不错啊 !

 beilycao 回复于:2005-06-10 11:27:10
谢谢,对实际工作有很多帮助

 flighttop 回复于:2005-06-10 23:21:30
I never ran into those problems in my Free BSD, Solaris, AIX and Linux.

 fl.w 回复于:2005-06-14 18:03:53
支持!

 mxycdy1205 回复于:2005-06-14 22:45:07
真正的高手应该多发表这样的帖子,对于象我这样的“高手”是很有用的!!!

 wwl_xm 回复于:2005-06-15 19:27:01
很好,希望以后多看到这样的帖子

 mrharong 回复于:2005-06-17 18:58:56
中国银行系统该改革了,包括SCO该升级换代,太老了。

 msqsmy 回复于:2005-06-20 19:29:50
收藏

 sunxlp 回复于:2005-06-21 11:01:06
真的不错 !

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网