Linux中误删除libselinux恢复方法
*** 作环境:CentOS7.5
背景:安装openssl-devel时报错:
Error: Protected multilib versions: libselinux-2.5-12.1.el7.x86_64 != libselinux-2.5-14.1.el7.x86_64卸载了libselinux-2.5-14.1.el7.x86_64导致服务器故障。 rpm -e --nodeps libselinux-2.5-14.1.el7.x86_64
执行命令报:
修复方法:需要拷贝一个libselinux.so.1文件到/lib64/目录下
一、不关机修复
1、在故障服务器启动一个rsync
2、在另一台CentOS7.5服务器启动一个客户端。
3、在故障服务器把客户端拷贝过来的文件在拷贝到/lib64/
二、关机修复
说明:服务器没有安装rsync,需要挂在系统版本镜像,重启服务器进入救援模式。
1、进入救援模式的方法,如图选择Troubleshooting,在选择rescue a CentOS system,输入1获得一个有读写权限的shell。
2、重新挂载下系统为读写权限
3、输入ls /lib64/libc.so.6命令查看是否有该文件(因为是光盘自带的系统,并没有挂载在根目录下,所以该文件没有被删除)
4、找到了所需要的文件,只需要把该文件复制到丢失文件的系统里就可以(系统被挂载到了/mnt/sysimage目录中)
cp /lib64/libc.so.6 /mnt/sysimage/lib64(把文件复制到丢失的文件系统里)
5、重启服务器恢复正常。
6、进入救援模式遇到报错情况处理:
进入以下界面时报:
the rescue environment will now attempt to find your linux installation and mount it under the directory : /mnt/sysimage. you can then make any changes you can choose to mount your file systems read-only instead of read-write by choosing 2 if for some reason this process does not work chroot 2
时不能选择1以读写的权限进入系统,只能选择2以只读的模式进入到系统。
重新挂载一个除了系统版本外的ISO镜像,在进入到救援模式后,选择1以读写的方式进入系统,拷贝libselinux.so.1文件到lib64目录下,在重新挂载系统本身版本ISO后就可以选择1以读写的模式进入系统重新拷贝libselinux.so.1文件。
7、重启进入系统时报:
解决方法:
1、系统启动的时候,按下‘e’键进入grub编辑界面,编辑grub菜单,选择“kernel /vmlinuz-XXXXro root=/dev/vogroup00/logvol00 rhgb quiet” 一栏,按‘e’键进入编辑,在末尾增加enforcing=0,即:
kernel /vmlinuz-XXXXro root=/dev/vogroup00/logvol00 rhgb quiet enforcing=0(其中enforcing=0是需要加上去的,其他不动)
按‘b’键继续引导,正常进入系统。
2、如果系统启动按e不能进入到grub界面,那就是libselinux.so.1文件不兼容导致服务器不能启动上来,需要重新进入救援模式把/mnt/sysimage/lib64/libselinux.so.1删除后重新拷贝一个文件进入重启服务器,正常进入系统。
linux如何恢复删除的文件呢,下面就让我们来看看吧。1、在命令框中找到已删除文件路径。
2、输入df+文件路径命令查看一下路径的分区所在。
3、利用系统自带的还原工具debugfs来修复,并分别运行open/dev/vdal、Ls/mnt/SummerTest两个命令,回车后即可找到删掉的文件。
4、输入logdump–i+
5、输入ddif=/dev/vda1of=/mnt/Summer_Test/China.pngbs=1152count=1skip=6291611命令。
6、回车后返回该路径即可看到删掉的文件已恢复。
以上就是小编的分享,希望能帮助的大家。
本文章基于ThinkpadE15品牌、centos7系统撰写的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)