朋友執(zhí)行了rm -rf /*
? ? ?rm -rf /* 相信做技術(shù)的都聽過這條命令,那假如真的執(zhí)行了我們只能跑路了嗎?我們慢慢分析。
起因
? ? ?事情起因是做運(yùn)維的朋友太過相信自己的技術(shù),在做操作centos7的時候命令輸入過快,多敲了一個"/" 導(dǎo)致 rm -rf /* 命令執(zhí)行過后,控制臺報錯 "/boot? device is busy" 好在朋友注意到了這條報錯,及時ctrl +C了命令。
? ? ?當(dāng)命令終止之后,朋友發(fā)現(xiàn)服務(wù)器只能執(zhí)行簡單的命令了,像 "ls","cd" 其它像bash非內(nèi)置命令?"cd" 都無法執(zhí)行,報錯命令不存在,相信此時不管是誰看到此情景都會驚出一身冷汗。
分析? ???
? ? ?1.冷靜下來分析之后,發(fā)現(xiàn) "bin" 已經(jīng)不存在了,"boot"目錄文件已經(jīng)為空了,稍微了解linux 的同學(xué)都知道,此時如果機(jī)器重啟絕對是無法啟動,好在centos7 bin目錄只是一個軟鏈接,朋友通過 "/usr/bin/ln -s /usr/bin /bin"將bin 目錄恢復(fù),命令恢復(fù)正常。
? ? ?2.接下來就是分析boot目錄文件恢復(fù),我們先來看一下boot目錄應(yīng)該有什么文件

? ? ? ? ? ?該目錄下存在 內(nèi)核文件、內(nèi)存文件系統(tǒng)、grup程序及配置文件。
執(zhí)行
? ? ? ? ? ?1.首先 執(zhí)行 uname -a 查看當(dāng)前系統(tǒng)內(nèi)核版本,確認(rèn)版本之后下載對應(yīng)的kernel rpm包,通過yum 安裝內(nèi)核 yum install kernel.rpm,查看boot目錄是否生成內(nèi)核文件。
? ? ? ? ?? 2.生成對應(yīng)initramfs文件,執(zhí)行命令mkinitrd /boot/initramfs-`uname -r`.img `uname -r`

? ? ? ? ? 查看對應(yīng)文件是否生成。
? ? ? ? ? 3.最后通過yum安裝我們的grub程序以及生成grub配置。

? ? ? ? ? ? ?grub2-mkconfid --output=/boot/grub2/grub.cfg 檢查配置文件
最后
? ? ? ? ? 至此,整個恢復(fù)完成,懸著的心終于放下,服務(wù)器重啟操作恢復(fù)正常

后記
? ? ? ? ?幸運(yùn)的是數(shù)據(jù)目錄命名 /data 存在于 /boot目錄之后,數(shù)據(jù)并沒有被刪除,所以有驚無險,也可以總結(jié)生產(chǎn)環(huán)境可以對目錄做一定的規(guī)范。