linux刪除根目錄後發生了什麼?
02-02
想請教一下大家rm -rf / 命令後到底發生了些什麼。
以前大家總是開玩笑說alias ls=rm -rf /,今天真碰到/目錄被刪除的事情。晚上一個學長告訴我,他不小心操作了rm -rf /* 這樣的操作。導致一個節點掛了。。。。去機房看,節點已經啟動不了,吧硬碟取下掛到另外的節點上,看到原本的/目錄下的內容有一些還存在。一個節點的硬碟數據被刪了影響不大,關鍵是節點上掛載了一個所有節點公用的文件系統,要是把這個文件系統的內容也刪了就徹底GG了。。。。。要是以後還有人這樣誤操作了,會不會影響到公用文件系統的數據呢?
其實 rm 會告訴你,只有加了 --no-preserve-root 參數之後它才會真的去刪掉 / ……
用 *nux 系統這幾年來,誤刪除一些重要的文件的事情曾經發生過(例如刪掉了 /bin ......),但刪除根文件系統這樣的事情倒是沒有發生過。
如果你不相信自己的手的話,可以在 ~/.bashrc 中加入這樣一行:alias rm=mv --verbose -f --backup=numbered --target-directory ~/.Trash/
然後寫一個 crontab 定期清空 ~/.Trash 下的文件夾。
我是真正執行了rm -rf /*,所以除了拆硬碟到其他機器上,已經木有辦法了么
所以公共文件系統要掛到 /zzzz 保證安全。
rm -f -r --no-preserve-root /在虛擬機里執行過以上命令,回車後你會發現你的shell快速閃過一條條提示,很多是提示某個文件不允許刪除。
執行完成之後應該只剩下 /proc /sys 這些虛擬檔案系統,只剩下 shell 內建的命令可以執行。
重啟機器發現進入 grub rescue,內核有沒有被刪不知道,進入rescue模式之後我就不會玩了。然後,就沒有然後了。。。刪過bin 還好有台環境一樣的 恢復模式copy了bin
沒刪除過根目錄,但我做過類似的事情。
有一次想在學校郵件伺服器上部署新的郵件服務,發現GlibC版本不夠高,yum安裝發現版本衝突,當時對GlibC也不了解,不知道是什麼東西(其實我也沒注意這是幹嘛的)。然後我就先把老版本刪掉,打算刪掉再裝新版本,於是就悲劇了。還好只是學生的郵件服務。
GlibC老版本刪掉以後,幾乎所有命令都沒了,包括rm ps...那個悲劇啊,連yum命令本身也沒了。。。SSH也沒了,但是進程還在,所以並沒有馬上被踢出去,當時老夫一緊張就退出來了,後來再也登陸不進去了,因為ssh server沒了嘛。。。後來只能去機房,把老的郵件數據備份到另外一個文件夾,然後重裝系統。。。就是這樣,如果刪除根目錄只能更慘吧就是把 從當前根目錄開始的文件都刪掉啦~運氣好的話 能刪的很乾凈
推薦閱讀: