科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网服务器频道SCO UNIX系统故障特征、分析及解决

SCO UNIX系统故障特征、分析及解决

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

2008年6月27日

关键字:

  • 评论
  • 分享微博
  • 分享邮件

SCO UNIX系统在我国的银行、证券、税务、铁路、商业等企事业单位广泛地使用。在 维护UNIX系统时应规范操作,以确保系统的正常运行,如果系统受损,比如误删某个系统文件 致使系统无法启动,这时如果采取重新安装系统的方法,势必造成用户数据的丢失,而且, 新安装UNIX操作系统和应用软件及调试运行往往要花上好几个小时的时间。能否有办法呢?通过反复探索和实践,找到了既能以较快的速度修复损坏的系统又能保证数据完好无 损的方法,即事先制作应急引导软盘,当系统损坏(比如系统无法正常引导、 超级用户口令 遗忘等),用该软盘进行修复(已经有同行介绍过通过制作应急引导软盘修复SCO XENIX 统的方法,但在UNIXSCO XENIX下应急引导软盘的制作及使用有很大的区别),现将该方法 介绍出来,供大家参考。

 

  我们首先来制作UNIX应急引导软盘, 方法如下:

 

  在超级用户提示符#下敲入:mkdev fd并回车,屏幕上将出现菜单选项如下:

 

  1.48tpi, double sided, 9 sectors per track

 

  2.96tpi, double sided, 15 sectors per track

 

  3.135tpi, double sided, 9 sectors per track

 

  4.135tpi, double sided, 18 sectors per track

 

  因为我们是用1.44MB软盘制作应急引导盘, 故选择4,又因为我们的启动驱动器为1.44 MB的软驱(下同), 所以当出现o you want to use floppy drive0 or floppy disk 1? 选择0, 这时屏幕上出现菜单选项:

 

  1.Filesystem

 

  2.Bootable only (96ds15 and 135ds18 only)

 

  3.Root filesystem only (96ds15 and 135ds18 only)

 

  我们先选择2制作应急引导盘的可启动软盘(以下简称Boot),当把软盘插入驱动器后 将提示是否需要格式化软盘,这里可按需要进行选择,然后系统将自动在软盘上建立文件系 ,并将一些文件拷贝到软盘上,文件拷贝完后将自动对软盘上的文件系统进行检查,无误后 又将出现上面的菜单选项,我们再选择3制作应急引导盘的根文件系统软盘(以下简称Root ),同样我们可按需要选择是否首先对软盘进行格式化,然后系统亦首先在软盘上建立文件系 ,并将一些文件及特别文件拷贝到软盘上,文件拷贝完后也将自动对软盘上的文件系统进 行检查,无误后仍将又回到上面的菜单选项,至此,UNIX应急引导盘的Boot盘及Root盘制作完 ,我们选择q退出到超级用户提示符#下。

 

  由于应急引导盘的Boot盘及Root盘均是通过建立文件系统形成的, 所以我们要查看或 修改上面的内容必须先用命令mount将其安装到硬盘的某个空目录(/mnt),待所做的工 作完成后再用命令umount卸下来即可。

 

  在这里,我们先将后面要用到的命令及意义说明如下:

 

  ①安装已建立文件系统的软盘到硬盘的空目录/mnt

 

mount /dev/fd0135ds18 /mnt

 

  ②卸下已安装到硬盘的软盘

 

cd /

 

umount /dev/fd0135ds18

 

  ③安装硬盘到已建立文件系统的软盘的空目录/mnt

 

mount /dev/hd0root /mnt

 

  ④卸下已安装到软盘的硬盘

 

cd /

 

umount /dev/hd0root

 

  ⑤检查与收复可能受到损坏的文件系统

 

  对硬盘的根文件系统, 若是用应急引导盘启动则为:

 

fsck /dev/hd0root

 

  对硬盘的根文件系统, 若是由硬盘自身启动后则为:

 

fsck /dev/root

 

  对软盘的文件系统为:

 

fsck /dev/fd0135ds18

 

  要注意的是, 以上命令中mountumount 只有在超级用户提示符下才能执行。下面分 析几种系统不能正常引导故障及解决办法。

 

  故障之一

