CentOS7升级Glibc到超过2.17版本无法启动的解决办法

centos7,升级,glibc,超过,版本,无法,启动,解决办法 · 浏览次数 : 405

小编点评

**解决方法:** 1. **重新安装 glibc:** * 从 ISO镜像文件中提取 glibc 库。 * 重新安装 CentOS7,选择使用带有 glibc 的内核。 * 安装完成后,检查 glibc 版本,确保它超过 2.17 版本。 2. **修改 /etc/sysctl.conf:** * 添加以下行: ``` kernel.core.boot = init=/bin/bash ``` * 重启服务器。 3. **设置虚拟机引导选项:** * 修改虚拟机配置,选中“虚拟机下次引导时强制进入BIOS选项”。 * 在 BIOS 中修改启动顺序,将 CD-ROM 设置为第一位。 4. **进入 rescue 模式:** * 进入 CentOS 安装界面 (60 秒内必须处理)。 * 选择 “bleshooting”。 * 进行 rescue 操作。 5. **修复 glibc:** * 选择 “continue”。 * 选择 “repair”。 * 重新安装 glibc。 6. **清理非 2.17 版本的 glibc:** * 在 rescue 界面中使用命令: ``` rm -rf /mnt/sysimage/lib64/*2.25* ``` * 确保所有非 2.17 版本的 glibc 文件被删除。 7. **重新安装 glibc:** * 在 rescue 界面中使用命令: ``` rpm -ivh --force --root=/mnt/sysimage glibc* ``` * 重新安装 glibc。 8. **验证 glibc 版本:** * 使用命令: ``` ls -l /mnt/sysimage/lib64/glibc-* ```

正文

CentOS7升级Glibc到超过2.17版本无法启动的解决办法


背景

今天有同事告知服务器宕机无法启动.
提示信息为:
[sda] Assuming drive cache: write through
后系统没有任何反应.
一开始同事说没有做任何处理, 突然至此
我感觉比较奇怪.然后进行了一下简要处理
最终发现是gblic相关.然后在脚本之家找了一个处理方案
但是发现方案上面有一些不太明确的地方.
所以在这里总结一下完整版的处理过程和方法

问题确认

系统无法启动,第一步都是再进入系统的界面输入 "e"
然后修改 rhgb quite 变成 init=/bin/bash
(备注: rhgb = redhatgraphics boot)

进入系统后执行命令
mount -o remount,rw /sysroot
发现还有一个错误提示:
 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

至此才发现是glibc的问题导致的 

glibc问题处理-long time ago

网上很多解决方案一般是说再不关机的情况下的处理.
但是减少有重启了机器后的处理
很早之前同事给centos7 安装 tfs-agent时就导致过宕机
但是当时虚拟机是新作的我也懒的去查解决方案
就重新给了一个centos8 的虚拟机了事. 

话说centos 虽然非常稳定. 但是他的内核和核心组件升级
是真心的非常慢. 
现在都准备过度到OpenEuler上面来. 

glibc问题的处理

Study from
https://www.jb51.net/article/230473.htm

解决方案基本上照抄 就是改了一两个小细节. 

glibc问题的处理

给虚拟机挂在上CentOS的ISO镜像文件.
然后重启虚拟机. 

注意如果无法进入安装界面的话,可以修改虚拟机配置
在 配置界面的 选项->高级-引导选项 中选中
"虚拟机下次引导时 强制进入BIOS选项"
然后进入BIOS后修改启动顺序为CD-ROM 为第一位. 

进入CentOS的安装界面(系统仅会等待60S,需要尽快处理 )
选中trobleshooting 
然后进行rescue 操作系统.

glibc问题的处理

进入rescue 后 选择continue
会进入修复界面
需要说明一点. 不要按照要求进行
chroot /mnt/sysimage 的处理
不然还会无法执行相关的命令(这个root 是损坏的)
可以执行如下命令

ls -l /mnt/sysimage/lib64/glibc-* 

查看对应的有问题的glibc的版本. 
脚本之家里面说的是 2.18 我这边同事升级的是2.25
注意必须清理掉非2.17版本的glibc 才可以, 不然会做无用功. 
需要针对不通版本进行清理.

