1. 程式人生 > >誤刪除glic導致linux系統崩潰的處理辦法

誤刪除glic導致linux系統崩潰的處理辦法

示例環境

此文件的執行環境為:

  • centos 6.5系統
  • vmware6.0虛擬機器

誤操作場景

導致伺服器出問題是在將glibc的版本由2.14降至2.12的過程中,修改glibc.so.6檔案軟連線的時候誤操作,將glibc.so.6重新命名錯誤!導致系統崩潰!因為在當時安裝mysql5.7時,需要glibc的版本為2.14,所以當時升級為glibc-2.14,後來mysql採用官方編譯好的版本進行的安裝,所以就不對再對本地的glibc版本有要求了;centos6對glibc2.12以上的版本相容不太好,有可能會有一些相容問題,比如這次出現的vim輸入漢字出現亂碼!所以今後再出現安裝軟體對本地庫有版本需求的時候,要慎重考慮升級本地庫版本!
作業系統目錄:/lib64/下,有libc.so.6檔案,此檔案為作業系統執行glibc庫的關鍵檔案,如果此檔案誤刪除或重新命名,那麼會造作業系統的崩潰!
文件中的失誤場景為:將/lib64/libc.so.6檔案誤命名為/lib64/libc.so.6.bak


此文件的方法不只適用於誤操作glibc檔案導致系統崩潰,也適用於其他系統級檔案或庫誤操作導致的系統崩潰!

解決辦法

此時ssh遠端登入無法使用,需要使用linux救援模式啟動系統,如果重啟主機會出現:

這裡寫圖片描述

vmware BIOS啟動配置,在vmware中設計目標主機,在設定中如下配置:

這裡寫圖片描述

儲存配置後:

這裡寫圖片描述

在虛擬機器上選擇啟動進入”BIOS”,不同vmware或不同虛擬化應用,可能此選項位置不相同!但是隻要知道開機進入”BIOS”即可!

進入BIOS成功的頁面如下:

這裡寫圖片描述

按方向鍵”->”,進入”Boot”

這裡寫圖片描述

按方向鍵”上箭頭”,”下箭頭”來選擇圖中幾個選項,選中之後,利用”+”或”-“來調節順序,使”CD-ROM Drive”排至第一位!然後按”F10”儲存配置:

這裡寫圖片描述

選擇”Yes”,然後進入救援模式:

這裡寫圖片描述

回車啟動!即可進入救援模式!

上一步回車後,進入選擇語言頁面:

這裡寫圖片描述

選擇英語後選擇 “US”:

這裡寫圖片描述

然後詢問是否進行網路配置,這裡先不去配置:

這裡寫圖片描述

接下來詢問是否繼續,選擇繼續:

這裡寫圖片描述

點選”ok:

這裡寫圖片描述

點選ok後,選告訴你,系統掛在至”/mnt/sysimage”:

這裡寫圖片描述

選擇”ok”,回車,選擇進入shell模式:

這裡寫圖片描述

最終,進入救援模式成功:

這裡寫圖片描述

上圖為執行shell的地方!

執行命令”chroot /mnt/sysimage”,會出現如下報錯:

這裡寫圖片描述

問題就是上面提到的,把”/lib64/libc.so.6”修改為了”/lib64/libc.so.6.bak”,注意,在當前shell環境下,”/”為之前掛載的映象的根目錄,而原本的主機的根目錄為”/mnt/sysimage”,所以需要去”/mnt/sysimage/lib64/”目錄把”libc.so.6.bak”修改回”libc.so.6”,所以執行命令:

mv /mnt/sysimage/lib64/libc.so.6.bak  /mnt/sysimage /lib64/libc.so.6

修改完成後,執行命令檢視是否成功,執行” chroot /mnt/sysimage”,沒有出現任何報錯資訊,則修改成功!
如果檔案丟失,除了直接修改出問題的檔案以外,也可以直接從映象中拷貝缺失的libc.so.6檔案到/mnt/sysimage/lib64下:

cp /lib64/libc.so.6  /mnt/sysimage/lib64/libc.so.6

在命令列內輸入”exit”命令,然後選擇重啟主機,即正常啟動成功:

這裡寫圖片描述

關閉後,請將vmware的啟動設定恢復成原來的樣子。