标准过程攻略:Centos7升级glibc导致系统异常(无法开机)解决方法
背景描述
在Centos7系统中,如果升级glibc
库到一定版本可能会导致系统无法开机。这是因为glibc
库是整个系统中非常重要的一个库,它被许多系统组件和服务依赖。如果更新不当会导致系统出现异常,甚至无法启动。因此,升级glibc
库前需要格外小心。
解决方法
1.保证原始版本的glibc完整,备份原始的glibc库。
cp -r /lib64 /lib64-backup
cp -r /usr/lib64 /usr/lib64-backup
cp -r /usr/local/lib64 /usr/local/lib64-backup
2.下载需要更新的glibc版本
从glibc 官网下载需要更新的压缩包,解压到/tmp/目录。
cd /tmp/
wget http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz
tar -zxf glibc-2.14.tar.gz
3.编译和安装新的glibc库
cd glibc-2.14
mkdir build
cd build
../configure --prefix=/usr \
--with-headers=/usr/include \
--enable-add-ons \
--disable-profile \
--enable-kernel=2.6.32 \
--enable-stack-protector=strong \
libc_cv_slibdir=/lib64
make
make install
4.复制新的glibc库到对应的目录
cp /usr/lib64/libc-2.14.so /lib64/libc.so.6
cp /usr/lib64/libpthread-2.14.so /lib64/libpthread.so.0
cp /usr/lib64/libc-2.14.so /usr/local/lib64/libc.so.6
cp /usr/lib64/libpthread-2.14.so /usr/local/lib64/libpthread.so.0
5.重启系统
reboot
示例
示例一
小明升级完glibc库后发现系统无法启动,于是按照上述方法进行了恢复。在执行第3步 编译和安装新的glibc库
时,遇到了如下错误:
configure: error: unexpected host architecture; error checking for kernel version;
expected x86_64-linux-gnu but got unknown-linux-gnu
这是因为新的glibc版本在编译时需要用到内核的响应头文件,但是本地的Linux内核版本太老,因此无法编译成功。小明于是查阅了相关资料,发现可以使用docker等工具来获取更高版本的Linux内核,最终通过该方法成功完成升级,系统恢复正常。
示例二
小红为了提高系统的安全性,抱着“不就是升级glibc吗,问题不大”的心态,开始了glibc库的升级。然而,在尝试完所有步骤之后,她还是无法启动系统。最后在Stack Overflow上发现原来是自己在编译新的glibc库前奇怪地使用了ln -sf /usr/local/lib/libc-2.14.so /lib64/libc.so.6
命令,导致原本的libc软链接指向了/tmp底下的与新版本glibc相关的库文件。在这个问题解决之后,她成功地完成了glibc库的升级。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Centos7升级glibc导致系统异常(无法开机)解决方法 - Python技术站