【Linux】解决误操作libc.so.6导致的问题,补充:升级glibc注意事项

千万不要轻易动/usr/lib64/libc.so.6。

glibc是Linux系统中最底层的api,Linux几乎所有运行库都依赖glibc。/usr/lib64/libc.so.6属于glibc,在centos7中是个软链接。

一旦误删或误操作libc.so.6,或者glibc新版本不兼容等原因,都可能导致很多命令不可用、不能连接系统、系统崩溃、无法开机等问题。

1、若误删libc.so.6,导致很多命令不能使用,没有关机或重启。

若使用rm或者mv误删或改动过/usr/lib64/libc.so.6,最直接的问题就是很多命令都不能用(包括ls,grep,ln)。

报错信息:error while loading shared libraries:libc.so.6 cannot open shared object file:No such file or directory

幸运的是,没有关机或重启,则赶紧恢复软链接,但此时 ln -s 已经不能使用了,可以使用sln命令恢复软链接。

例如:在/usr/lib64目录下,libc.so.6软链接指向libc-2.17.so。删除libc.so.6软链接,立即报错。

使用sln创建新的软链接,但不是libc-2.17.so,结果无效。恢复libc.so.6软链接,才正常使用。

# 切换到库文件目录下
cd /usr/lib64# 恢复原软链接
sln libc-2.17.so libc.so.6

2、若误删libc.so.6, 且关机或重启,导致无法开机。

若使用rm或者mv误删或改动过/usr/lib64/libc.so.6,又很不巧的关机或重启,最终无法开机,此时已经影响了系统开机的程序。可以尝试使用U盘启动盘,开启系统并修复。

本系统是Window系统中VMware虚拟机centos7,可以使用ISO映像文件进入救援模式修复系统。

第一步、使用CD/DVD(ISO映像文件),开机进入救援模式(rescue)。

 

第二步、在救援模式(rescue)下,修复系统。

在救援模式下,系统数据存放在/mnt/sysimage目录下。

切换到库文件目录(/mnt/sysimage/usr/lib64)下,恢复libc.so.6软链接。

# 切换到系统数据的库文件目录下
cd /mnt/sysimage/usr/lib64# 恢复原软链接(若ln -s不能使用,则使用sln)
ln -s libc-2.17.so libc.so.6

第三步、修复后,重启(reboot),重新登录。

# 重启
reboot

3、 若正在编译安装较高版本的glibc,突然系统中断,导致无法开机。

解决方法同2,只是第二步不同。

在救援模式(rescue)下,修复系统。但不是恢复软链接,软链接并没有手动改动过,查看也并无异常。

而是: 

① 在系统数据的库文件目录(/mnt/sysimage/usr/lib64)下,删除正在下载的该版本的glibc相关的文件。

​# 切换到系统数据的库文件目录下
cd /mnt/sysimage/usr/lib64# 删除正在下载的glibc相关的文件(删除之前先查看,以防删错)
rm -rf *2.38*

② 在救援模式的根目录(/)下,创建新目录(/media)挂载光盘(ISO映像,/dev/cdrom)。

​# 切换到救援模式的根目录下
cd /# 创建新目录,用于挂载光盘(ISO映像文件)
mkdir media# 查看/dev目录下所有文件(其中cdrom为ISO映像文件)
ls /dev# 挂载光盘(ISO映像文件)
mount /dev/cdrom /media

③ 在挂载目录的rpm包目录(/media/Packages)下,使用rpm安装与glibc相关的RPM包。

# 切换到ISO映像的rpm包目录下
cd /media/Packages# 安装glibc相关的RPM包
rpm -ivh --force --root=/mnt/sysimage glibc-*


补充:升级glibc注意事项:

1、升级glibc前,系统备份。若是VMware虚拟机,关机 拍摄快照(保存升级前系统数据)。

2、仔细查看安装说明文档(解压缩后的目录下的INSTALL文件)。

3、配置编译参数时,尽量指定安装路径为/usr。

../configure --prexfix=/usr ...其它配置参数# 例如:
../configure  --prefix=/usr --disable-profile --enable-add-ons --with-binutils=/usr/bin --with-headers=/usr/include --disable-sanity-checks --disable-werror

