CentOS 8 GLIBC升级失败系统崩溃抢修实战

news2024/10/7 8:24:49

CentOS 8 GLIBC升级失败系统崩溃抢修实战

    • 1. 恐怖的问题
    • 2. 参考解决方案
    • 3. 抢修实战
      • 3.1 准备工作
      • 3.2 抢修流程
      • 3.3 解决启动后Permission Denied
        • 3.3.1 参考方案
        • 3.3.2 解决
    • 4. 总结

服务器为CentOS 8,支持glibc版本为2.28,但编译一个工具的glibc需求版本为2.34,于是非常脑残地参考这篇Tutorial开始升级之旅:下载glibc-2.34,并configure到了系统目录,然后将源码make && make install,然后……

1. 恐怖的问题

几乎所有命令都执行不了了,报类似下面的错误:

symbol lookup error: /usr/lib64/libdl.so.2: undefined symbol: dl_vsym, version GLIBC_PRIVATE

结论是:CentOS 8与高版本glibc不兼容,glibc-2.28有的符号(例如:dl_vsym),但glibc-2.34可能没有。但CentOS 8的大多数程序都依赖这些符号,于是炸裂。

这篇文章指明还有机会在ssh连接时恢复系统环境。可惜的是,博主脑子一热退出了ssh,此后再也无法访问服务器。

2. 参考解决方案

  • centos6.9中glibc升级失败救援+救援模式挂载硬盘
  • Centos7手动升级glibc导致系统异常(无法开机)

总的来说基本思路如下:

  1. 拿一个U盘制作原系统(比如我的系统是CentOS 8,就下载CentOS 8 iso)启动盘
  2. U盘内进入Rescue模式
  3. Rescue模式下重装兼容的glibc包

这里最大的问题在于CentOS镜像太大,下载太费时间。而Debian提供的Live OS小巧易用,并且可以安装rpm包管理器。于是我们采用如下思路抢修:

  1. 制作Debian Live OS
  2. 将原系统挂载到Live OS中
  3. 在Live OS中下载并安装glibc RPM包
  4. chroot检查是否成功恢复

接下来具体介绍抢修过程

3. 抢修实战

3.1 准备工作

  • 制作启动盘(以下为个人制作方法)
    • 准备一个空U盘
    • 下载ventoy
    • 运行ventoy.exe安装至U盘
    • 下载Debian Live OS镜像,下载debian-live-12.0.0-amd64-standard.iso即可,这个镜像最小
    • 将下载的iso复制到U盘中即可
  • 手机数据线(用于为Live OS联网)
  • 前往机房

3.2 抢修流程

  1. 服务器强制关机

  2. 将U盘插入USB口

  3. 开机,选择从U盘启动。不同机器处理方式不同。例如,Dell R740服务器需要开机时按F11,手动选择从U盘启动。但博主抢修的这台机器是惠普的,似乎自己就识别到了U盘

  4. 选择Debian Live OS进入

  5. 进入Live OS后,没有网络。此时手机打开热点,将数据线连接到服务器的USB口上,并从高级选项中选择通过USB共享网络。
    在这里插入图片描述

  6. 此时,服务器上通过ip addr应该能够看到一个多出来的网卡,例如,博主的是enx12c483f98c5a。可以看到该网卡还没有被分配ip地址。
    在这里插入图片描述

  7. 输入sudo dhclient为网卡动态获取ip,ping www.baidu.com测试网络是否连接成功。

  8. 下载rpm包。直接上清华源找对应的rpm包。这里博主升级前就是glibc-2.28。

    cd ~
    wget https://mirrors.tuna.tsinghua.edu.cn/centos/8-stream/BaseOS/x86_64/os/Packages/glibc-2.28-228.el8.x86_64.rpm
    wget https://mirrors.tuna.tsinghua.edu.cn/centos/8-stream/BaseOS/x86_64/os/Packages/glibc-common-2.28-228.el8.x86_64.rpm
    wget https://mirrors.tuna.tsinghua.edu.cn/centos/8-stream/BaseOS/x86_64/os/Packages/glibc-langpack-en-2.28-228.el8.x86_64.rpm
    
  9. 挂载原系统并安装rpm包:

    • 输入sudo lsblk查看原系统在哪个设备上,CentOS一般来说root为/dev/mapper/cl-root,挂载这个分区即可

      sudo mount /dev/mapper/cl-root /mnt
      
    • 安装rpm包

      sudo apt install rpm
      sudo rpm -ivh --nodeps --force --root=/mnt glibc-*.rpm
      
  10. sudo chroot /mnt成功即说明glibc抢修成功

  11. 接下来sudo umount /mnt && sudo shutdown,等待关机后,拔出U盘。

  12. 静待重启……………………难过的事情再次发生了,系统卡在了无休止的Permission Denied中(在加载界面按下esc可查看)
    在这里插入图片描述

