首頁 > 軟體

誤刪除libc.so.6的解決方法

2020-06-16 17:20:50

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


IT145.com E-mail:sddin#qq.com