记一次在cenots7下的系统恢复

3,441 阅读2分钟

灾难回放

准备升级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、进入如下界面:

img

2、选择”Troubleshooting”,进入以下界面:

img

3、点击“Rescue a CentOS Linux system”,会进入系统救援界面。但是,我的却报错了:

img

解决办法:

选中“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,重启系统,再次重复上述操作,就能正常进入系统救援界面了:

img

4、输入1,回车后,出现如下界面(初始系统已经挂载到了/mnt/sysimage下面,想要进入初始系统下面,需要执行chroot /mnt/sysimage命令),可以当成正常操作系统一样操作了

img

解决各种报错

既然可以切换根目录,将损坏的操作系统正常操作,那么可以发现并解决各种问题:

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、其它报错,对照网上相关解决方案解决即可