灾难回放
准备升级python至2.7.15版本。当时在root目录下,发现下载的安装软件包有很多,准备先清理多余的安装包,因为已经加班很晚,疲惫不堪,手贱删除了glibc-2.17目录,其实也没什么,重新又进行了一次安装,整个过程前半部分都十分顺利,但在进行make install的时候,又打开另一个终端,执行了一条 ldd –versoin的命令,悲剧就发生了,报错:relocation error: /lib64/libc.so.6: symbol _dl_starting_up, version GLIBC_PRIVATE not defined in file ld-linux-x86-64.so.2 with link time reference,大意是libc.so.6的动态链接库出了问题。所有c语言的程序都会依赖它,导致大部分命令都无法正常使用,尝试网上很多办法都没有解决。
终极解决办法,系统盘方式启动,进行系统救援
一、使用u盘制作centos7启动盘,具体方法可在网上查阅资料
二、重启服务器,进入BIOS设置u盘为第一启动项,再次重启
三、进入救援模式:
1、进入如下界面:
2、选择”Troubleshooting”,进入以下界面:
3、点击“Rescue a CentOS Linux system”,会进入系统救援界面。但是,我的却报错了:
解决办法:
选中“Rescue a CentOS Linux system”,按 e 键,进入引导界面。修改引导命令如下:
将:
vmlinuz initrd=initrd.imginst.stage2=hd:LABEL=CentOS\x207\x20x86_64 rd.live.check quiet
修改为:
vmlinuz initrd=initrd.imginst.stage2=hd:LABEL=CentOS\x207\x20x8 rd.live.check quiet
命令大同小异,删除该条命令中路径后面的 6_64 就行了。然后按提示 ctrl+x,重启系统,再次重复上述操作,就能正常进入系统救援界面了:
4、输入1,回车后,出现如下界面(初始系统已经挂载到了/mnt/sysimage下面,想要进入初始系统下面,需要执行chroot /mnt/sysimage命令),可以当成正常操作系统一样操作了
解决各种报错
既然可以切换根目录,将损坏的操作系统正常操作,那么可以发现并解决各种问题:
1、报错:relocation error: /usr/lib64/libc.so.6: symbol _dl_starting_up, version GLIBC_PRIVATE not defined in file ld-linux-x86-64.so.2 with link time reference
解决办法:将U盘中的lib64中的libc.so.6、ld-linux-x86-64.so.2文件拷贝至/mnt/sysimage/lib64中目录,记住先要备份之前文件。再次查看
2、其它报错,对照网上相关解决方案解决即可