当打开计算机电源后,主控台屏幕上出现如下信息:

 

boot not found

 

cannot open

 

  Stage 1 boot failure: error loading hd(40)/boot然后死机, 这表明系统根目录下 boot文件丢失。boot是用于装载并执行UNIX程序的交互式程序, 主要用于装载和执行UN IX操作系统的核心, 在引导过程中boot将读/etc/default/boot, 显示引导过程信息, 装入 并执行/unix, 所以当boot文件受损时将导致系统引导失败。我们可通过如下步骤用应急引 导盘恢复系统:

 

  1.Boot盘插入驱动器并重新对机器加电, 此时由Boot盘开始引导;

 

  2.在系统引导提示下敲入hd(40)/unix, 这个命令用于从硬盘把UNIX核心装入, 然后输 root口令进入单用户模式, 此时出现超级用户提示符#;

 

  3.用命令①把Boot盘安装到硬盘上, 然后用命令: cp /mnt/boot/恢复硬盘根目录下的 boot文件;

 

  4.用命令②把Boot盘从硬盘上卸下来;

 

  5.敲入haltsys关闭系统, 然后再取出Boot, 则故障排除, 系统可正常引导;

 

  6.在系统正常引导后进入超级用户, /boot文件的属主和组均改为系统原来所定义的 bin即可。

 

  故障之二

 

  机器加电后, 主控台屏幕出现如下信息:

 

unix not found

 

  然后死机, 这表明UNIX核心丢失, 因为/unix包含核心, unix文件受损将导致系统无 法装入并执行内核, 从而出现死机。我们可用如下方法来恢复:

 

  1.Boot盘插入驱动器并重新对机器加电, 此时由Boot盘开始引导;

 

  2.在系统引导提示下敲入:fd(64) unix root=hd(40) swap=hd(41) pipe=hd(40)或仅 敲入fd(64)/unix亦可, 这个命令用于从Boot盘把UNIX核心装入,然后输入root口令进入单 用户模式, 此时出现超级用户提示符#;

 

  3.用命令①把Boot盘安装到硬盘上, 然后用命令: cp /mnt/unix/恢复硬盘根目录下的 unix文件;

 

  4.用命令②把Boot盘从硬盘上卸下来;

 

  5.敲入haltsys关闭系统, 取出Boot, 则故障排除,系统可以正常引导;

 

  6.在系统正常引导后进入超级用户, /unix文件的属主和组改为系统原来所定义的binmem即可。

故障之三

 

  机器加电后在系统引导提示符下敲入回车键, 当第一屏被刷新后在第二屏的最后一行 出现如下信息:

 

  Kernel: i/o bufs=600k 然后系统挂起, 这表明系统上/etc/init文件丢失。 因为i nit程序在核心初始化的最后阶段开始执行, 其进程号(pid)1 该进程按一定规则启动 /etc/inittab文件中所列的进程, 引导系统进入所规定的运行级别。 它首先读/etc/init tab中的initdefault,当所有的进程都创建成功后, init进入循环等待, 它主要用于打开 主控台/etc/console, 检查文件系统的一致性, 执行/etc/rc 进行必要的设置。 init在单 用户模式下启动shell,而在多用户模式下运行/etc/brc, /etc/bchk等外壳程序并启动/et c/rc, 它调用/etc/getty为每个终端生成一个getty进程, 以便在读入用户注册名后完成用 户的注册过程。如果/etc/init文件受损,新的进程就无法创建, 从而导致系统挂起, 我们 可用如下方法恢复系统:

 

  1.Boot盘插入驱动器并重新对机器加电, 此时由Boot盘开始引导, 在系统引导提示 符下按回车键, 然后在提示插入Root盘时取出Boot盘并将Root盘插入, 这样系统全部由应 急引导盘引导, 直至出现提示符#;

 

  2.用命令③把硬盘安装到软盘上;

 

  3./etc/init文件从软盘上拷贝到所安装的硬盘上:cp /etc/init /mnt/etc/init

 

  4.用命令④把硬盘从软盘上卸下来;

 

  5.用命令haltsys关闭系统后把Root盘取出, 此时系统已可正常引导;

 

  6.在系统正常引导后进入超级用户, /etc/init文件的属主与组均改为系统原来所定 义的bin即可。

 

  故障之四

 

  机器加电后在系统引导提示符下敲入回车键, 当第一屏被刷新后到第二屏时即出现许 多错误信息, :

 

