解決誤刪 bin bash問題

2022-07-26 16:12:12 字數 1849 閱讀 3917

出現原因:由於當時誤操作把 /bin/bash 命令直譯器二進位制檔案移到了/root 家目錄裡面,再重新登入系統之後,登陸進去什麼也幹幹不了。

解決辦法:讓系統重啟,以掛載光碟模式進入系統bios,選擇cd-rom為第一啟動項。之後重啟系統。

系統重啟的時候選擇救援模式,進入救援模式的命令列。

下面我就具體說明操作步驟:

步驟一:連上光碟,讓系統重啟,進入bios介面,選擇cd-rom為第一啟動項,重啟電腦。

步驟二:電腦重啟之後,進入系統安裝時的介面,我們選擇第三個,進入系統救援模式(注意:這裡如果進入單使用者模式的話,我測試了一下不行)

步驟三:之後操作直接下一步,在網絡卡選擇的時候選擇no,其他選擇項參考博文(之後進入命令列模式。如圖

步驟四:接著就是找到bash的安裝包然後安裝即可(此時的光碟已經是掛載的了,而且最好不要再掛載光碟到/mnt目錄下)。 ls  /dev會顯示裝置列表,但是其中並沒有cd-rom,看的教程上說cd-rom一般模擬的都是hd的裝置,而且cd-rom是指向hdx的乙個鏈結,我的/dev目錄中沒有hd裝置,反而是/dev/***這個裝置(最笨的方法就是實在無法確認的話就大致找幾個貌似對的,先掛載,然後進去找,如果有安裝包列表就是對的)。如圖

步驟五:根目錄下(不是/mnt/sysimage而是這個小系統的根)建立乙個目錄,然後將/dev/***掛載到該目錄下,進入該packages包目錄,

通過命令 「ls | grep 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]#

備註:

linux伺服器 bin bash誤刪的後果

1 該檔案刪除後,etc init.d 目錄下的幾乎所有服務都無法啟動。使用 service sshd start 啟動或停止服務時,報錯 env etc init.d sshd no such file or directory 單獨啟動某個服務,執行 etc init.d 目錄下的服務時,也無法...

解決Oracle誤刪資料操作

1.開啟行移動功能 alter table 表名 enable row movement 2.恢復資料表 flashback table 表名 to timestamp to timestamp 刪除時間點 yyyy mm dd hh24 mi ss 3.關閉移動行功能 千萬不要忘記 alter t...

Linux誤刪libgcc如何解決

在新學習linux時,由於一些不小心的操作從而導致了比較驗證的問題。這裡就是我在初學linux是所遇到的問題,在安裝如那件是由於軟體衝突,不小心把libgcc軟體給刪除了 比如執行了 rpm e nodeps libgcc xx命令 這裡需要的解決辦法就是在其他的跟你系統相同下面拷貝乙個相同的檔案即...