Linux系統(tǒng)命令找不到了,只能重裝系統(tǒng)?
運(yùn)維時間長了,總會遇到各種難搞的問題,雖然說Linux不像windows server那樣容易出藍(lán)屏,無法啟動之類的系統(tǒng)問題,但也不是不會出現(xiàn)系統(tǒng)層面的故障,比如今天在群里有小伙伴遇到的
環(huán)境變量問題,導(dǎo)致大部分命令無法使用,環(huán)境變量臨時修改不生效,也沒辦法,最終打算重做系統(tǒng)
重做系統(tǒng),拋開數(shù)據(jù)不說,系統(tǒng)上所有環(huán)境都要重新搭建,當(dāng)然不是最佳選擇
其實(shí)系統(tǒng)層面的問題,不管是windows還是linux,都有一種簡單的方式,就是鏡像修復(fù),windows和linux都提供一種通過鏡像修復(fù)系統(tǒng)的功能
我直接拿虛擬機(jī)來和CentOS7系統(tǒng)來做個簡單演示
工具:Hyper-v/CentOS7鏡像
要演示修復(fù),我先得把系統(tǒng)搞掛,所以先做個快照
做完快照,做個很多人都做過的操作,rm -rf,把/bin目錄下的命令都刪掉
有人說bin目錄刪掉之后,ls命令還可以使用
whereis查一下,你就會發(fā)現(xiàn),/usr/bin目錄下也存在ls命令,在CentOS6之前,/usr/bin和/bin是分開的,/bin下是系統(tǒng)級命令,/usr/bin下是用戶級別以及應(yīng)用安裝后可執(zhí)行命令,到CentOS7之后,/bin目錄成了/usr/bin目錄的軟鏈,兩個合并了,所以上面刪除了的是軟鏈,接著,重新刪一下/usr/bin下命令都干掉
ok,完美的玩了一把rm -rf ,命令全都執(zhí)行不了了,開始修復(fù)
這里用的是hyper-v虛擬機(jī),所以把鏡像掛載到cd/dvd之后,重啟
掛上去,可以在設(shè)置里面看下
之后重啟服務(wù)器,進(jìn)修復(fù)模式
進(jìn)來之后,有幾個選項(xiàng)
- Install CentOS Linux 7 in basic graphics mode
這個選項(xiàng)可讓您在安裝程序無法為您的顯卡載入正確的驅(qū)動程序的情況下使用圖形模式安裝
- Rescue a CentOS Linux system
當(dāng)安裝完成的CentOS無法開機(jī)時,選擇此項(xiàng)目進(jìn)行修復(fù)
- Run a memory test
運(yùn)行內(nèi)存測試
- Boot from local drive
從本地磁盤引導(dǎo)
我們這肯定是修復(fù)系統(tǒng),所以選擇Rescue進(jìn)入
這里解釋很清楚,修復(fù)就是通過把原來的系統(tǒng)掛載在/mnt/sysimage下面,然后你可以做任何操作,我們直接選1,就是繼續(xù)這個操作,2是以只讀的方式,因?yàn)槲疫@里是命令刪掉了,我要拷貝文件,所以肯定不能選只讀,其他兩個選型就不多說了
現(xiàn)在就進(jìn)入救援模式了,我們看下原來的系統(tǒng),也就是/mnt/sysimage下面,是不是我原來的系統(tǒng)
可以看到,正是我自己的系統(tǒng)文件,bin目錄也確實(shí)沒有,我們現(xiàn)在做修復(fù),把現(xiàn)在的/usr/bin下的文件拷貝過去,并重新創(chuàng)建/bin軟鏈
拷貝完之后,關(guān)機(jī),把光盤彈出,重新啟動進(jìn)入系統(tǒng),重啟之后會做一次文件系統(tǒng)的恢復(fù),需要比較長的時間,耐心等著就好
重啟之后,即可登錄系統(tǒng),正常使用命令,不過如果之前有安裝應(yīng)用的話,因?yàn)檫@里只是從鏡像中復(fù)制了系統(tǒng)基礎(chǔ)命令,安裝后的應(yīng)用命令沒辦法恢復(fù)了
僅作為一個思路,如果有系統(tǒng)類問題,可以通過這樣的方式進(jìn)行修復(fù)
本文轉(zhuǎn)載自微信公眾號「運(yùn)維研習(xí)社」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系運(yùn)維研習(xí)社公眾號。