INIT: command

 

exec /etc/brc 1/dev/console 2&1

 

failed to execute, errno=9 (exec of shell failed)

 

...

 

  等等, 并不断翻屏显示出错信息, 这表明系统/bin/sh文件受损或丢失。因为shSH ELL标准、作业控制和限制性命令解释程序。 所以, 该文件受损或丢失将导致系统启动失 败。我们可用如下步骤解决:

 

  1.Boot盘插入驱动器并重新开启电源,在系统引导提示符下敲入按回车键, 当提示插 Root盘时把Boot取出并将Root盘插入, 这样系统全部由应急引导盘引导, 直到出现提示 #;

 

  2.用命令③把硬盘安装到软盘上;

 

  3./bin/sh文件从软盘上拷贝到所安装的硬盘上: cp /bin/sh /mnt/bin/sh

 

  4.用命令④把硬盘从软盘上卸下来;

 

  5.用命令haltsys关闭系统后将Root盘取出, 此时系统已可以正常引导;

 

  6.在系统正常引导后进入超级用户下, 将文件/bin/sh的属主与组均改为系统原来所定 义的bin即恢复了系统。

 

  故障之五

 

  系统可以引导, 但在引导时会出现如下错误信息:

 

su: Unknow id: root

 

...

 

INIT: SINGLE USER MODE

 

**** PASSWORD FILE MISSING!****

 

Entering System Maintenance Mode

 

  然后系统自动进入系统维护模式即单用户模式并出现提示符#, 这样系统就无法进入 多用户模式工作。当在系统自动进入单用户模式后, 我们若用命令ls -l进行文件的长列表 显示时会首先出现一行: /etc/passwd cannot be opened for reading, 然后再给出文件 的长列表, 但长列表中文件属主原为bin的已全部自动改为0,1,2,3...等等。这表明文件/ etc/passwd受损或丢失, 因为系统加载时要进行工作方式(单用户或多用户方式)的选择, 此时系统会自动在/etc子目录下寻找passwd文件, 若找不到则自动进入到单用户模式。解 决这一问题的方法如下:

 

  1.在系统自动进入单用户模式后, 用命令①把应急引导盘的Root盘安装到硬盘上;

 

  2./etc/passwd文件从软盘上拷贝到所安装的硬盘上:cp /mnt/etc/passwd /etc/ passwd

 

  3.用命令②把软盘从硬盘上卸下来;

 

  4.Root盘取出,用命令reboot重新启动系统,此时系统已可以正常引导;

 

  5.在系统正常引导后进入超级用户下,将文件/etc/passwd的属主与组分别改为系统原 来所定义的binauth即可(这里很有意思的是, 我们倘若再用命令ls-l进行文件的长列表 显示时, 上述的现象已不见了,长列表中文件属主原为bin的已全部自动改回为bin)

 

  故障之六

 

  如果计算机中没有387浮点协处理器, 且在引导时出现警告信息:

 

WARNING: cannot load floating point emulator

 

  然后引导失败, 这表明系统文件/etc/emulator丢失。 因为文件/etc/emulator用于仿 真计算机中的387浮点协处理器, 我们可用如下方法恢复:

 

  1.Boot盘插入驱动器并对机器重新加电, 此时由Boot盘开始引导, 在系统引导提示 符下按回车键,在提示插入Root盘时取出Boot盘并将Root盘插入,这样系统全部由应急引导 盘引导, 直到出现提示符#;

 

  2.用命令③把硬盘安装到软盘上;

 

  3./etc/emulator文件从软盘上拷贝到所安装的硬盘上: cp /etc/emulator /mnt/ etc/emulator

 

  4.用命令④把硬盘从软盘上卸下来;

 

  5.用命令haltsys关闭系统, 然后把Root盘取出,此时系统已可正常引导;

 

         6.在系统正常引导后进入超级用户, /etc/emula-tor文件的属主与组均改为系统原 来所定义的bin即可。

 

   

