Categories
程式開發

都別攔著我,我要刪庫了


本來想刪公司服務器,經同事勸解,改為刪本人電腦vmware上的虛擬機。

rm -rf / *

一個流傳甚廣的命令,刪庫命令,自毀命令說的都是他,常年霸占Linux最危險命令排行榜第一名。關於它的故事有很多

今天去一公司面試,他們要我寫個shell,我在他們的服務器輸入rm -rf /*,回車,他們現在不讓我走了,我想問問我是不是被錄取了?

某技術討論群裡

問:Linux優化命令是什麼?

答: rm -rf /*

問:好的,我試一下,多謝!

問:臥槽我網站打不開了!現在怎麼辦?

答:跑路吧

一個新來的妹子想卸載Oracle,執行了rm -rf $ORACLE_BASE/*

可是ORACLE_BASE 這個變量沒有賦值。就這樣,全刪了。 。全刪了

命令真正含義:刪除根目錄”/”下所有文件和目錄,有子目錄的遞歸刪除。

刪庫過程

vmware上裝的Red Hat Enterprise Linux Server release 6.6,沒安裝其它應用。切換到root賬號,執行rm -rf /*

都別攔著我,我要刪庫了 1

可以看到滿屏的cannot remove報錯,由於是個剛裝完的系統,都是系統本身的文件,沒有引入外界的文件,很快命令執行完畢。

都別攔著我,我要刪庫了 2

中間省略好幾屏,不能刪的報錯,能刪的就什麼都不提示。

都別攔著我,我要刪庫了 3

然後命令行里ls reboot shutdown命令都無法識別了,想關機或者重啟都不行。 cd命令還好使。

都別攔著我,我要刪庫了 4

都別攔著我,我要刪庫了 5

這個時候securecrt也連不上了,據說如果刪庫之前連接上了,現在可以使用。

都別攔著我,我要刪庫了 6

到Linux桌面,點擊鼠標後桌面圖標全部消失,還好system->shutdown 可以關閉虛擬機。

都別攔著我,我要刪庫了 7

但是卡在下面位置不動了

都別攔著我,我要刪庫了 8

點擊vmware菜單欄的下拉關機按鈕,彈窗報錯“發出的關機請求失敗”

都別攔著我,我要刪庫了 9

想叉掉,沒有反應。虛擬機->管理->從磁盤刪除是灰色的無法點擊。查看控制台視圖,開啟虛擬機是灰色操作不了

都別攔著我,我要刪庫了 10

徹底關閉vmware軟件,彈窗報錯“虛擬機繁忙”

都別攔著我,我要刪庫了 11

任務管理器結束vmware任務,可以退出虛擬機,重新啟動看看

都別攔著我,我要刪庫了 12

再次點擊開啟此虛擬機,卡死在vmware界面

都別攔著我,我要刪庫了 13

但是可以叉掉。

如果vmware重新打開虛擬機vmx文件,可以進入grub引導界面,引導操作不可能成功,因為缺少太多文件了。

都別攔著我,我要刪庫了 14

實驗結論

刪庫後, 各種命令除了cd都不好使了,處於無法使用的狀態。桌面操作也基本不行了,能執行system->shutdown關機,但關機無法成功完成。真實的物理機應該大同小異,無法繼續使用是肯定的,不同的是物理機可以按電源按鈕斷電,然後觀察重啟的反應。做了這個事後,我用vmware重新安裝虛擬機,重裝的虛擬機都不太好使了,經常開虛擬機後卡在開機畫面進不去系統。 vmware卸載再安裝也沒行。後來改用vbox裝虛擬機了。

刪了庫一定要跑路嗎

網友提供了以下經驗

發現刪庫了,馬上ctrl+c掐斷執行的命令和腳本,少刪一個是一個。會有少量命令在刪庫後還是好使的,這些命令能幫助恢復部分其它命令。然後從其它服務器拷貝文件到本機,補齊被刪文件。只是能補齊操作系統本身的文件。拆下硬盤放到其它服務器,然後使用ext3grep或者extundelete,據說有成功恢復部分數據的。萬一那部分就是最重要的數據,那損失就很小了。