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日

相关文章

  • JDK8中String的intern()方法实例详细解读

    JDK8中String的intern()方法实例详细解读 1. intern()方法的介绍 在JDK8中,String类的intern()方法用于将字符串对象添加到字符串常量池中,并返回常量池中对应的引用。如果字符串常量池中已经存在该字符串,则直接返回常量池中的引用。 2. intern()方法的使用示例 以下是intern()方法的两个使用示例: 示例1:…

    other 2023年10月15日
    00
  • createtableselectfrom和insertintotableselectf

    以下是关于“CREATE TABLE SELECT FROM和INSERT INTO TABLE SELECT FROM”的完整攻略,包括基本概念、解决方法、示例说明和注意事项。 基本概念 在关系型数据库中,CREATE TABLE语句用于创建新的表,SELECT语句用于从表中检索数据,INSERT INTO语句用于向表中插入数据。CREATE TABLE …

    other 2023年5月7日
    00
  • python字典介绍

    以下是关于“Python字典介绍”的完整攻略,包括字典的定义、创建字典、访问字典、修改字典、删除字典、字典方法、示例说明和注意事项。 字典的定义 在Python中,字典是一种无序的数据类型,用于存储键值对。字典中的每个元素都由一个键和一个值组成,键和值之间用冒号分隔,每个键值对之间用逗号分隔,整个字典用花括号括起来。 创建字典 在Python中,可以使用以下…

    other 2023年5月8日
    00
  • access的备注字段限制64K

    讨论 “access的备注字段限制64K” ,我们可以将其分为以下几个方面: Access备注字段是什么 Access备注字段大小限制是多少 Access备注字段大小限制对用户有哪些影响 如何截取或拆分Access备注字段 Access备注字段是什么 Access中的备注字段是指为表单字段添加的注释,通常包含大量文本和说明。这些备注字段通常用于提供额外的信息…

    other 2023年6月25日
    00
  • Win11用户名和密码怎么备份?Win11用户名和密码方法

    Win11用户名和密码备份攻略 1. Win11用户名和密码的存储位置 Win11的用户名和密码是存储在系统注册表中的。具体路径为:HKEY_LOCAL_MACHINE\SECURITY\Policy\Secrets\_SC_<SID>\DomainPassword\<UserSID>。 其中,SID是安全标识符,UserSID是用户…

    other 2023年6月27日
    00
  • WinXP注册表应用—注册表使用全攻略之八

    WinXP注册表应用—注册表使用全攻略之八 简介 注册表是Windows操作系统的核心组成部分之一,它保存了大量的系统设置、应用程序设置、系统服务信息等等。在Windows XP操作系统中,注册表的应用非常广泛,几乎所有的系统设置和应用程序设置都是通过注册表来完成的,因此熟练掌握注册表的使用是非常重要的。本文将详细介绍WinXP注册表的应用,为广大用户提供实…

    other 2023年6月28日
    00
  • Java创建型设计模式之建造者模式详解

    Java创建型设计模式之建造者模式详解 什么是建造者模式? 建造者模式是一种创建型设计模式,用于将复杂对象的构建过程与其表示分离。通过使用相同的构建过程,可以创建不同的表示。 建造者模式的结构 建造者模式由以下几个主要组件组成: 产品(Product):表示要构建的复杂对象。 抽象建造者(Builder):定义了构建产品的抽象方法,以及获取最终产品的方法。 …

    other 2023年10月15日
    00
  • C/C++中的名字空间与作用域示例详解

    C/C++中的命名空间与作用域示例详解 命名空间(Namespace)是C++中用来避免命名冲突的一种机制,它可以将全局作用域划分为不同的区域,每个区域可以有自己的变量、函数和类等。本文将详细讲解C/C++中的命名空间与作用域,并提供两个示例说明。 1. 命名空间的定义与使用 命名空间的定义使用关键字namespace,后跟命名空间的名称和一对花括号。在命名…

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