linux平臺:REHL6.7
故障原因:由於不小心使用命令yum update nss誤升級了工作平臺中nss系列工具包導致系統中yum 和 rpm命令執行都報錯。
由於yum rpm命令都不好用使用使用平臺將會變得異常艱難,因此嘗試將nss降級。
但是由於nss升級導致yum 和 rpm都不好用
yum history undo 或者 rpm -Uvh –oldpackage 等命令也無法實現
在查閱相關資料之後決定嘗試使用救援Rescue模式進行nss版本降級工作
首先應該進入救援shell模式,下面是進入步驟
將linux系統ISO檔案製作成U盤或者在虛擬機器下掛載到虛擬機器DVD光碟機中
接下來選擇“Rescue installed system”然後按回車確認
選擇語言English 鍵盤佈局US
4、SetupNetworking選擇Yes,IP地址等選擇自動就好了,這樣可以使用yum源進行恢復
5、救援模式選擇Continue
6、選擇OK進入該模式
7、選擇shell模式 Start shell 回車進入,下圖可以看見可以進入shell可以輸入命令了
接下來是恢復軟體包過程
方法1:使用yum undo命令恢復(在救援模式下該命令好用)
由於使用光碟啟動的救援系統因此需要使用chroot /mnt/sysimage 命令切換到自己安裝的系統上去
輸入 yum history命令檢視yum安裝包記錄,可以知道升級什麼軟體導致系統異常
找到異常升級步驟後使用yum history undo N 回滾yum操作
如果上步回滾成功那麼恭喜,可以不用執行下面操作了
由於yum源中未找到要恢復的nss版本,undo命令失效,下面要使用終極大法了
終極大法(使用光碟原始RPM包修復)
由於使用光碟啟動的救援系統因此需要使用chroot /mnt/sysimage 命令切換到自己安裝的系統上去(前面敲過該命令可以不使用)
建立目錄cd mnt ; mkdir media
掛載光碟檔案到media目錄下mount /dev/dvd media,掛載後ls檢視資料夾如下圖:
RPM安裝包存放在Packages資料夾下 cd Packages;ls 可以看見系統所有的rpm包
接著檢視要修復的軟體包使用命令
rpm –Uvh –0ldpackage –nodeps xxx.rmp 修復
--nodeps可以先不使用 如果有相應的依賴包的需要使用該引數忽略依賴
6、使用rpm –qa | grep xxx檢視軟體版本是否正確,確認沒問題後退出救援重新載入系統
恭喜!程式到此修復成功,