写在开篇

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

抢救过程

  • 找一台同一个ISO安装的、且正常运行的系统进行对比/usr/lib/路径下的文件数量

上面的截图中,就是正常运行的OS,/usr/lib下的文件数量是49个。

  • 已经损坏的操作系统,在救援模式查看/usr/lib/路径下的文件数量

发现只有44个了,和正常的OS对比少了5个,虽然当时马上ctrl+c终止了,手速再快也无力回天了,还是丢了文件。关于如何进入救援模式,继续往下看哈。

  • 接着,从正常的os中,进入/usr目录,直接在相对路径中打包lib目录,最终得到lib.tar.gz文件,并把它sz到本地。

  • 通过软碟通(UltraISO)打开CentOS7的ISO镜像文件,并添加文件lib.tar.gz文件到其根目录下,最后另存为一个新的ISO镜像文件。

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

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

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

chroot /mnt/sysimage/

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

挂载光驱成功后,注意到了lib.tar.gz文件了吗?没错了,就是之前把它弄进去的。

  • 将lib.tar.gz复制出来,并将其解压后,拷贝到/usr/lib/下,且是覆盖其所有。然后关机,并将其的启动顺序设置为从硬盘启动,然后开机

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

写在最后

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

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

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

  1. python足球投注_/usr/lib目录属性更改引发的蝴蝶效应

    问题背景 在Debian7.4系统上使用chromium浏览器时,因为缺少Flash插件而无法播放在线视频,所以需要安装Adobe Flash Player,但是官网链接的deb包点击无反应,只好下载 ...

  2. 由java:local_policy.jar和US_export_policy.jar引发的“血案”

    起因:今天项目上线,上线后监测日志,发现由异常,开始查找问题 ,进而引发了"血案" 线上日志报错如下:Illegal key size 画外音:看到线上项目出现问题心里慌的一批 赶 ...

  3. pip 无法卸载 pillow 解决方案 Not uninstalling pillow at /usr/lib/python3/dist-packages

    1. 问题现象 使用 pip 卸载 pillow 时无法卸载,报如下错误: $ sudo pip3 uninstall pillow Not uninstalling pillow at /usr/l ...

  4. Ubuntu18.04 误删/usr/bin/python3的解决方案

    Ubuntu18.04 误删/usr/bin/python3的解决方案 这应该是一个链接文件,Python.pip3等指令都会指向它,删除之后无法打开Python解释器我在误删之后 首先重新下载了Py ...

  5. could not load inserted library: /usr/lib/libgmalloc.dylib

    本人也刚开始学习iphone开发,最近维护一个程序时,不知道怎么弄的,不能build到真机了,到模拟器没有什么问题,出现的错误是 : ---->>>could not load in ...

  6. Linux 里有/lib和/usr/lib,这两个目录下的库文件有什么区别吗?如果没区别为什么又要分开放呢...

    有区别的. /lib里面给的是root和内核所需so或者a之类的库文件,而/usr/lib是普通用户能够使用的. Linux的程序有两种模式,这个你应该知道,是用户模式和内核模式,和这个也是有关系的, ...

  7. /usr/lib/x86_64-linux-gnu/libopencv_highgui.so.2.4.9: undefined reference toTIFFIsTiled@LIBTIFF_4.0'

    感谢填坑勇士:https://www.cnblogs.com/whu-zeng/p/6874307.html 今天编译caffe ,本来编译过无数次caffe了,基本坑都能解决的.但这次惹恼我了.一直 ...

  8. bash: /usr/lib/jvm/jdk1.7.0_80/bin/java: No such file or directory 问题

    在安装java的时候,经常会遇到一些奇奇怪怪的问题. 在配置好环境变量之后,执行java -version,出现: bash: /usr/lib/jvm/jdk1.7.0_80/bin/java: N ...

  9. 波涛汹涌的黄金甲,一碗中药引发的血案!

    严重声明:网路转载 主要情节: 父王(周润发)说母后(巩利)身体虚寒,需要每天定时服用亲自配置的中药,已服用了几十年.而父王早就知道了母后和太子元祥(刘烨)之间的苟且之事,远征回宫后在其中药中加入一味 ...

  10. `CXXABI_1.3.8' not found (required by /usr/lib/x86_64-linux-gnu/libicuuc.so.55)

    参考: https://blog.csdn.net/u010741000/article/details/86513205 /home/jx/Leo/gcc-4.8.2/build/x86_64-un ...

最新文章

  1. 思考:Linux Kernel的中断处理函数中是否会被其它程序(中断/异常)打断?
  2. Java泛型深入理解小总结
  3. VTK:可视化之CursorShape
  4. abp 打包部署到ubuntu_如何在Ubuntu中安装Docker和运行 Docker容器
  5. java concurrent 例子_[Java Concurrent] 并发访问共享资源的简单案例
  6. mysql 结果保存到文件_将MySQL中sql运行结果保存到文件
  7. connect: Address is invalid on local machine or port is not valid on remote
  8. springboot mysql事物_springboot如何开启数据库事务
  9. 《SQL高级应用和数据仓库基础(MySQL版)》作业 ·007
  10. gulp安装指定版本_对比webpack,你更应该先掌握gulp【10分钟教你彻底掌握gulp】
  11. 1005 地球人口承载力估计
  12. 获取稳定的西刺代理IP
  13. ansys中模态扩展是什么意思_ansys模态分析步骤
  14. python语言程序设计教程赵璐 第三章 课后习题 程序流程控制
  15. k8s停止服务_Kubernetes 优雅停止Pod
  16. 网页制作html+css+javascript
  17. Processing 入门基础【秒懂小白篇】
  18. Pisces的属性配置文件加载
  19. 校技能节之打铁记~~~~~~
  20. 两种方法实现轮播图效果

热门文章

  1. JAVA时间字符串去空格、冒号和横杠
  2. php如何pfx转成jks证书,常规方法不行,变相来实现
  3. matlab:双或三方演化博弈,lotka-Volterra 1.双方演化博弈:代分析稳定点分析,代绘制相位图,matlab仿真图代码
  4. 世界金融发展史:从资产证券化到STO
  5. VSCode绿豆沙主题,爱护你的眼睛,丢掉深色背景
  6. Lick the habit 戒除恶习
  7. MFC之对于文档类的DeleteContents和OnNewDocument说明29
  8. xftp 7 连接 服务器
  9. mysql safe file priv_mysql --secure-file-priv问题解决方案
  10. 数据挖掘工具主要有哪几种?