出現原因:由於當時誤操作把 /bin/bash 命令解釋器二進制文件移到了/root 家目錄里面,再重新登錄系統之后,登陸進去什么也干干不了。
解決辦法:讓系統重啟,以掛載光盤模式進入系統BIOS,選擇CD-ROM為第一啟動項。之后重啟系統。
系統重啟的時候選擇救援模式,進入救援模式的命令行。
通過光盤重新安裝bash命令解釋器(網上說也可以通過遠程下載bash rpm包來安裝,這個方法我沒有試過,不知道行不)。
下面我就具體說明操作步驟:
步驟一:連上光盤,讓系統重啟,進入BIOS界面,選擇CD-ROM為第一啟動項,重啟電腦。
步驟二:電腦重啟之后,進入系統安裝時的界面,我們選擇第三個,進入系統救援模式(注意:這里如果進入單用戶模式的話,我測試了一下不行)
步驟三:之后操作直接下一步,在網卡選擇的時候選擇NO,其他選擇項參考博文(https://www.cnblogs.com/l75790/p/9403336.html),之后進入命令行模式。如圖
步驟四:接着就是找到bash的安裝包然后安裝即可(此時的光盤已經是掛載的了,而且最好不要再掛載光盤到/mnt目錄下)。 ls /dev會顯示設備列表,但是其中並沒有CD-ROM,看的教程上說CD-ROM一般模擬的都是hd的設備,而且CD-ROM是指向hdX的一個鏈接,我的/dev目錄中沒有hd設備,反而是/dev/dvd這個設備(最笨的方法就是實在無法確認的話就大致找幾個貌似對的,先掛載,然后進去找,如果有安裝包列表就是對的)。如圖
步驟五:根目錄下(不是/mnt/sysimage而是這個小系統的根)創建一個目錄,然后將/dev/dvd掛載到該目錄下,進入該Packages包目錄,
通過命令 “ls | grep bash” 找到該bash安裝包。
步驟六:這一步驟就是安裝bash包。這里我是把bash安裝包拷貝到根(/)目錄下面,在重新安裝的。大家也可以直接在該目錄里面安裝。
安裝命令:rpm -ivh --replacepkgs --root /mnt/sysimage /bash-4.1.2-48.el6.x86_64
其中:
--replacepkgs:指定替換原來的bash包;
--root /mnt/sysimage:指定將包裝在根下(前面進去救援模式時告訴你的此時的根在/mnt/sysimage);沒有此選項說明你把bash包裝到當前的這個小系統中去了,並不是裝到原系統中去,如圖:
步驟七:切換到真正的根上去查看是否裝上了,完成到這一步就說明問題已經解決了;如圖
步驟八:重新啟動,選擇boot from local drive啟動,進入/bin目錄下可以重新找到bash
進入系統后,自己測試一下看有什么問題沒有:
[root@PandaLi ~]# cd /bin/
[root@PandaLi bin]# ll | grep bash
-rwxr-xr-x. 1 root root 868596 Aug 29 2012 bash
lrwxrwxrwx. 1 root root 4 Jul 26 02:46 sh -> bash
[root@PandaLi bin]#
備注:
如果不確定能不能掛載上,或是不想用這個方式,而且你知道網絡上有一台服務器,里面某個目錄里有這個安裝包,此時只需要連接該服務器切換到這個目錄里,將其下載到本地安裝即可(這個是教程說的,我沒試,但是也是一種解決辦法)