昨天,就在昨天,才部署了几天的一个大屏服务的服务器,大部分命令都不好使了,之前有遇到过类似的问题,一般都是内核文件损坏或被误删,看看这次的报错吧:
报错关键词:
relocation error: /lib64/libc.so.6: symbol _dl_starting_up, version GLIBC_PRIVATE not defined......
- 首先一点提醒就是:
此时最最重要一点是不要关闭当前窗口,不要重新启动机器! 一旦关闭窗口将无法重新连接(可以自己新建窗口试下),重启机器后也将无法进入系统 。
然而杯具的是,我偏偏重启系统了,好在这个是个虚拟机,可以在Windows主机的VMware进行操作。如果是物理机就麻烦了。。
一般的思路就是,想办法修复这个文件,就是用正常的文件替换它,怎么替换呢,这里用的是这种方式:
- 用CentOS的安装iso启动,进入 Rescue 开头的模式:
2. 进入后,此时的/ 是安装镜像中的根目录,原先的根目录 被挂载到了 /mnt/sysimage 当中,我们需要做的,就是拷贝原始的文件,覆盖到 原先的目录中
cp -rf /lib64/* /mnt/sysimage/lib64/
这样,可以解决几乎所有的问题。
- 如果这个方法还不好使,还有备用方案:就是给机器挂一个新的磁盘,然后将关键数据拷贝过去,再起一台新的服务器,将该磁盘挂载到新的服务器上。
- 结束!…了吗?? 并没有,果然应了一句话,无荆棘不成路!!
时隔一星期,想起了又yum安装了一个东东,完了,又报了同样的错误,遂继续按照上面的方法走了一遍,重启。。
正常启动的画面并没有,而是卡住了:
Started Update UTMP about System Runlevel Changes
翻译过来意思就是:
开始更新有关系统运行级别更改的UTMP …
百度,说是Gnome的问题,但咱没有装GNOME啊,遂按照上次的经验,本着一次性解决所有问题的方法,干脆重-装-系-统吧,重装之后再恢复数据的大致操作步骤,命令省略: - ① 进入老机器的Rescue模式中,把需要备份的目录拷贝到新挂载的磁盘sdb上,完了之后关机。
- ② 再将sdb挂载到新的虚拟机上,拷贝文件,启动服务,完事儿!