第一章 祸起
今天本来在工位上开开心心得写代码和完(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
然后在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老哥!