4、编译安装前,检测系统。

make check

若make check报错,查看INSTALL文件,检查相关依赖包是否符合要求。

查看网页上统计的关于glibc的问题:FAQ - glibc wiki (sourceware.org)

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

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

相关文章

C#-系统Timer会自动停止,使用线程进行连续性测试

文章速览 概述代码结构创建和执行线程中执行的方法停止线程 参考文章 坚持记录实属不易,希望友善多金的码友能够随手点一个赞。 共同创建氛围更加良好的开发者社区! 谢谢~ 概述 接上片Timer计时器的文章:C#中System.Threading.Timer的使用。…

鸿蒙ArkUI-X跨语言调用说明:【平台桥接(@arkui-x.bridge)】

平台桥接(arkui-x.bridge) 简介 平台桥接用于客户端(ArkUI)和平台(Android或iOS)之间传递消息,即用于ArkUI与平台双向数据传递、ArkUI侧调用平台的方法、平台调用ArkUI侧的方法。 以Android平台为例,Ark…

揭开 SOCKS5 有哪些强大的功能?

在在线隐私和安全领域,SOCKS5 是一种多功能且功能强大的协议,为用户提供了一种无缝的方式来加密他们的互联网流量、绕过防火墙并以增强的匿名性和灵活性访问网络。无论您是担心在线监控、地理封锁还是数据隐私,了解如何利用 SOCKS5 的功能都可…

OpenHarmony 实战开发PhotoView——支持图片缩放、平移、旋转的一个优雅的三方组件

简介 PhotoView是OpenAtom OpenHarmony(简称“OpenHarmony”)系统的一款图片缩放及浏览的三方组件,用于声明式应用开发,支持图片缩放、平移、旋转等功能。 使用场景 PhotoView为广大OpenHarmony应用开发者在处理图片时&#xf…

Git | 用一个简单的例子来说明 git fetch 的作用

如是我闻: git fetch的作用是从远程仓库获取最新的更改,但不合并到本地分支。这事第一次听起来真挺奇怪的,为什么不直接 git pull呢?让我们尝试用一个简单的例子来看看 git fetch 的作用。 场景:玩具盒和玩具店 背景…

材料物理 笔记-9

原内容请参考哈尔滨工业大学何飞教授:https://www.bilibili.com/video/BV18b4y1Y7wd/?p12&spm_id_frompageDriver&vd_source61654d4a6e8d7941436149dd99026962 或《材料物理性能及其在材料研究中的应用》(哈尔滨工业大学出版社) ——…

lvm概述和配额

lvm概述和配额 文章目录 lvm概述和配额LVM概述1、逻辑卷的作用:2、lvm主要命令和实操磁盘配额创建data目录,进入data目录限制创建文件数 LVM概述 逻辑卷管理liunx系统下对硬盘分区的一种管理机制 lvm机制特别适合管理大储存设备,可以动态的…

linux系统——bg命令,linux运行的级别

在linux中可以使用bg命令,将进程任务置于后台执行 在这里,使用ping www.baidu.com命令后再使用ctrlz,可以将命令先暂停并保留在后台,jobs可以对任务进行查看 使用runlevel可以查看系统当前的运行级别

python练习题-反转一个只有三位数的整数

【问题描述】&#xff1a;反转一个只有三位数的整数 [示例]&#xff1a;123 321 完整代码如下&#xff1a; nint(input()) if n<100 or n>999: print("请输入三位数&#xff01;") else: gen%10 shin//10%10 bain//100 m100*ge10*shibai…

大数据框架总结(全)

☔️ 大数据框架总结&#xff08;全&#xff09; 关注“大数据领航员”&#xff0c;在公众号号中回复关键字【大数据面试资料】&#xff0c;即可可获取2024最新大数据面试资料的pdf文件 一. Hadoop HDFS读流程和写流程 HDFS写数据流程 &#xff08;1&#xff09;客户端通过…

JavaWeb笔记整理+图解——服务器渲染技术之EL表达式与JSTL

