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

标准过程攻略: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技术站

(0)
上一篇 2023年6月27日
下一篇 2023年6月27日

相关文章

  • 关于c#:sigsegv的原因可能是系统故障的原因吗?

    以下是关于“关于c#:sigsegv的原因可能是系统故障的原因吗?”的完整攻略,包含两个示例。 背景 在C#程序中,当出现SIGSEGV错误时,通常是由于访问了无效的内存地址或者试图访问未分配的内存空间。这种错误通常是由于程序中存在缺陷或者错误导致的,而不是系统故障引起的。那么C#程序中出现SIGSEGV错误的原因可能是系统故障吗? 示例一:访问无效的内存地…

    other 2023年5月9日
    00
  • 跟老齐学Python之编写类之一创建实例

    下面是“跟老齐学Python之编写类之一创建实例”的完整攻略。 创建实例 在Python中,类(class)是一种面向对象编程(OOP)的基本概念。类是一个抽象的概念,它代表着一类事物的共性特征,而实例(instance)则是类的具体实现。我们可以把类看做是一个模板,而实例就是用这个模板创建出来的实体。 创建类 在Python中,我们可以使用class关键字…

    other 2023年6月26日
    00
  • Android GridView实现横向列表水平滚动

    当在Android应用程序中使用GridView实现横向列表水平滚动时,可以按照以下完整攻略进行操作: … … 在布局文件中,添加一个GridView控件,并设置相应的属性。 <GridView … android:id=\"@+id/gridView\" … android:layout_width=\"…

    other 2023年9月5日
    00
  • 易语言利用HOOK注入获取内容的代码

    易语言利用HOOK注入获取内容的代码攻略 简介 HOOK注入是一种常用的技术手段,用于在目标程序运行时修改其行为或获取其内部数据。在易语言中,我们可以利用HOOK注入技术来获取目标程序的内容。本攻略将详细介绍如何使用易语言实现这一目标。 步骤 步骤一:选择目标程序 首先,我们需要选择一个目标程序,即我们希望获取内容的程序。可以是任何一个可执行文件,比如一个游…

    other 2023年7月29日
    00
  • PowerBuilder学习笔记之3应用对象

    PowerBuilder学习笔记之3应用对象 在PowerBuilder中,应用对象(Application Object)可以看作是整个应用程序的根对象,它对应的类别是Application。在应用对象中,我们可以定义全局变量、处理应用程序的各种事件、设置系统级别的属性等等。 应用对象的创建和销毁 当我们创建一个PowerBuilder应用程序时,系统会自…

    其他 2023年3月28日
    00
  • java生成随机字符串方法(三种)

    以下是关于Java生成随机字符串方法的完整攻略,包括三种生成随机字符串的方法和两个示例说明。 方法一:使用Random类生成随机字符串 使用Java的Random类可以生成随机字符串。以下是使用Random类生成随机字符串的步骤: 创建一个Random对象; 定义一个字符串变量,用于存储生成的随机字符串; 使用Random对象生成随机数,并将其转换为字符; …

    other 2023年5月7日
    00
  • 朋友网手机客户端下载页面的设计分享(图文)

    来一步一步讲解一下“朋友网手机客户端下载页面的设计分享(图文)”的完整攻略。 1. 确定页面设计的方向和主题 在设计“朋友网手机客户端下载页面”时,需要确定手机客户端的主题和方向,包括页面风格、配色方案、字体、布局等。具体的方向可以通过市场调研和竞品研究来确定,设计时要考虑用户群的需求和关注点,以及如何通过设计来突出产品的优势和特点。 2. 设计页面结构和布…

    other 2023年6月25日
    00
  • 电脑老是重启怎么办?电脑重启的不同原因和对应的解决方法

    电脑老是重启怎么办? 当电脑出现频繁重启的情况时,我们首先需要了解重启的原因,然后才能进行解决。以下是可能的原因和对应的解决方法。 原因一:硬件问题 硬件问题是重启的主要原因之一。例如,电源、内存、硬盘等都可能导致电脑重启。解决方法有: 检查电脑内部连接线是否插牢,尤其是电源线和数据线。 检查电源是否过热,或者电源供电不足,建议更换电源。 检查内存是否正常、…

    other 2023年6月26日
    00
合作推广
合作推广
分享本页
返回顶部