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

写在开篇

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

抢救过程

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

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

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

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

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

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

  1. 接着,从正常的os中,进入/usr目录,直接在相对路径中打包lib目录,最终得到lib.tar.gz文件,并把它sz到本地。
  2. 通过软碟通(UltraISO)打开CentOS7的ISO镜像文件,并添加文件lib.tar.gz文件到其根目录下,最后另存为一个新的ISO镜像文件。

翻车!误删/usr/lib/引发的血案,从棺材边成功抢救的过程分享。
  1. 通过这个添加了lib.tar.gz文件的CentOS7镜像启动,并进入救援模式,进入救援模式的整个过程如下:

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

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

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

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

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

翻车!误删/usr/lib/引发的血案,从棺材边成功抢救的过程分享。
  1. 使用chroot命令切换到真实的根目录
chroot /mnt/sysimage/

翻车!误删/usr/lib/引发的血案,从棺材边成功抢救的过程分享。
  1. 挂载光驱到/home/isodata目录下

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

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

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

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

翻车!误删/usr/lib/引发的血案,从棺材边成功抢救的过程分享。
  1. 开机后,发现已经正常进入操作系统,完美!成功从棺材边抢救回来了。

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

写在最后

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

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

Original: https://www.cnblogs.com/ttropsstack/p/16608619.html
Author: 不背锅运维
Title: 翻车!误删/usr/lib/引发的血案,从棺材边成功抢救的过程分享。

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/582292/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 磁盘操作指令 dd

    dd if=/home/thotf/PaperOS/boot/mbr.bin of=/home/thotf/bochs/hd60M.img bs=512 count=1 conv=…

    Linux 2023年6月7日
    0118
  • JuiceFS V1.0 RC1 发布,大幅优化 dump/load 命令性能, 深度用户不容错过

    各位社区的伙伴, JuiceFS v1.0 RC1 今天正式发布了! 这个版本中,最值得关注的是对元数据迁移备份工具 dump/load 的优化。 这个优化需求来自于某个社区重度用…

    Linux 2023年6月14日
    092
  • 站长工具

    背景 日常测试全国各种某网站的响应情况使用 站长工具 站长工具 http://tools.wujingquan.com/ 站长工具 ping检测 ping检测 https://pi…

    Linux 2023年6月6日
    0127
  • 高通平台如何避免误入FFBM模式

    前面两篇博客分别介绍了通过fastboot和QFIL工具退出FFBM模式的方法。虽然售后的同学可以这么指导用户做恢复,但步骤多操作也麻烦,且属于事后处理,如果大面积高概率地出现,会…

    Linux 2023年6月7日
    0118
  • 安卓开发——WebView+Recyclerview文章详情页,解决高度问题

    安卓开发——WebView+Recyclerview文章详情页,解决高度问题 最近在写一个APP时,需要显示文章详情页,准备使用WebView和RecyclerView实现上面文章…

    Linux 2023年6月8日
    091
  • protobuf 的交叉编译使用(C++)

    为了提高通信效率,可以采用 protobuf 替代 XML 和 Json 数据交互格式,protobuf 相对来说数据量小,在进程间通信或者设备之间通信能够提高通信速率。下面介绍 …

    Linux 2023年6月7日
    0153
  • 如何提高团队开发质量

    年轻的时候去面过一个相对于当时我的比较高端的管理岗位,当时的我情况是,开发经验相对丰富, 但管理经验还欠缺。对方当时面临一个具体的问题。 “我们最近生产上,出现了一个比…

    Linux 2023年6月13日
    090
  • Ceph创建一个新集群 报错: File “/usr/bin/ceph-deploy”, line 18, in……….

    [root@ceph-node1 ceph]# ceph-deploy new node1 Traceback (most recent call last): File &quo…

    Linux 2023年6月13日
    0108
  • KETTLE使用中的错误集锦

    1.违反唯一主键约束条件:问题是表中有俩个主键,将备用主键替换成真正的主 键或者是没有对数据做出处理加这句话and cft.DEL_FLAG!=’1’或者要…

    Linux 2023年6月13日
    0178
  • FastDFS安装和简介详细总结

    1、fastDFS简介 1 FastDFS是用c语言编写的一款开源的分布式文件系统。 2 FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用…

    Linux 2023年6月7日
    0128
  • 防止shell script多次运行

    防止shell script多次运行 一个思路是在script初期检测系统中是否存在同名进程。 if [ ps -ef | grep "test.sh" | g…

    Linux 2023年5月28日
    090
  • Linux tcpdump抓包命令排查

    bash;gutter:true; tcpdump命令行参数介绍:</p> <p>-A 以ASCII格式打印出所有分组,并将链路层的头最小化。 -c 在收到…

    Linux 2023年6月13日
    0101
  • 005 Linux 命令三剑客之-sed

    grep:数据查找定位 awk:数据切片,数据格式化,功能最复杂 *sed:数据修改 三剑客各有所长,就从锅碗瓢盆一一开始吧! [En] The three swordsmen h…

    Linux 2023年5月27日
    0118
  • 数字证书编码ASN.1

    任务详情 参考附件中图书p223 中13.2的实验指导,完成DER编码 序列号=1174(0x0496),证书签发者 DN=”CN=Virtual CA,C=CN&#8…

    Linux 2023年6月8日
    066
  • jquery ajax提交数据给后端

    大家好,今天铁柱兄给大家带一段jquery ajax提交数据给后端的教学。 初学javaweb的同学前端提交数据基本上都是用form表单提交,这玩意儿反正我是觉得不太好玩。而Jav…

    Linux 2023年6月13日
    098
  • [ Linux ] column 简明用法

    options -c 指定每一行输出的宽度。 -t 判断列来输出,对齐所有列。 主要用到的就是这个选项。 -s 指定分隔符,默认为空白符。 -o 指定用于对齐列填充的符号,默认为空…

    Linux 2023年6月7日
    0115
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球