随着SCO UNIX操作系统广泛应用于金融、电信等领域,使用UNIX系统的用户经常会遇到这样的烦恼:UNIX系统崩溃后,使用应急引导盘等方法仍然不能修复引导区,系统不能正常启动,或者即使用应急引导盘启动系统,面对大量的资料数据也不能用软盘备份出来。由于UNIX系统是多用户多进程的分时系统,尤其是 SCO UNIX OpenServer 5.0.5以上版本面市的时间不太长,许多系统管理员面对这种情况也没有解决办法,只好重装系统,导致大量的资料数据丢失。为了解决这个问题,笔者经过一段时间的摸索,总结出一种能够处理各种系统崩溃后将硬盘上任何内容拷贝出来的方法。现将挽救文件系统的技巧介绍如下(假定系统为SCO UNIX OpenServer 5.0.5)。
(1)准备一台能够正常启动UNIX系统的机器(以下简称主硬盘):目前大部分电脑主板都有两个硬盘接口,能够连接两个硬盘,可以通过进入CMOS查看,然后用df -v命令检查主硬盘的剩余空间,要留有足够大的自由空间。主硬盘接在主板的IDE0口,将崩溃的硬盘(以下简称目标盘)接到主板的IDE1口,两个硬盘的跳线都设为MASTER,修改CMOS参数的Primary IDE Master和Secondary IDE Master设为自动或硬盘参数;如果主板只有一个IDE口,将主硬盘接到电缆线的Master接口,目标盘接在Slave接口上,同时将目标盘的DIP跳线开关拨到Slave位置上,修改CMOS参数的Primary IDE Master和Primary IDE Slave设为自动或硬盘参数。
(2)配置主硬盘,增加对第二个硬盘的识别。
#mkdev hd
显示:
1. Add a hard disk to IDE controller
2. Add a hard disk to SCSI controller
3. Add a hard disk to IDA controller(EISA)
根据硬盘类型,选择相应数字后,系统会自动增加一些设备类型。
#divvy
假定目标盘为4.2G硬盘,如表1所显示。
显示主硬盘分区表情况,对各分区name栏没有命名的要重新命名,选择
n[ame] Name or rename a division
对分区0、1、2、6、7分别如表1给一个名字,再选择
I[nstall] Install the division set-up shown
(3)启动机器,引导系统进入单用户状态。
(4) 修改目标盘各分区name栏。
#divvy /dev/hd10
进入divvy的交互界面,显示目标硬盘分区表情况,假定目标盘为2.5G硬盘,如下页表2所示。
对0、1、2、6、7分区name栏没有命名的要重新命名,方法同第2步。
上述工作完成后,就可以拷贝目标盘上任何分区的文件到主硬盘上,注意不要把主硬盘上相同的文件覆盖和破坏。
例一:将主硬盘的/stand/unix拷贝到目标盘相应位置
1#mount /dev/boot1 /mnt ;安装目标盘的boot区到/mnt目录
2#cp -r /stand/? /mnt ;拷贝主硬盘上的boot文件系统到目标盘的boot区
3#umount /mnt ;拆卸文件系统
例二:将目标盘上/home/cxqt目录拷贝到主硬盘上相应目标
1#mount /dev/root1 /mnt ;安装目标盘的root区到/mnt目录
2#cp -r /mnt/home/cxqt /home ;拷贝目标盘的根文件系统/home/cxqt目录到主硬盘的相应目录
3#umount /mnt
例三:将目标盘上/home/kjqt目录打包拷贝出来
1#mount /dev/root1 /mnt
2#cd /mnt/home
3#tar cvf /tmp/kjqt.pkg kjqt
4#umount /mnt
5#haltsys
6将目标盘拆下,把硬盘跳线和CMOS参数改回原样,这样整个恢复过程完成。