朋友执行了rm -rf /*
rm -rf /* 相信做技术的都听过这条命令,那假如真的执行了我们只能跑路了吗?我们慢慢分析。
起因
事情起因是做运维的朋友太过相信自己的技术,在做操作centos7的时候命令输入过快,多敲了一个"/" 导致 rm -rf /* 命令执行过后,控制台报错 "/boot device is busy" 好在朋友注意到了这条报错,及时ctrl +C了命令。
当命令终止之后,朋友发现服务器只能执行简单的命令了,像 "ls","cd" 其它像bash非内置命令 "cd" 都无法执行,报错命令不存在,相信此时不管是谁看到此情景都会惊出一身冷汗。
分析
1.冷静下来分析之后,发现 "bin" 已经不存在了,"boot"目录文件已经为空了,稍微了解linux 的同学都知道,此时如果机器重启绝对是无法启动,好在centos7 bin目录只是一个软链接,朋友通过 "/usr/bin/ln -s /usr/bin /bin"将bin 目录恢复,命令恢复正常。
2.接下来就是分析boot目录文件恢复,我们先来看一下boot目录应该有什么文件

该目录下存在 内核文件、内存文件系统、grup程序及配置文件。
执行
1.首先 执行 uname -a 查看当前系统内核版本,确认版本之后下载对应的kernel rpm包,通过yum 安装内核 yum install kernel.rpm,查看boot目录是否生成内核文件。
2.生成对应initramfs文件,执行命令mkinitrd /boot/initramfs-`uname -r`.img `uname -r`

查看对应文件是否生成。
3.最后通过yum安装我们的grub程序以及生成grub配置。

grub2-mkconfid --output=/boot/grub2/grub.cfg 检查配置文件
最后
至此,整个恢复完成,悬着的心终于放下,服务器重启操作恢复正常

后记
幸运的是数据目录命名 /data 存在于 /boot目录之后,数据并没有被删除,所以有惊无险,也可以总结生产环境可以对目录做一定的规范。