3.3 解决启动后Permission Denied

3.3.1 参考方案

  • Centos 8 stuck in boot loop, multiple permission denieds. Any solution to this?

3.3.2 解决

根据上述参考,猜测与selinux有关,于是尝试禁用selinux。具体做法是在grub菜单处,按下e修改command line:将enforcing=0加入到command line最后,然后ctrl + x启动系统。终于成功了!猜测是因为安装rpm的时候破坏了selinux的某些配置,例如发现/.autorelabel文件消失了。至于如何恢复selinux就不在本文的讨论范围之内了。博主非常极端地把selinux关掉了😄。

4. 总结

这次抢修经历是非常惊心动魄的,前前后后加起来差不多5、6个小时。多亏了seekstar的帮忙。回过头来,这次抢修最大的教训就是再也不会在服务器环境乱动glibc了。OK,现在可以起飞了🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/771384.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

mysql中的行格式之compact格式分析

mysql中的行格式之compact格式分析 mysql行格式 所谓行格式,就是指mysql一行数据的存储格式。 InnoDB 储存引擎支持有四种行储存格式:Compact、Redundant、Dynamic 和 Compressed。 Redundant是很古老的行格式了,因为占用空间最多&#x…

Small Tip: 怎么找S4HANA所有的CDS View 以及跟BW相关的CDS View

1. 网页上找 1. SAP Business Accelerator Hub 到网址:https://api.sap.com 2. 到Categories底下找。如果没看见CDS View就去View all categories 3. 找到CDS Views之后,点击进去。 4. 按Package 分类来找: 2. 去help.sap.com找SAP S/4HA…

物理机传输大文件到虚拟机

物理机快速传输大文件到虚拟机 测试使用Tabby传输大文件到虚拟机 1.1 准备大文件 1.2 通过Tabby上传文件到Linux 总耗时约:7分钟 1.3 通过EveryThing配置服务 打开EveryThing,点击工具—> 选项—>http服务器 启用HTTP服务器,配置…

【基于 GitLab 的 CI/CD 实践】05、GitLab Pipeline 实践(下)

目录 needs 并行阶段 制品下载 include local 引入本地配置 file 引入其他项目配置 template 引入官方配置 remote 引入远程配置 extends 继承作业配置 extends & include trigger 管道触发 多项目管道 父子管道 image 准备环境 services environment inh…

文心一言 VS 讯飞星火 VS chatgpt (63)-- 算法导论6.5 2题

