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