error while loading shared libraries: libpam.so.0
2016-11-29 16:46阅读:
问题描述:一次,在我的linux 32bit
虚拟机上更新ssh版本时,使用rpm命令,错误删除了有关pam相关的文件。以至于在切换用户时,报了类似于:
error while loading shared libraries: libpam.so.0: cannot open shared object file: No such file or directory
的错(现在我记得不是非常清楚了)。
我查看了一下/lib目录下的内容,确实没有libpam.so.0文件。
因此,我需要手工给系统添加这个文件。但当时已经退出了root用户。由于切换用户错误,无法再切换到root进行rpm包的安排。
解决方法:在错误删除了系统的pam相关的动态库及文件时,系统无法进行登录。因此,需要使用live CD的方式进行恢复。
1)下载live CD镜像。本人下载的镜像名称:CentOS-5.2-i386-LiveCD.iso。
2)在原虚拟机上,挂载live CD镜像。
3)使用live CD进行启动。在live CD的root用户下,将原始系统的根目录挂载上来。我的原系统根目录(/)的文件为/dev/sda5。其实,live CD系统已经默认将原系统根目录已经进行了挂载(在/mnt/disc/sda5下),但挂载后的目录不具有写权限。因此,要先将其卸载,再重载到指定目录(我选择为/mnt/sda5)。
卸载原挂载点:
#umount /mnt/disc/sda5
重新进行挂载:
#cd /mnt
#mkdir sda5
#mount /dev/sda5 /mnt/sda5
4)下载pam相关的rpm安装包,使用rpm命令,安装这些rpm包。安装时,由于原系统的根目录(/),已经转为live CD系统的指定目录(/mnt/sda/),因此,在使用rpm安装时,需要做一下目录更替。
#rpm -ivh --relocate /=/mnt/sda5 /mnt/sda5/root/
error while loading shared libraries: libpam.so.0: cannot open shared object file: No such file or directory
的错(现在我记得不是非常清楚了)。
我查看了一下/lib目录下的内容,确实没有libpam.so.0文件。
因此,我需要手工给系统添加这个文件。但当时已经退出了root用户。由于切换用户错误,无法再切换到root进行rpm包的安排。
解决方法:在错误删除了系统的pam相关的动态库及文件时,系统无法进行登录。因此,需要使用live CD的方式进行恢复。
1)下载live CD镜像。本人下载的镜像名称:CentOS-5.2-i386-LiveCD.iso。
2)在原虚拟机上,挂载live CD镜像。
3)使用live CD进行启动。在live CD的root用户下,将原始系统的根目录挂载上来。我的原系统根目录(/)的文件为/dev/sda5。其实,live CD系统已经默认将原系统根目录已经进行了挂载(在/mnt/disc/sda5下),但挂载后的目录不具有写权限。因此,要先将其卸载,再重载到指定目录(我选择为/mnt/sda5)。
卸载原挂载点:
#umount /mnt/disc/sda5
重新进行挂载:
#cd /mnt
#mkdir sda5
#mount /dev/sda5 /mnt/sda5
4)下载pam相关的rpm安装包,使用rpm命令,安装这些rpm包。安装时,由于原系统的根目录(/),已经转为live CD系统的指定目录(/mnt/sda/),因此,在使用rpm安装时,需要做一下目录更替。
#rpm -ivh --relocate
