关于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” 下载对应的系统版本进行制作镜像

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

关于libc.so.6误删除紧急恢复的方案_第1张图片

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

关于libc.so.6误删除紧急恢复的方案_第2张图片

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

关于libc.so.6误删除紧急恢复的方案_第3张图片

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

关于libc.so.6误删除紧急恢复的方案_第4张图片

(5) 选择 Continue 选项继续

关于libc.so.6误删除紧急恢复的方案_第5张图片

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

关于libc.so.6误删除紧急恢复的方案_第6张图片

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

关于libc.so.6误删除紧急恢复的方案_第7张图片

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

关于libc.so.6误删除紧急恢复的方案_第8张图片

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

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

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

你可能感兴趣的:(Error)