免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1548 | 回复: 0
打印 上一主题 下一主题

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

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-01-21 15:17 |只看该作者 |倒序浏览
这几天看了两个帖子都是动态库损坏或缺失导致系统崩溃的帖子, 总结一下,如果以后碰到这种情况可做参考。
  如果损坏的是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/13151/showart_69607.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP