背景
一台OpenEuler 20.03 操作系统的虚拟机XX运行在某台宿主机上,但该宿主机主板故障引起HA,虚拟机被调度到其他宿主机上运行,发生了重启,重启后,VCenter界面查看虚拟机时未能获取到相关IP地址
处理过程:
尝试重启后,报以下错误,大概意思是 libssl.so.1.1文件未被定义,联想到可能是用户更改了某些依赖文件或是误操作了什么,但询问用户给的反馈是没有更改任何东西
...这里挂了iso重启安装了NetworkManager与openssl服务后,都未能解决问题,最后使用find命令,查找libssl.so.1.1依赖文件路径,发现是在/usr/local/lib/下,所以在/etc/ld.so.conf文件下追加了/usr/local/lib/后使用ldconfig更新依赖库缓存后,网卡自动UP起来了。问题解决
补充ldconfig的作用:
ldconfig是一个动态库配置文件,该文件默认下只有一行 include ld.so.conf.d/*.conf,作用是将 ld.so.conf.d下的*.conf文件都加载起来(可使用ldconfig -v 查看当前加载了哪些lib),汇成一个cache文件即路径是/etc/ld.so.cache,程序链接时会从cache文件中查找相关lib,再从ld.so.conf文件中的路径查找。
再回顾到文章中的一开始遇到的问题,重启NetworkManager时遇到libssl.so.1.1未被定义问题,其原因是在cache中未能找到libssl.so.1.1,而ldconfig配置文件下只定义了include ld.so.conf.d/*.conf,ld.so.conf下也没有指定/usr/local/lib路径,所以导致重启NetworkManager失败。将/usr/local/lib 追加至ld.so.conf文件中后使用ldconfig 刷新后就解决了此次问题