写在开篇

血案:本地开发机是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. Java-COW在Java中的应用
  2. python前段管理3
  3. 统计学---掌握数据的整体状态
  4. 基于.NET平台的分层架构实战(二)——需求分析与数据库设计
  5. c# 获取路径的盘符_c#获取驱动器盘符
  6. nginx安装到指定目录
  7. mysql count 1_高性能MySQL count(1)与count(*)的差别
  8. java转换 HTML字符实体,java特殊字符转义字符串
  9. Linux下JRE添加字体
  10. linux下常用文件传输命令(转)
  11. 矿机 矿场 矿池 关系和区别
  12. windows C盘自动清理bat脚本
  13. mysql 中电话号码_类型-电话号码和地址的mysql数据类型
  14. 网站服务器需不需要装杀毒软件,服务器要不要装杀毒软件
  15. Java 开发实例(第3篇),绘制迷宫1 生成迷宫地图
  16. 微信小程序搜索功能系列 一套全
  17. php网页在iis里打不开,asp的网站在iis上打不开
  18. 财务管理----记账凭证
  19. 总结-互联网校招面试锦囊
  20. JQuery极果商城项目实战(附完整代码)

热门文章

  1. hackinglab-脚本关10——基情燃烧的岁月
  2. 网吧服务器哪个好稳定,网吧服务器不应盲目追高新:够用稳定就好
  3. Android:执行exec app_process启动jar失败原因
  4. 银行核心系统之假期表
  5. 抓网页_面包网_javaSE
  6. 中国大学慕课python答案 北京理工大学_中国大学慕课mooc_Python 语言程序设计_章节测验答案...
  7. 【计算机网络】根据IP地址计算网络地址
  8. RTKLIB单点定位处理流程之一(postpos/后处理)
  9. php七牛云,php七牛云
  10. 金属箔式应变片实验思考题