文心一言 VS 讯飞星火 VS chatgpt (63)-- 算法导论6.5 2题 二、试说明 MAX-HEAP-INSERT(A,10)在堆A(15,13,9,5,12,8,7,4,0,6&#xf…

XR应用云流化,多方面提升 XR 扩展现实体验!

无论是使用户能够协作设计电动赛车,还是帮助观众通过数字世界与自然互动,越来越多的企业利用XR扩展现实为用户提供沉浸式逼真的虚拟环境。 下一代沉浸式技术的应用越来越广泛,图形和人工智能的最新突破正在扩展XR的功能。这四种技术正在XR生态…

网络安全在2023好入行吗?

前言 023年的今天,慎重进入网安行业吧,目前来说信息安全方向的就业对于学历的容忍度比软件开发要大得多,还有很多高中被挖过来的大佬。 理由很简单,目前来说,信息安全的圈子人少,985、211院校很多都才建…

K12351 生日日期

题目描述 小科的生日是YY年MM月DD日,他想知道自己出生第10000天纪念的日期,出生日算第0天 输入格式 输入三个整数,分别表示YY,MM,DD,其中 1949≤YY≤2016 输出格式 输出小科身体第一万天以后的日期,格式为YY-MM-DD 输入输出…

Jmeter+Maven+jenkins+eclipse搭建自动化测试平台

背景: 首先用jmeter录制或者书写性能测试的脚本,用maven添加相关依赖,把性能测试的代码提交到github,在jenkins配置git下载性能测试的代码,配置运行脚本和测试报告,配置运行失败自动发邮件通知&#xff0c…

Docker 基本管理与应用

目录 一、Docker介绍 1、docker概述 2、容器优势 3、Docker与虚拟机的区别 4、Docker核心概念 二: 安装 Docker 1、环境准备、安装依赖包 2、 设置阿里云镜像源,安装 Docker-CE并设置为开机自动启动 3、信息查看 ​三:Docker 镜像操作…

AHB协议理解

目录 Chapter1 AHB Block Diagram Ginput signal lnput signals Output Signal Chapter3 Transfers AHB接口Overview Chapter6 Data Buses HWDATA HRDATA Chapter1 Introduction AHB: Advanced High-performance Bus ( 高级高性能总线 ) 应用场景:针对高效率&#…

cancal报错 config dir not found

替换classpath中间封号两边的值

这款录音转文字工具让你的录音转写更加便捷

小明:小李,最近我一直在做一个听力练习,但是听力材料都是录音,手动转写真的好慢,有什么办法可以提高录音转写效率吗? 小李:当然有啦!我之前也遇到过这种情况,最后我是通…

边缘检测之loG算子

note // 边缘检测之loG算子:对高斯函数求二阶导数 // G(x,y) exp(-1 * (x*x y*y) / 2 / sigma / sigma) // loG(x,y) ((x*x y*y - 2 * sigma * sigma) / (sigma^4)) * exp(-1 * (x*x y*y) / 2 / sigma /sigma) /* [ 0,0,-1,0,0; 0,-1,-2,-1,0; -1,-2,16,-2…

『红外图像 数据增强』DDE(Digital Detail Enhancement)算法

DDE处理的细节 分离背景层和细节层:使用特殊的滤波器,将图像分成背景层和细节层。背景层通常包含低频信息,而细节层包含高频信息。 对背景层进行灰度增强:通过对背景层应用适当的灰度增强算法,提高背景层的对比度和视…

数据结构(王道)——数据结构之 二叉树的存储结构

一、顺序存储 静态顺序存储 顺序存储的二叉树结构特性: 顺序存储的非完全二叉树特性 不完全二叉树的可能会浪费大量空间,所以一般顺序存储二叉树比较少用。 图示为什么很少用顺序存储来存二叉树 顺序存储的二叉树总结: 二、链式存储 二叉链表…

MYSQL数据库-数据库的学习

MYSQL数据库-数据库的学习 MYSQL数据库一、数据库的基本概念二、常见的数据库三、MySQL数据库四、SQL操作五、SQL高级操作六、SQL函数(SQL 拥有很多可用于计数和计算的内建函数) MYSQL数据库 一、数据库的基本概念 1、数据库的英文单词:DataBase 简称 : DB 2、什么…

浙大数据结构第四周之04-树6 Complete Binary Search Tree

题目详情: A Binary Search Tree (BST) is recursively defined as a binary tree which has the following properties: The left subtree of a node contains only nodes with keys less than the nodes key.The right subtree of a node contains only nodes w…

2023软件测试八股文,拿下满意的offer就靠这了

前言 2023年软件测试行业就业越来越严峻,金三银四也成了铜三铁四,内卷成为了软件测试领域的代名词。 深圳,我的一个HR朋友告诉我,软件测试由于门槛低,现在普通测试岗(偏功能)的投递太多了&…

如何把本地项目的代码上传到 GitHub 上(详解)

此教程适用于已经安装 git ,并且已经注册 GitHub 账号的电脑,如果没有下载 git ,或者还没有注册过 GitHub 账号的,可以找相关教程弄一下。下面直接开整 说明:这里的案例就用我之前写的一个前端页面(内蒙古招…