rm -rf /mnt/sysimage/lib64/*2.25* 

# 注意这一步必须按照上一步的版本来, 不然无效.

glibc问题的处理

重新安装glibc
方法比较简单
在rescue的界面下
mkdir /rpm
mount /dev/cdrom /rpm
cd /rpm/Packages/
执行命令
rpm -ivh --force --root=/mnt/sysimage glibc*
# 注意这个命令里面 --root 是核心命令. 指定往哪个挂载目录执行命令.

重启验证

重启一般可以进入图形界面
但是其他组件比如sshd 或者是升级了glibc 后又安装的软件可能无法使用
需要单独在处理.

与CentOS7升级Glibc到超过2.17版本无法启动的解决办法相似的内容:

CentOS7升级Glibc到超过2.17版本无法启动的解决办法

CentOS7升级Glibc到超过2.17版本无法启动的解决办法 背景 今天有同事告知服务器宕机无法启动. 提示信息为: [sda] Assuming drive cache: write through 后系统没有任何反应. 一开始同事说没有做任何处理, 突然至此 我感觉比较奇怪.然后进行了一下简

[转帖]Centos7升级glibc导致系统异常(无法开机)解决方法

https://www.jb51.net/article/230473.htm 目录 我使用的是centos7(理论上这个方法仅仅对centos7以及Redhat7都可以使用该方法解决问题) 注意:此方法仅针对Redhat7/Centos7以上。 出现问题原因: 在调优hbase的时候,查资料发现可

[转帖]CentOS7/完美升级gcc版本方法

https://zhuanlan.zhihu.com/p/535657060 在某些应用场景中,需要特定的gcc版本支持,但是轻易不要去编译gcc、不要去编译gcc、不要去编译gcc,我这里推荐使用红帽提供的开发工具包来管理gcc版本,这样做的好处是随时切换版本,并且可以并存多个版本,不破坏原有gc

[转帖]CentOS7完美升级gcc版本方法

https://blog.whsir.com/post-4975.html 在某些应用场景中,需要特定的gcc版本支持,但是轻易不要去编译gcc、不要去编译gcc、不要去编译gcc,我这里推荐使用红帽提供的开发工具包来管理gcc版本,这样做的好处是随时切换版本,并且可以并存多个版本,不破坏原有gcc

Python学习之四_部分battery的学习

Python学习之四_部分battery的学习 CentOS升级pip的方法 yum install python3 之后, 一般centos的版本都很低, 有时候很多module 是无法安装的. 一般可以通过他进行升级: pip3 install -U pip 注意如果无法升级, 可以先这样处理

[转帖]CentOS8完美升级gcc版本方法

https://blog.whsir.com/post-6114.html 在CentOS8系统中,默认gcc版本已经是8.x.x版本,但是在一些场景中,还是需要高版本的gcc,网上一些作死的文章还在复制粘贴的告诉你如何编译升级gcc版本。 之前吴昊也写过CentOS完美升级gcc版本方法:http

[转帖]seafile 7.1.12专业版升级到seafile 8.0.11专业版教程

https://www.ittel.cn/archives/11643.html 目录 seafile 8.0.11专业版新功能 版本变更 部署环境升级 Ubuntu 18.04/20.4 Debian 10 CentOS 7.X CentOS 8.X 升级到 8.0.11 Ubuntu 18.04

[转帖]在 CentOS 中安装 bcc-tools

https://www.jianshu.com/p/2ebf85f61bb8 # 升级系统 yum update -y # 安装 ELRepo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org rpm -Uvh https://ww

CentOS7系统搭建web环境 php&nginx&pgsql

环境:VMware、CentOS-7-x86_64-DVD-2009.iso、nginx-1.26.1、php-7.2.0、postgresql-12 php最好安装对应php项目所需版本,否则会出现不兼容问题。 一、VMware安装CentOS7操作系统 下载 Linux Centos 7 映像:

CentOS7配置NFS服务并设置客户端自动挂载

在CentOS7中配置NFS服务并设置客户端自动挂载的步骤如下: NFS服务端配置 安装NFS服务: 首先,你需要在CentOS 7服务器上安装NFS服务。你可以使用yum命令来安装: yum install nfs-utils 创建共享目录: 创建一个你希望共享的目录,例如: mkdir -p /