2021-05-12 14:32:11
誤刪除libc.so.6的解決方法
glibc是GNU發布的libc庫,即c執行庫。glibc是linux系統中最底層的api,幾乎其它任何執行庫都會依賴於glibc。glibc除了封裝linux作業系統所提供的系統服務外,它本身也提供了許多其它一些必要功能服務的實現。由於 glibc 囊括了幾乎所有的 UNIX 通行的標準,可以想見其內容包羅萬象。而就像其他的 UNIX 系統一樣,其內含的檔案群分散於系統的樹狀目錄結構中,像一個支架一般撐起整個作業系統。在 GNU/Linux 系統中,其C函式庫發展史點出了GNU/Linux 演進的幾個重要里程碑,用 glibc 作為系統的C函式庫,是GNU/Linux演進的一個重要里程碑。
Linux的很多命令都是依賴libc.so.6的動態連結庫,如果您不小心把它給刪除了,基本上所有命令都不能使用了,之前很多同學都通過重灌作業系統來解決,今天介紹一種一條命令可以解決的辦法:
[root@localhost ~]# LD_PRELOAD=/lib64/libc-2.12.so ln -s /lib64/libc-2.12.so /lib64/libc.so.6
註:目前CentOS 6.x 64位元的glibc的版本是 v2.12 ;
試驗模擬現場:刪除檔案,後恢復(前提沒有退出終端,也沒有重新啟動伺服器)
在伺服器檢視/lib64目錄:
libc.so.6 是軟連結檔案,連結的原始檔就是libc-2.12.so 檔案,刪除軟連結檔案,可以使用上面的方法恢復;
[root@localhost lib64]# ll libc*
-rwxr-xr-x. 1 root root 1923352 May 10 2016 libc-2.12.so
lrwxrwxrwx. 1 root root 12 Aug 3 10:18 libc.so.6 -> libc-2.12.so
操作過程:
刪除檔案,之後ls cp 命令無法使用;
[root@localhost lib64]# rm -f libc.so.6
[root@localhost lib64]# ls -lh libc*
ls: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
[root@localhost lib64]# cp libc-2.12.so /tmp/
cp: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
重新載入
[root@localhost lib64]# LD_PRELOAD=/lib64/libc-2.12.so ln -s /lib64/libc-2.12.so /lib64/libc.so.6
可以使用cp ls 命令,恢復成功;
[root@localhost lib64]# cp libc-2.12.so /tmp/
[root@localhost lib64]# ls -lh libc*
-rwxr-xr-x. 1 root root 1.9M May 10 2016 libc-2.12.so
lrwxrwxrwx 1 root root 19 Nov 25 12:17 libc.so.6 -> /lib64/libc-2.12.so
本文永久更新連結地址:http://www.linuxidc.com/Linux/2017-02/140994.htm
相關文章