关于libc.so.6误删除紧急恢复的方案

    编者在一次实际生产下不小心将 libc.so.6 变成了libc.so.6.bak。当时没有发觉有什么不妥,但是在后面的时候,发现很多命令都无法使用。为了以后方便解决,所以将解决的方法记录。


root用户下产生的libc.so.6问题解决方法
    一、 执行 mv /lib/libc.so.6 /lib/libc.so.6.bak 导致命令无法使用

         如果是root用户执行了 mv /lib/libc.so.6.bak /lib/libc.so.6.bak 只要执行(或者是/lib64/libc.so.6)

[root@7con ~] mv /lib/libc.so.6.bak /lib/libc.so.6
     二、误删除了 /lib/libc.so.6 文件(或者是/lib64/libc.so.6)

        其实可以发现,libc.so.6其实是一个链接文件,所以我们只要将其链接回去就可以解决问题。

[root@7con ~] LD_PRELOAD=/lib/libc-2.12.so ln -s /lib/libc-2.12.so libc.so.6
# 注意 libc-2.12.so 这个文件,得根据个人实际情况进行替换

# 预防不生效,我们可以使用source
[root@7con ~] source /etc/profile
[root@7con ~] source ~/.bashrc

        所以说,如果你是在root用户下进行的操作,那么你是幸运的,毕竟/lib(lib64)下的属组属主都是root,所以尽管libc.so.6丢失,mv、cp、ln等命令都还是可以正常使用的。

        那如果是在普通用户下,不小心将 libc.so.6 共享动态库做了以上的操作怎么办?


普通用户误操作libc.so.6的解决办法
    一、尝试将普通用户提权为超级用户(未必可行),此操作可进行百度操作步骤。
    二、尝试root用户的步骤二,但是考虑到/lib (或者/lib64) 下的属主属组是root,libc.so.6丢失,导致外部命令都无法使用。如sudo , su 等命令。
    三、 使用光盘镜像救急模式恢复 libc.so.6 文件,具体步骤如下:

(1) 利用系统光盘 建议是跟所使用的linux系统版本一致刻录出来的光盘 如果没有可以☞ “http://vault.centos.org” 下载对应的系统版本进行制作镜像

    开机启动时,选择 第三启动项

(2) 语言的话是不支持中文的,所以只能选择英语。当然,你会其他的语言也是可以的,所以这里的就选择 English 选项

(3) 这步选择的是键盘的类型,选择 us 选项

(4) 因为这不涉及到网络的事情,所以这里选择 No 选项

(5) 选择 Continue 选项继续

(6) 这个步骤是告知使用者,系统挂载在哪,只要默认选择 OK 选项

(7) 这个步骤是二次告知使用者,系统挂载在哪,只要默认选择 OK 选项

(8) 这里我们选择 Shell Start shell 选项

(9) 最后我们会看到类似字符终端的命令行界面,然后按下图操作,操作完成后,执行 reboot 命令即可。

    四、如果到这里,都还不能解决libc.so.6丢失的问题,那么,最坏的结果就是重装系统,但是 如果是生产环境下的机器,切记先进备份,然后将数据迁移到其他机器,确保业务未受影响方可重装。

    感谢阅读,本文旨在提供参考,如有错误,欢迎大家指正。帮助编者不断的改进!

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值