故障之七

 

  系统可以引导, 亦能正常处理日常事务, 但每当关机时总会在主控台屏幕上出现错误 信息:

 

/etc/initscript: /etc/uadmin: not found

 

  然后系统死机,从而导致系统不能正常关机,这样每次系统在启动时都需要清理文件系 , 不仅浪废时间还可能严重破坏文件系统导致系统瘫痪。

 

  造成上面的故障是由于系统文件/etc/uadmin丢失或损坏所致, 可用如下方法排除:

 

  1.在系统引导并清理文件系统完成后, 以超级用户root注册(进入单用户模式亦可);

 

  2.在超级用户提示符#, 用命令①把Root盘安装到硬盘上;

 

  3./etc/uadmin文件从软盘上拷贝到所安装的硬盘上:cp/mnt/etc/uadmin /etc/uad min

 

  3.用命令②把软盘从硬盘上卸下来, 然后把Root盘取出;

 

  4.将文件/etc/uadmin的属主与组分别改为系统原来所定义的bin, 至此,故障排除, 统可正常关机。

 

  故障之八

 

  当系统管理员遗忘了超级用户口令时也是一件非常令人棘手的事。我们知道, UNIX 级用户拥有对系统至高无上的控制权, 很多命令, 特别是对系统的管理与维护只有超级用 户才能执行。 我们可用如下方法解决这一问题:

 

  1.UNIX系统的超级用户口令为回车键(或自己确认不会忘记的口令) 时按上面介绍的 方法制作应急引导盘, 制作完后再将Root盘插入软驱, 用命令①把Root盘安装到硬盘上, 然后用命令: cp/tcb/files/auth/r/root/mnt/root将包含有超级用户口令变形码的文件/ tcb/files/auth/r/root拷贝到Root盘上,然后用命令②将Root盘卸下来并把它们保存在安 全的地方;

 

  2.当超级用户口令遗忘时, Boot盘插入驱动器并对机器重新加电,此时由Boot盘开始 引导, 在系统引导提示符下按回车键, 在提示插入Root盘时取出Boot盘并将Root盘插入, 这样系统全部由应急引导盘引导, 直到出现提示符#;

 

  3.用命令③把硬盘安装到Root盘上;

 

  4.root文件从Root盘上拷贝到硬盘的/tcb/files/auth/r目录下:cp/root/mnt/tcb/ files/auth/r/root

 

  5./etc/passwd文件从Root盘上拷贝到硬盘的/etc/passwd目录下: cp/etc/passwd/ mnt/etc/passwd

 

  6.用命令④把硬盘从软盘上卸下来;

 

  7.用命令haltsys关闭系统, 然后把Root盘取出;

 

  8.在系统正常引导后以超级用户root注册, 在要求输入口令处直接按回车键(或输入在 制作应急引导盘时自己专门设置的超级用户口令)即可进入超级用户, 然后将文件/etc/pa sswd的属主与组分别改为系统原来所定义的binauth, 将文件/tcb/files/auth/r/root 属主与组分别改为系统原来所定义的rootauth, 最后用passwd重新设置超级用户口令即 可。

 

  上面介绍的方法,经在SCO UNIX Release 3.2 V4.2Compaq系列服务器及微机、 AST系列服务器及微机、DECpc和金山系列微机上调试通过。

 

  注意的问题

 

  1.上述的操作中, 如果出现文件系统安装不上(硬盘不能安装到软盘上或软盘不能安 装到硬盘上), 表明硬盘的根文件系统或软盘的文件系统受到了损坏, 我们可以依情况选用 ⑤提供的三条命令之一进行修复后再行安装;

 

  2.当把硬盘安装到软盘上或把软盘安装到硬盘上后, 在把它们卸下来之前, 请不要取 出软盘或关闭系统, 否则, 硬盘的根文件系统或软盘的文件系统将受到损坏, 甚至可能导 致不能修复。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章