意见箱
恒创运营部门将仔细参阅您的意见和建议,必要时将通过预留邮箱与您保持联络。感谢您的支持!
意见/建议
提交建议

翻车!误删/usr/lib/引发的血案,从棺材边成功抢救的过程分享。

来源:恒创科技 编辑:恒创科技编辑部
2024-02-08 23:17:59
写在开篇
血案:本地开发机是CentOS 7,本想删除在/usr/lib/下的一个软链,如:/usr/lib/xxx。当正想删除时,突然被别的事情打扰了一下,回过神之后莫名奇妙的执行了命令:“rm -rf /usr/lib/”,忘记指定文件名了,你说尴尬不尴尬?就在千钧一发之际,马上进行了ctrl+c终止了。但,血案还是发生了,现象就是重启后无法正常进入操作系统了。因日常使用的开发机各种环境都已经搭建好,就不想折腾了。虽然它是虚拟机,但我没有每时每刻对它做快照,就算恢复以前做过的快照,那也不是我想要的样子了。所以,决定对它进行抢救。
抢救过程找一台同一个ISO安装的、且正常运行的系统进行对比/usr/lib/路径下的文件数量

image.png

上面的截图中,就是正常运行的OS,/usr/lib下的文件数量是49个。
已经损坏的操作系统,在救援模式查看/usr/lib/路径下的文件数量

image.png

发现只有44个了,和正常的OS对比少了5个,虽然当时马上ctrl+c终止了,手速再快也无力回天了,还是丢了文件。关于如何进入救援模式,继续往下看哈。
接着,从正常的os中,进入/usr目录,直接在相对路径中打包lib目录,最终得到lib.tar.gz文件,并把它sz到本地。通过软碟通(UltraISO)打开CentOS7的ISO镜像文件,并添加文件lib.tar.gz文件到其根目录下,最后另存为一个新的ISO镜像文件。

image.png


翻车!误删/usr/lib/引发的血案,从棺材边成功抢救的过程分享。

通过这个添加了lib.tar.gz文件的CentOS7镜像启动,并进入救援模式,进入救援模式的整个过程如下:

image.png

image.png

image.png

image.png

到此为止就进入到救援模式下了,且进入的是虚拟系统的根目录,真实的目录存储在/mnt/sysimage下面

image.png

使用chroot命令切换到真实的根目录

chroot /mnt/sysimage/

image.png

挂载光驱到/home/isodata目录下

image.png

挂载光驱成功后,注意到了lib.tar.gz文件了吗?没错了,就是之前把它弄进去的。
将lib.tar.gz复制出来,并将其解压后,拷贝到/usr/lib/下,且是覆盖其所有。然后关机,并将其的启动顺序设置为从硬盘启动,然后开机

image.png

image.png

开机后,发现已经正常进入操作系统,完美!成功从棺材边抢救回来了。

image.png

写在最后
从这种小事就可以说明,我是一个大头虾!如果是线上的生产环境这么个搞法,估计要进监狱了。虽然这次的血案是发生在自己本地的开发机中,同时也给我敲响了一个警钟:敬畏生产环境!

本文转载于(喜欢的盆友关注我们):https://mp.weixin.qq.com/s/TF...

上一篇: Linux安装与卸载软件 下一篇: 手机怎么远程登录云服务器?