免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1745 | 回复: 0

SCO系统动态库损失或缺失的应急办法 [复制链接]

论坛徽章:
1
15-16赛季CBA联赛之北控
日期:2022-03-04 22:35:50
发表于 2008-03-28 13:09 |显示全部楼层

作者:CNL   
如果损坏的是ld.so.1, libc.so.1等系统内核的动态库,
那么你会发现常用的如ls,cd,mv,cp之类的命令马上都不能用了,
如果你有动态库的备份,此时注意千万不要重起机器,否则系统恢复起来就困难多了!
无论是OpenServer还是Unixware系统都提供有一套静态命令,
一般在/sbin目录或/usr/sbin目录下,这些命令平常没有用,
但如果你的系统出了问题,常用的命令无法使用,它们的用途就来了,
比如cp不能用,但你此时还可用/sbin下的cp
# /sbin/cp  你备份的ld.so.1 /usr/lib/
然后再做ls操作确认是否恢复正常
如果你的机器重新启动了或着没有备份,那么你首先要尝试从系统安装光盘上恢复
1 对于unixware:
需要在开机logo画面敲空格进入boot>后插入安装光盘并输入
boot cdrom -s进入维护模式,如果进入不了那么你只能使用后面的其他办法了
挂上硬盘根文件系统
# mount /dev/dsk/c0t0d0s0 /mnt
如果你的根不是c0t0d0s0而且自己又忘了设备名,你只能自己一个个名子换着测了
如果能挂上,那么即可用cp命令恢复,如
# cp 你备份的libc.so.1 /mnt/usr/lib/
恢复完毕后还要确认一下恢复的动态库文件的属性是否正确,
和正常机器不一致的地方自己用chmod/chown修改一下
然后卸载光盘并取出光盘重起机器:
# umount /mnt
# init 6
重启动机器
2 对于openerver:
需要先插入安装光盘再引导,在boot:提示后敲tools进入维护模式
然后挂上硬盘root文件系统
# mount /dev/hd0root /mnt
如果能挂上,那么即可用cp命令恢复,如
# cp 你备份的libc.so.1 /mnt/usr/lib/
恢复完毕后还要确认一下恢复的动态库文件的属性是否正确,
和正常机器不一致的地方自己用chmod/chown修改一下
然后卸载光盘并取出光盘重起机器:
# umount /mnt
# init 6
重启动机器
有的时候mount可能提示你做fsck,那么使用
# fsck -ofull 你的设备名
后再做mount操作
其他办法:
如果你系统打过补丁(系统动态库已经被补丁更新过,和安装光盘已不同)
你只能从一台完全一样的机器上做一套紧急引导软盘引导系统了,
如果使用紧急引导盘可参考本坛内的有关精华贴,这里就略过了。
以下以unixware为例详细说明: (因为它最复杂)
1. 应急恢复盘法 (必须在同配置机器上做一套应急软盘,尤其是SCSI硬盘的系统)
应急恢复盘由两张软盘组成。先后插入两张应急恢复盘,
在出现提示“The hard disk is sane, Press ENTER to continue”时,
按回车键,系统显示如下菜单:
Emergency Recovery Menu
Mount File System
Umount File System
Access UnixWare Shell
Restore Disk(s)
Reboot
选择Mount File System后,系统将硬盘的根文件系统装载到/mnt目录下。
再选择Access UnixWare Shell,系统出现#提示符,进入系统成功,
这样再用cp命令恢复损失的动态库,如
# cp 你备份的libc.so.1 /mnt/usr/lib/
恢复完毕后还要确认一下恢复的动态库文件的属性是否正确,
和正常机器不一致的地方自己用chmod/chown修改一下
然后卸载光盘并取出光盘重起机器:
# umount /mnt
# init 6
重启动机器
2. 使用boot盘法
首先用第一张引导软盘引导系统
(对支持光驱引导的机器也可以从安装光盘引导系统),
并根据提示插入第二张软盘。然后按以下步骤执行:
● 按F8推迟许可软件,即不输入license号。
● 加载UnixWare HBA 盘。
● 如果有必要进入DCU进行设置(或按F10继续)。
● 当出现“System node name”提示时,
插入安装光盘(若从光盘引导则不必插入光盘)。
● 按Ctrl+Alt+Esc组合键切换到虚屏VT0(按Ctrl+Alt+F1组合键可切换回系统安装界面)
● 在VT0中,执行下面的命令安装CD-ROM:
# mount -F cdfs -r /dev/cdrom1 /cd-rom
● 注册vxfs文件系统的模数(UnixWare 7 根文件系统的类型通常为vxfs):
# modreg 4 vxfs
● 加载vxfs文件系统的模数:
# modadmin -l /cd-rom/.extra.d/etc/conf/mod.d/vxfs
如果系统返回以下信息,表示加载成功:
UX:modadmin:INFO:module /cd-rom/
.extra.d/etc/conf/mod.d/vxfs loaded,ID=1
● 检查硬盘的根文件系统。
假设系统硬盘使用的控制器为0,bus为 0,ID为 0,LUN为0,root的分片为1:
# /cd-rom/.extra.d/etc/fs/vxfs/fsck -F vxfs /dev/dsk/c0b0t0d0s1
● 将硬盘的根文件系统安装到/mnt目录下:
# mount -F vxfs /dev/dsk/c0b0t0d0s1 /mnt
● 为使命令正确运行,重新设定搜索路径:
# PATH=:/usr/bin:/sbin:/usr/sbin; export PATH
这样再用cp命令恢复损失的动态库,如
# cp 你备份的libc.so.1 /mnt/usr/lib/
恢复完毕后还要确认一下恢复的动态库文件的属性是否正确,
和正常机器不一致的地方自己用chmod/chown修改一下
然后卸载光盘并取出光盘重起机器:
# umount /mnt
# umount /cd-rom
# init 6
重启动机器
3. 第二硬盘法
● 将发生故障的系统硬盘取下,硬盘跳线调整为Slave,挂到另一个UnixWare 7系统中。
● 检查第二硬盘的根文件系统。
假设系统硬盘使用的控制器为0,bus为 0,ID为 1,LUN为0,root的分片为1:
# fsck -F vxfs /dev/dsk/c0b0t1d0s1
● 将第二硬盘的根文件系统安装到/mnt下:
# mount -F vxfs /dev/dsk/c0b0t1d0s1 /mnt
这样再用cp命令恢复损失的动态库,如
# cp 你备份的libc.so.1 /mnt/usr/lib/
恢复完毕后还要确认一下恢复的动态库文件的属性是否正确,
和正常机器不一致的地方自己用chmod/chown修改一下
然后卸载光盘并取出光盘重起机器:
# umount /mnt
# init 0
关闭机器取出恢复过的硬盘进行测试


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/31/showart_510577.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP