花几分钟记录一下这次事故,起因是这样的,我在用openssl工具生产证书的时候,提示我要用GNULIBC版本2.25
以上的版本,但是我看了下我的系统的GNULIBC的版本是2.17的,于是一顿操作猛如虎,我自信地开始了我的升级
之旅,但是到make install那儿的时候,我发现失败了,于是我用另一个终端打开准备看看怎么回事,但是非常
残酷的现实就是这时候pwd,ls等命令都不可以用了,于是我强制关了机,试图用重启大法来结束这一场失败的升
级,但是厄运才刚刚开始,我已经不能打开我的虚拟机的,我的心要碎了,慌得要命,这个虚拟机上有我平时写的
很多珍贵的测试程序和学习的痕迹,于是我在搜索很多帖子没有进展的情况下,在一个技术群里将情况描述了以后
问如何才可以恢复,好心人们和我简单说了下,大概有以下两种:
(1)用快照恢复(但是我没有存快照);
(2)再建一个虚拟机,把原来的磁盘挂载上,把glibc改回来,或者直接看提示一步一步修改。
根据我的实际情况,很显然第二种方式是符合我这次的恢复方案的,于是我加了提出第二种方式恢复环境的大哥的
微信,再说一下我拥有的机器的背景:
(1)机器A,机器B,A和B都是由同一个centos7的镜像安装的;
(2)机器A是被我升级弄坏的那台机器,机器B完好无损.
于是在大哥的帮助下,我登录了B机器,然后开始将A机器的磁盘挂载到B机器下,让B机器对A机器中的相关glibc
库进行恢复,开始的时候只恢复了libc.so.6的指向,让其指向libc-2.17.so,但是将盘重新挂回A机器的时候,
A机器仍然不可以重启,百思不得其解,但是此时,我最起码可以保证我的A机器中的盘的内容可以保存下来不会
丢失了,剩下的就是我对A机器上各种安装的软件的执着,我一定要重启登录A机器,大哥离我而去了,这位大哥
真的是个好心人,我和他素昧平生,真真实实的感谢他。之后,我开始了孤独之旅,我重新通过B机器去访问A机
器中磁盘上的内容,发现我的A机器那个/usr/lib64目录下在经过编译2.25版本的glibc之后还生成了其他的动
态库和静态库,我在想是不是它们的原因,我lld了一下libc-2.17.so,对其依赖库进行了分析,然后把所有新
生成的库都用B机器的原装的老库进行更新,大概好几十个,我慢慢坚持了下来,然后奇迹发生了,我再次登录
A机器的时候,出现了最后一个图片的样子,我可以登录了!!!激动。这就是我本次的glibc的升级惨痛教训,
我已经放弃升级了,也掌握了这种情况下,如何恢复一个虚拟机的方法,感谢!!
我的机器最初的libc的版本是2.17
Linux升级glibc_坡度爱好者的博客-CSDN博客_升级glibc
../glibc-2.25/configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
[root@localhost opt]# echo $LD_LIBRARY_PATH
:/usr/local/lib
[root@localhost opt]# export LD_LIBRARY_PATH=
[root@localhost opt]# echo $LD_LIBRARY_PATH
[root@localhost opt]# ./glibc-2.14/configure
高危操作,我GG了,pwd,yum都不能用了
B机器对A机器的盘进行挂载及卸载的命令
[root@wknode exdata]# mount /dev/sdb1 ./sdb1
[root@wknode exdata]# mount /dev/sdb3 ./sdb3
[root@wknode exdata]# umount /dev/sdb1
[root@wknode exdata]# umount /dev/sdb3
[muten003@wknode lib64]$ ls -lrth | grep "Mar 16"
-rwxr-xr-x 1 root root 847K Mar 16 18:43 ld-2.25.so
-rw-r--r-- 1 root root 253 Mar 16 18:43 libc.so
-rw-r--r-- 1 root root 4.1K Mar 16 18:43 crt1.o
-rw-r--r-- 1 root root 7.0K Mar 16 18:43 gcrt1.o
-rw-r--r-- 1 root root 1.2K Mar 16 18:43 Mcrt1.o
-rw-r--r-- 1 root root 4.1K Mar 16 18:43 Scrt1.o
-rw-r--r-- 1 root root 2.6K Mar 16 18:43 crti.o
-rw-r--r-- 1 root root 2.4K Mar 16 18:43 crtn.o
-rwxr-xr-x 1 root root 20K Mar 16 18:43 libBrokenLocale-2.25.so
lrwxrwxrwx 1 root root 20 Mar 16 18:43 libBrokenLocale.so -> libBrokenLocale.so.1
-rw-r--r-- 1 root root 22K Mar 16 18:43 libBrokenLocale.a
drwxr-xr-x. 2 root root 8.0K Mar 16 18:44 gconv
-rw-r--r-- 1 root root 141 Mar 16 18:44 libm.so
-rwxr-xr-x 1 root root 4.1M Mar 16 18:44 libm-2.25.so
-rw-r--r-- 1 root root 3.0K Mar 16 18:44 libieee.a
-rw-r--r-- 1 root root 7.6M Mar 16 18:44 libm-2.25.a
-rw-r--r-- 1 root root 102 Mar 16 18:44 libm.a
-rwxr-xr-x 1 root root 96K Mar 16 18:44 libdl-2.25.so
lrwxrwxrwx 1 root root 10 Mar 16 18:44 libdl.so -> libdl.so.2
-rw-r--r-- 1 root root 53K Mar 16 18:44 libdl.a
-rwxr-xr-x 1 root root 48K Mar 16 18:44 libmemusage.so
-rw-r--r-- 1 root root 11K Mar 16 18:44 libmcheck.a
-rw-r--r-- 1 root root 2.8K Mar 16 18:44 libg.a
-rw-r--r-- 1 root root 22M Mar 16 18:44 libc.a
-rw-r--r-- 1 root root 73K Mar 16 18:44 libc_nonshared.a
-rwxr-xr-x 1 root root 9.8M Mar 16 18:44 libc-2.25.so
lrwxrwxrwx 1 root root 20 Mar 16 18:46 libasprintf.so.0 -> libasprintf.so.0.0.0
lrwxrwxrwx 1 root root 21 Mar 16 18:46 libgettextpo.so.0 -> libgettextpo.so.0.5.4
lrwxrwxrwx 1 root root 12 Mar 16 18:46 libm.so.6 -> libm-2.25.so
lrwxrwxrwx 1 root root 13 Mar 16 18:46 libdl.so.2 -> libdl-2.25.so
lrwxrwxrwx 1 root root 23 Mar 16 18:46 libBrokenLocale.so.1 -> libBrokenLocale-2.25.so
lrwxrwxrwx 1 root root 10 Mar 16 18:46 ld-linux-x86-64.so.2 -> ld-2.25.so
drwxr-xr-x. 2 root root 92 Mar 16 18:46 gettext
lrwxrwxrwx 1 root root 21 Mar 16 18:46 libgettextpo.so -> libgettextpo.so.0.5.4
lrwxrwxrwx 1 root root 20 Mar 16 18:46 libasprintf.so -> libasprintf.so.0.0.0
lrwxrwxrwx 1 root root 12 Mar 16 21:36 libc.so.6 -> libc-2.17.so
卧槽~~~还好没放弃~~~~~~~~~流下激动的眼泪~~~~它回来了
谢谢好心人帮我!!!