强行升级glibc导致Centos8崩溃6小时惊险修复

本文讲述了作者在升级CentOS8时遇到glibc问题,导致系统崩溃的过程,包括错误排查、使用U盘安装CentOS8镜像、修复逻辑卷、尝试DebianliveOS等方法,最终成功解决并吸取教训。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一章 祸起

今天本来在工位上开开心心得写代码和完(hu)成(nong)明天的组会PPT,结果师兄过来让我装MEGA的command line版本,说是要跑很多个树。于是乎一通上网操作找到了mega的cc版本。下载下来运行,报错:

于是就一时脑抽,去下载了glibc 2.34,在安装的时候还遇到一堆问题,最后安装到/usr下 ./configure && make && make install,刚运行完,服务器就开始报错(汗流浃背了兄弟)。

就是,不管用ls vi啥的都直接报错,人直接吓傻了,于是简单自己尝试后发现没办法解决,出动钞能力在小黄鱼上找到了supermao老哥(非常感谢老哥在接下来的几个钟头一直陪着我解决问题)。然后就开始了苦逼的修复之旅。

第二章 坎坷修复路

首先,参考这一篇攻略进行修复:CentOS 8 GLIBC升级失败系统崩溃抢修实战_安装glibc后系统崩溃-优快云博客

于是我先找了个u盘,不对,我甚至用的不是优盘(我自己的是一个256的我怕读不了盘,于是用了读卡器+SD卡来充当优盘),总之,相当之滑稽。

先用ventoy格式化u盘,然后去下载了与我系统版本版本号一致的centos8,直接将centos 8的iso移动到u盘内即可。

Releases · ventoy/Ventoy · GitHub

centos8

然后在bios里面改为u盘为第一启动位:(戴尔服务器是先F2,在bios setting里面改,重启后再进去bios setting调顺序)

然后进normal-troubleshooting-rescue模式,结果,发现读不到原来的分区!然后挂载不了任何东西!

于是乎,在这样折腾了大概两个钟头以后;我突然找到了这个方法:https://www.cnblogs.com/xzj-blog/p/14155463.html

参考里面的

# 查看系统卷组
> lvm vgscan
> lvm lvscan
# 激活逻辑卷
>lvm vgchange -ay 

# 修复根分区逻辑
# fsck /dev/cl/root -L
# 如果提示是xfs文件系统,需要用xfs_repair修复,则运行: 
xfs_repair /dev/cl/root 然后会跑一堆日志
# 最后提示: release dirty buffer! done!

运行了,这个时候发现cl-root和cl-home出现了,可把我牛逼坏了。然后继续

chroot /dev/cl/root /mnt

没发现问题,但是一ls又报错,把我都给整不会了

只有放弃这个方法。出去吃了个饭,突然想到:能不能像搞一个PE系统那样的,然后进去操作?于是就搞了个Debian live OS的安装包(很重要),用refus把这个包加载到优盘里面,把这个装进去(先关机再这样操作)。然后开机,就能直接进Debian live OS (DEbian OS)了。

接着就参考最开始那个文章(直到下载前的所有步骤都可以参考。比如联网,mount之类的),下载一堆glibc-2.28的rpm(glibc-2.28-228.el8 | Build Info | CentOS Stream BuildSys)(用这个网址下载,金枪鱼的失效了)进行安装,结果我安装的时候又又报错了(类似于这样),于是强行安装rpm这条路也走不通了。

最后,想着能不能大力出奇迹(即直接删掉新装的libc文件),于是进/mnt/lib64一看,果然有一个

新出现的libc.so.6,于是乎,执行以下操作:

sudo mount /dev/mapper/cl-root /mnt

##进/mnt,执行以下操作
sudo rm  libc.so.6

ln -s libc-2.28.so libc.so.6 ##这样就把出错的软连接删掉了,然后连接到旧的libc上
chroot /mnt ##发现变成了root,说明应该有戏了

##这里有可能遇到check systemfile的问题,等待自检完后,输入root密码,然后df -h查看哪个硬盘没有挂载上,再使用fsck修复。

##Failed to start rile System check on /dewdisk/by-wuid/56b45f8e-dcde-4aBd-a889-5018212086e2

sudo

##输入root密码

df -h

Filesystem           Size  Used Avail Use% Mounted on
devtmpfs             252G     0  252G   0% /dev
tmpfs                252G   48K  252G   1% /dev/shm
tmpfs                252G   29M  252G   1% /run
tmpfs                252G     0  252G   0% /sys/fs/cgroup
/dev/mapper/cl-root  400G  271G  130G  68% /
/dev/mapper/cl-home   30G   28G  2.2G  93% /home
/dev/sda2            976M  344M  565M  38% /boot
/dev/sda1            599M  7.5M  592M   2% /boot/efi
/dev/sdc1             87T   80T  3.3T  97% /usr_storage2
tmpfs                 51G  4.0K   51G   1% /run/user/1042
tmpfs                 51G  4.0K   51G   1% /run/user/1019
tmpfs                 51G     0   51G   0% /run/user/0
tmpfs                 51G  4.0K   51G   1% /run/user/1040
/dev/sdb              86T   75T  6.0T  93% /usr_storage
tmpfs                 51G  4.0K   51G   1% /run/user/1029
tmpfs                 51G     0   51G   0% /run/user/1008
tmpfs                 51G  4.0K   51G   1% /run/user/1022

##我当时是/dev/sdb没挂载上,于是
fsck -y -C /dev/sdb
##然后就漫长等待,等修复完,reboot,就好了

第三章 解决

然后就reboot,最开始我发现我开在进去界面很久,以为寄了,结果楼上的那群b居然已经连上了。就暂时解决问题了。

打完收工,在机房站了6个钟头,累死我了。

第四章 总结

后面遇到类似的问题,可以参考以下答案:

CentOS 8 GLIBC升级失败系统崩溃抢修实战_安装glibc后系统崩溃-优快云博客

https://www.cnblogs.com/xzj-blog/p/14155463.html

以后装软件一定要注意版本!centos8 奶奶个腿儿,太难用了 

再次感谢supermao老哥!

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值