記一次CentOS5.7更新glibc導致libc.so.6失效,系統無法啟動


 

以下是錯誤示范,錯誤過程還原,請勿模仿!!!

wkhtmltopdf 啟動,提示/lib64/libc.so.6版本過低

$ ./wkhtmltopdf http:www.baidu.com 1.pdf
./wkhtmltopdf: /lib64/libc.so.6: version `GLIBC_2.9' not found (required by ./wkhtmltopdf)
./wkhtmltopdf: /lib64/libc.so.6: version `GLIBC_2.10' not found (required by ./wkhtmltopdf)
./wkhtmltopdf: /lib64/libc.so.6: version `GLIBC_2.7' not found (required by ./wkhtmltopdf)

查看系統glibc版本,發現最高是2.5,需要升級到2.10

$ strings /lib64/libc.so.6 |grep GLIBC_
GLIBC_2.2.5
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
GLIBC_PRIVATE

當時並不清楚glibc的重要性,看是版本過低,就想着升級唄

下載了個glibc2.10版本

$ mkdir build // 在glibc-2.14目錄下建立build文件夾 $ cd build // 進入build目錄 $ ../configure --prefix=/usr/local/glibc // 配置glibc並設置當前glibc-2.14安裝目錄 $ make && make install // 編譯安裝glibc-2.14庫

安裝完成后, 建立軟鏈指向glibc-2.10, 執行如下命令:

$ rm -rf /lib64/libc.so.6 // 先刪除先前的libc.so.6軟鏈 $ ln -s /usr/local/glibc-2.10/lib/libc-2.10.1.so /lib64/libc.so.6

此時系統報錯sgment fault,通過ldconfig重新恢復,libc.so.6重新指向libc-2.5.so,我的升級目的沒有達到,豈能罷休?看到/lib64下有libc-2.5.so,

於是“靈機一動”,把libc-2.10.1.so也復制到/lib64下,$ ln -s /lib64/libc-2.10.1.so /lib64/libc.so.6

這下成功將libc.so.6指向了libc-2.10.1.so了

可是悲催的是系統各種命令都不能再使用:

/bin/ls: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory

ssh遠程連接也中斷了,無法再連接,本機上無法打開終端。無可奈何,我做了一個更加可怕的決定,重啟!

於是乎,CentOS 5.11,GG!

 

以上是錯誤示范,錯誤過程還原,請勿模仿!!!

事情搞完了,系統起不來了,可是里面的數據不能丟!咋辦啊?

不敢亂動那個硬盤,找了個其他硬盤,裝上了相同的CentOS 5.11系統,將原硬盤掛載上去,趕緊把數據先備份下來。

重新將libc.so.6指向libc-2.5.so:

[root@localhost lib64]#ln -s libc-2.5.so libc.so.6

卸下替用的硬盤,原硬盤的系統恢復正常。CentOS 5.11 正常跑了 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM