Linux基础——虚机mysql库覆盖/usr/lib64/libcrypto.so.1.1.1f无法启动

1、问题描述

租户新增数据库mysql,手动覆盖/usr/lib64中的libcrypto.so.1.1.1f库文件,导致主机重启进入救援模式。

 

2、问题分析

i.发现报错

poweroff: error while loading shared libraries: libcrypto.so.1.1: cannot open shared object file: No such file or directory

ii.检查/usr/lib64/libcrypto*

注意:查看文件时间有被修改

 

 

3、问题处理

i.检查/mnt/sysroot/usr/lib64/libcrypto*是否存在

注意:在救援模式环境,不执行chroot /mnt/sysroot,不切换到用户系统环境;

ls -al /mnt/sysroot/usr/lib64/libcrypto*

ii、安装openssl*包到用户环境/mnt/sysroot/usr/lib64/下

注意:用户环境(chroot /mnt/sysroot)由于缺少libcrypto.so的相关库文件,yum和rpm无法使用,借用镜像的PE环境修复相关缺失包。

# 切换用户环境

chroot /mnt/sysroot

# 挂载iso镜像到用户环境的目录/mnt/os

lsblk

mkdir /mnt/os

mount /dev/sr0 /mnt/os

# 退出用户环境

exit

# 创建rpm解压目录

mkdir /mnt/rpm

cd /mnt/rpm

# 解压openssl-1.1.1f-10.oe1.x86_64.rpm

rpm2cpio ./Packages/yum-4.2.23-4.oe1.noarch.rpm |  cpio -div

# 恢复libcrypto.so.1.1.1f到用户环境目录/mnt/sysroot/usr/lib64/

cp /mnt/rpm/libcrypto.so.1.1.1f /mnt/sysroot/usr/lib64/

# 重启

reboot

exec /bin/init

4、结论

检查发现/usr/lib64/libcrypto文件被改动过,由于业务方将mysql的libcrypto.so.1.1.1f库覆盖openssl安装/usr/lib64/libcrypto.so.1.1.1f,导致系统无法适配该文件,重启主机失败。

5、涉及知识点

openssl在ISO救援模式下的rpm安装方法;

openssl在ISO救援模式下的rpm2cpio解压方法;

libcrypto在ISO救援模式下的恢复方法;

指令ldconfig -v读取/etc/ld.so.conf用于载入指定库目录及文件;

 

 

6、参考

https://www.cnblogs.com/subsea/p/17682962.html


 

posted on 2024-10-25 11:12  gkhost  阅读(46)  评论(0编辑  收藏  举报

导航