上一篇我们讲解了什么是服务器渲染技术和jsp&#xff0c;今天我来整理一下EL表达式和JSTL的笔记与图解&#xff0c;让我们的jsp页面更加的简洁与可维护。 没看过上一期的小伙伴可以看上一期的笔记&#xff1a; JavaWeb笔记全整理——JSP服务器渲染技术-CSDN博客 一、EL表达式…

Git 小白入门到进阶—(基本概念和常用命令)

一.了解 Git 基本概念和常用命令的作用 (理论) 基本概念 1、工作区 包含.git文件夹的目录&#xff0c;主要用存放开发的代码2、仓库 分为本地仓库和远程仓库&#xff0c;本地仓库是自己电脑上的git仓库(.git文件夹);远程仓库是在远程服务器上的git仓库git文件夹无需我们进行操…

Minio实现大文件切片上传

在进行视频、压缩包等大文件上传时&#xff0c;我们有时会遇到上传速度过慢、上传到一半失败等问题。这时我们可以将一个大文件切成若干个小文件依次上传&#xff0c;这样不仅可以看到上传进度&#xff0c;当上传到一半失败时也可以继承上一次的上传进度&#xff0c;而避免了每…

【Unity】 HTFramework框架(四十九)新建脚本时,自动向脚本添加【引用命名空间】

更新日期&#xff1a;2024年5月28日。 Github源码&#xff1a;[点我获取源码] Gitee源码&#xff1a;[点我获取源码] 索引 自动向脚本添加【引用命名空间】1.新建一个编辑器脚本2.静态构造方法3.标记 InitializeOnLoad4.添加【默认引用命名空间】的规则5.再次新建脚本 自动向脚…

MaxKB,基于 LLM 大语言模型的知识库问答系统,开箱即用,支持快速嵌入到第三方业务系统。

MaxKB 是一款基于 LLM 大语言模型的知识库问答系统。MaxKB Max Knowledge Base&#xff0c;旨在成为企业的最强大脑。开箱即用&#xff0c;支持快速嵌入到第三方业务系统。 项目链接 github.com/1Panel-dev/MaxKB 项目介绍 MaxKB 是一款基于 LLM 大语言模型的知识库问答系统…

opencv学习备份

2019年3月9日 指针地址向后走 int a[5] {1,100,200,300} int *pa –>*p1 –>*p100 指针移动 –> p0x00000000 内存地址 int a1 int *p&a 指针赋值常量&#xff0c;需要加寻址符号 –>*p1 –>*p CV_8UC1&#xff0c;CV_8UC2&#xff0c;CV_8UC3。 (最后的…

Sping源码(九)—— Bean的初始化(非懒加载)— EmbeddedValueResolver

序言 上一篇文章介绍了ConversionService,顺着finishBeanFactoryInitialization主流程继续往下走&#xff0c;这篇文章介绍EmbeddedValueResolver。 源码 源码中关于EmbeddedValueResolver有说到&#xff0c;如果没有BeanPostProcessor则创建一个默认的内嵌的值解析器。那我…

【C++】d1

关键字&#xff1a; 运行、前缀、输入输出、换行 运行f10 前缀必须项&#xff1a; #include <iostream> using namespace std; 输入/输出&#xff1a; cin >> 输入 cout << 输出 语句通过>>或<<分开 换行 endl或者"\n"

了解CSS中的link和@import引入CSS的区别

CSS中的link和import引入CSS的主要区别如下: 1&#xff1a;引入方式: link是HTML标签,用于在HTML文档中引入外部资源,如CSS文件。import是CSS语法,用于在CSS文件中引入其他CSS文件。2&#xff1a;加载顺序: link引入的CSS文件会与HTML文档并行加载,不会阻塞HTML文档的解析。im…

VMware报平台不支持虚拟化Win10家庭版关闭Hyper-V及内核隔离

1.BIOS中开启虚拟化功能 2.启动或关闭程序中找不到Hyper-v 停止 hypervisorlaunchtype&#xff08;Windows Hyper-V 启动加载器&#xff09; 以管理员的身份打开命令行窗口&#xff0c;运行如下命令&#xff0c;关闭停止 Windows Hyper-V 启动加载器 开启 Windows Hyper-V 启…