有时候我们在做一些操作的时候会不小心把libc.so.6这个文件进行误操作,导致一些简单的命令都不能够使用。比如我把这个文件改个名字:

baafac9eb0346e714f6d098b3b530024.png

或者有时候提示:“/lib//libc.so.6 error,file is too short”;这些都是这个文件的损坏造成的;

libc.so.6是几乎所有linux命令的动态链接库,其中有标准c的各种函数,不能轻易动。

其实还有一点大家比较容易忽视的是,libc.so.6这个文件只是libc-2.12.so(不同的版本这个文件的名称可能不一样)的一个链接:

9bae966e8950c16f6984164c687b838e.png

Linux下的共享链接库主要放在/lib目录下,以lib*.so.*为典型的文件名。Linux下的共享链接库对于Linux非常重要,几乎所有的程序都要调用共享链接库,类似于Windows下的*.dll文件。

这里最easy的解决办法就是一条命令:#ldconfig,如果你有同名的libc.so.6,可以先删除之后再执行这条命令,要不然也不生效。实在不行就进救援模式,把光盘里的libc.so.6文件拷贝到系统的/lib/(或者/lib64)下:

例如在救援模式的shell下

#cp lib/libc.so.6 mnt/sysp_w_picpath/lib/libc.so.6

如果想进单用户模式是徒劳的,结果同样提示libc.so.6文件找不到!这是因为Linux调用共享链接库是在读取/etc/inittab文件之前进行的。Linux的启动首先要引导内核,然后进行设备检测,紧接着调用一个称为init的进程,该进程按照一定的规则,读取/etc/inittab文件的内容并且执行文件中的相关进程,指引系统进入某一特定的运行规则进程,也就是大家众所周知的6种模式。init进程首先调用共享链接库,由于共享链接库发生错误, 所以现在单用户模式也进不去,只有用启动盘和修复盘进入Linux的急救模式。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