服务器 频道

SCO系统动态库损失或缺失的应急办法

  【IT168 服务器学院】这几天看了两个帖子都是动态库损坏或缺失导致系统崩溃的帖子, 总结一下,如果以后碰到这种情况可做参考。

  如果损坏的是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操作

0
相关文章