误删缘由:目的是要升级ssh版本,结果好像是冥冥之中有股力量在作祟迫使我粘了一条致死的命令rpm -e --nodeps  zlib就执行了,奇怪的是执行之后根本就全然不知。最后在敲rpm命令时居然报错了:”rpm:error while loading shared  libraries: libz.so.1: cannot open shared object file: No such file or directory“ 纳闷半天上翻命令才发现那条刺眼的命令矗立在那儿.........什么时候敲得?为什么会敲这个?这不是我敲的吧?

  反正是懵了,老大早上刚给的服务器让我升级呢!!!速速找google蜀黍,讲这是ssh的依赖库,它要是没了,yum、rpm、scp、ssh、rsync、ftp、tftp等命令都没法使用了。补救办法是从其他相同系统的服务器上拷一份libz.so.1(后来发现是libz.so.1.2.3)文件上传至此服务器即可(前提是服务器已经安装了lrzsz),屋漏偏逢连夜雨,就是没装!!!没辙了最后乖乖承认错误寻找解决办法,结果被告知那台服务器在外省那边也没运维相关的技术人员,当时差点都以为自己要去出差了。后来老大联系了那边的一个非技术主管去机房通过微信协助我解决这个问题,几经波折最后总算完美补救了,所以想给大家分享下具体解决过程,避免多走弯路。

第一步:刚开始系统都起不来的,所以只能进入单用户模式补救。进入单用户方法:

1、启动的时候,提示“press any key to enter menu”,这时回车。若有加grub密码,需要先按p,输入密码方可进行后面的操作。

出现:    “CentOS (2.6.32-358.e16.i686)”  菜单。
下面有提示:输入'e' to edit the commands before booting.
因此,我们输入 'e'字符,接着的界面会有3个选项出现:
    root (hd0,0)
    kernel /vmlinuz-...
    initrd /initramfs...

2、 选择中“kernel ...”这一行,然后按下"e"键,这时提示:
    <BOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
我们在这行的末尾输入 " single“或者"1” (注意,single前面有个空格),回车。
这将回到3个选项的那个界面(这时第二项依旧处于选中状态),然后按下 'b'

3、然后等待,操作系统启动完成,期间不需要输入密码!命令行显示为:
[root@localhost /]#

第二步:因为目前所有上传文件的命令都无法使用,所以只能使用U盘来上传。

1、从其他服务器拷贝一份libz.so.1.2.3文件存至U盘,然后将U盘插到进入单用户的补救服务器上。

2、查看U盘的分区名

# fdisk -l

可以看到U盘的分区名是/dev/sdc1,所以挂载/dev/sdc1

3、新建挂载目录,并挂载U盘

# mkdir   /upan

# mount  /dev/sdc1  /upan/

4、查看U盘文件

# cd  /upan/

#  ls

5、将libz.so.1.2.3拷贝至/lib64/

# cp  ./libz.so.1.2.3   /lib64/

6、将libz.so.1.2.3链接为libz.so.1(因为在之前使用rpm报错是:cannot open libz.so.1,其实libz.so.1是libz.so.1.2.3的链接文件,正真缺失的是源文件libz.so.1.2.3)

# ln -s  /lib64/libz.so.1.2.3   /lib64/libz.so.1

7、此时要恢复的内容已完成,现在卸载并拔出U盘

# cd  /    (必须先退回到根目录下,再执行umount命令,不然会报错提示U盘在使用,无法卸载)

#  umount   /dev/sdc1

8、重启服务器

# reboot

9、测试 rpm 、ssh均可使用,整个修复过程结束。

最新文章

  1. C#获取当前程序运行路径的方法集合
  2. window下搭建c开发环境(GNU环境的安装)
  3. Android okHttp网络请求之缓存控制Cache-Control
  4. 用Jedis连接Redis
  5. android 中View的优化
  6. 【BZOJ 1023】【SHOI 2008】cactus仙人掌图
  7. Android 关于ListView中adapter调用notifyDataSetChanged无效的原因
  8. C Primer Plus(第五版)2
  9. ESB数据发布思路
  10. sql中用逗号拼接字符串
  11. getChars的使用方法
  12. 测试MarsEdit
  13. faster-rcnn中ROI_POOIING层的解读
  14. findbugs, checkstyle, pmd的myeclipse7.5+插件安装(转:http://blog.csdn.net/priestmoon/article/details/63941)
  15. PS 图像调整算法——饱和度调整
  16. GetForegroundWindow获取的是托管进程ApplicationFrameHost,而不是真正的进程,比如XD软件
  17. layedit第三次改造
  18. [转]Windows下安装storm-0.9.1
  19. jquery 中remove()与detach()的区别
  20. Enrolment API

热门文章

  1. POJ 3668 枚举?
  2. 机器学习规则:ML工程最佳实践----rules_of_ml section 2【翻译】
  3. OpenGL编程(四)改变窗口大小时保持图形的原形
  4. mac终端(terminal)里的快捷键
  5. 个人学习源码的 HBase误区的总结 与 架构图
  6. UITextField监控文字变化方法
  7. ATL中宏定义offsetofclass的分析
  8. modSecurity规则学习(八)——防止CC攻击
  9. .net core的安装
  10. Entity Framework之Code First开发方式