centos删除zlib后出现rpm:error while loading shared libraries: libz.so.1: cannot open shared object file

当你手贱删除了zlib

不管是出于什么原因删除了zlib,我就是单纯安装完zlib后发现不是自己要的版本,实际应该安装zlib-devel,然后干的蠢事顺手删除了zlib,因为删不掉还特意查了一下

rpm -e --nodeps xx 当时其实作者就有说明会引起系统崩溃,但是我没有太在意,因为就像更新系统一直都懒得做备份一样

然后悲剧出现了,不管怎么样都使用不了rpm sudo su等等一大批命令,同时在图形界面中也没有任何软件能够打开了。因为无法获得root权限,所以也无法传输文件回到lib64里面。

sudo: error in /etc/sudo.conf, line 19 while loading plugin "sudoers_policy"
sudo: unable to load /usr/libexec/sudo/sudoers.so: libz.so.1: cannot open shared object file: No such file or directory
sudo: fatal error, unable to load plugin

刚开始的想法

肯定是重新把软件安装回去,但是折腾了半天还是没有办法在没有root权限的情况下,将软件安装回去万事大吉,即使是make install也会卡在权限问题上

搜索了一段时间后

发现了一篇非常救命的文章,主要他和我碰到的事情差不多,其他人的大部分只是libz.so.1出现了一点问题,而不是zlib完全卸载的系统问题,当时根本想不到一个解压用的软件居然会导致整个系统的崩溃。
这就是那篇文章的地址https://blog.csdn.net/weixin_46941625/article/details/109404274

但是

虽然有了一个基本的思路,但是我发现,他直接用u盘传输文件的方法对我来说不太可行,因为即使是mount也需要root权限,可以说没有权限的情况下基本上是寸步难行,更别说我还好留了几个shell窗口,因为我发现假如zlib被卸载以后,xshell和图形化界面的终端也同样是出于不可用的状态。

所以

  • 当你遇到这个问题之后,不要关机不要关机不要关机,应该立马去你的模拟机上重新安装一个相似版本的系统,然后取出/lib64/libz.so.1.*并且将他们尽量传输到服务器根目录上,我的文件传输到了home上,进入救援模式后chroot /mnt/sysimage后就可以出现home目录了。
  • 如果无法传输文件的话,例如我使用的是rocky8,那么我就再使用Rufus制作一个rocky8的启动盘,然后将上面提到的libz.so.1.*文件放入u盘当中,启动救援模式,挂载u盘,cp文件到lib64里和上面的文章一样了。
  • 这里详细参考
    https://www.cnblogs.com/linagcheng/p/15648682.html

    https://www.cnblogs.com/chenlifan/p/13442291.html
  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值