標籤:centos rescue 系統修複 glibc 連結修複
前段時間遇到開發人員更新glibc版本,把/usr/lib64/libc-2.12.so & libc.so.6 -> libc-2.12.so 這個軟串連更改之後導致報錯:
ls: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
無法遠程登入,終端也無法登入,也無法單使用者登入,
遠程登入:
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/7C/6C/wKiom1bQFCeA8SsFAAAemVJRLBY130.png" style="float:none;" title="1.png" alt="wKiom1bQFCeA8SsFAAAemVJRLBY130.png" />
終端登入:
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/7C/6C/wKiom1bQFCjT2neQAAAZdjq8ZzE758.png" style="float:none;" title="2.png" alt="wKiom1bQFCjT2neQAAAZdjq8ZzE758.png" />
單使用者:
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/7C/6A/wKioL1bQFJnTxP12AAAr0ulXcao377.png" style="float:none;" title="3.png" alt="wKioL1bQFJnTxP12AAAr0ulXcao377.png" />
其實在執行誤操作之後只要不斷開遠端連線還有挽回的餘地,但遠程異常中斷連線之後很多人就沒有轍了,準備搶救資料&檔案,重裝系統,其實這裡咱們先不要著急重裝系統,咱們來試試rescue !
一、首先準備好系統安裝盤,使用安裝盤啟動:
650) this.width=650;" src="http://s2.51cto.com/wyfs02/M02/7C/6B/wKioL1bQFyiiyx9pAAGi8wcejWs890.png" title="選擇Rescue installed system" alt="wKioL1bQFyiiyx9pAAGi8wcejWs890.png" /> :
二、選擇語言和鍵盤(預設的就好):
650) this.width=650;" src="http://s2.51cto.com/wyfs02/M02/7C/6C/wKiom1bQFpnQUkFGAABXeZieUXc445.png" title="選擇語言" alt="wKiom1bQFpnQUkFGAABXeZieUXc445.png" />
三、稍等一會兒會出現要不要設定網路,一般來說網路沒問題就不用設定了,我這裡選擇No:
650) this.width=650;" src="http://s4.51cto.com/wyfs02/M01/7C/6C/wKiom1bQFy6SBsq-AAA1PQGe3yE741.png" title="設定網路" alt="wKiom1bQFy6SBsq-AAA1PQGe3yE741.png" />
四、這裡就是rescue選項了:
選擇Continue,則救援模式程式會自動尋找系統中已有的檔案系統,並把他們掛載到/mnt/sysimage目錄下。
選擇Read-Only,則會以唯讀方式掛載已有的檔案系統。
手動掛載則Skip。
Advanced ,進階選項就不作說明了。
咱們這兒選擇Continue:
650) this.width=650;" src="http://s5.51cto.com/wyfs02/M02/7C/6B/wKioL1bQGCDDcHoqAACDKFkw2gE957.png" title="rescue選項" alt="wKioL1bQGCDDcHoqAACDKFkw2gE957.png" />
五、原系統掛載路徑/mnt/sysimage,如果想獲得原系統root環境,執行行命令:chroot /mnt/sysimage 即可。
650) this.width=650;" src="http://s2.51cto.com/wyfs02/M00/7C/6B/wKioL1bQGdThFUjbAABWTp9lqv0392.png" title="系統掛載說明" alt="wKioL1bQGdThFUjbAABWTp9lqv0392.png" />
六、這裡可以執行fakd診斷,當然我們這裡直接進入shell 命令列:
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/7C/6C/wKiom1bQGqeT8qgyAAA-3a6VVso643.png" title="9.png" alt="wKiom1bQGqeT8qgyAAA-3a6VVso643.png" />
七、本次重頭戲來了,因為/usr/lib64/libc-2.12.so & libc.so.6 -> libc-2.12.so 問題,執行chroot /mnt/sysinage會報錯:
650) this.width=650;" src="http://s4.51cto.com/wyfs02/M02/7C/6D/wKiom1bQGzmhzNfRAABQaSlSqbQ574.png" title="chroot /mnt/sysinage 報錯" alt="wKiom1bQGzmhzNfRAABQaSlSqbQ574.png" />
八、不要害怕,執行:
cp /lib64/libc-2.12.so /mnt/sysimage/lib64/libc-2.12.socp /lib64/libc.so.6 /mnt/sysimage/lib64/libc.so.6
將光碟片檔案拷貝到系統檔案去,再執行chroot /mnt/sysinage 就正常了:
650) this.width=650;" src="http://s4.51cto.com/wyfs02/M00/7C/6E/wKiom1bQHe7TjnaLAABX_O5j2MU011.png" title="拷貝檔案" alt="wKiom1bQHe7TjnaLAABX_O5j2MU011.png" />
其實到這裡我這次rescue 已經完成了,因為系統缺少/usr/lib64/libc-2.12.so檔案和 libc.so.6 -> libc-2.12.so軟串連 ,複製過去就好了 。
九、退出shell & reboot
650) this.width=650;" src="http://s4.51cto.com/wyfs02/M01/7C/6E/wKiom1bQHuryNHddAAAZAeE9iu0368.png" title="reboot" alt="wKiom1bQHuryNHddAAAZAeE9iu0368.png" />
其他系統檔案損壞也可以參照同樣步驟進行,就不在此贅述了 。
歡迎大家多多指教 ~~~
本文出自 “小陌成長之路” 部落格,請務必保留此出處http://309173854.blog.51cto.com/7370240/1745376
CentOS 救援模式 (rescue installed system)修複損壞系統