Ubuntu 16.04 因更新libc导致的系统崩溃及修复

2024-01-28 14:18

本文主要是介绍Ubuntu 16.04 因更新libc导致的系统崩溃及修复,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

    • 问题表现
    • 问题定位
    • 问题解决
        • 修复尝试
        • 数据备份
        • 系统修复
    • 总结

问题表现

笔记本型号:DELL Latitude 5280
操作系统:Ubuntu 16.04 LTS

某次重启笔记本后发现开机过程中,ubuntu系统logo出现后就停止在黑屏界面,无法成功开机。

问题定位

开机后在DELL标志显示界面按F12进入启动项选择界面,修改启动项,将 ro recovery nomodeset 改为 rw single init=/bin/bash,进入 recovery单用户模式,即可以终端而非界面的形式访问系统,对系统文件进行读写操作。

首先,进入目录/var/log查看系统日志,回忆重启笔记本前进行的操作,猜测可能是因为新安装了某个软件,于是查看日志dpkg.log,发现软件安装过程中自动将libc库由2.23更新为2.28版本,百度发现确实存在一些由于更新底层库导致无法正常启动系统的情况。

问题解决

  • 修复尝试

从系统中寻找libc-2.23. so,替换/lib/下libc-2.28.so并更改libc.软连接libc.so.6。操作后悲剧了,包括ls、cp在内的所有命令基本都失效。重启发现只能进grub界面,本来进入修复模式后,挂载个硬盘,把所有数据拷贝出来再重装系统就完事了,现在还得考虑怎么把数据拷贝出来。

  • 数据备份

从DELL得到了出厂的ubuntu系统安装引导软件,用U盘制作引导盘,插入待修复笔记本,进入修复系统,并将笔记本硬盘挂载到修复系统上,可以访问原系统所有文件,多次尝试修复libc失败,任命备份数据。

  • 系统修复

备份过程中忽然想起可以安装ubuntu双系统,将原系统数据挂载到新系统中。但笔记本出厂时用户的可操作分区只有一个,即/root和/home都在一个分区,也没有空闲分区用来安装新系统,所以首先进行分区,得到一个空闲分区,然后在该分区安装系统,成功后即可访问原系统所有文件。包括virtualbox中的虚拟机也可直接在新系统中添加启动,原虚拟机中的内容被完全保留。

总结

ubuntu的界面系统不够稳定,时间长了难免踩坑,为节省新系统的安装和软件配置时间,应定期对系统进行备份,方法见https://blog.csdn.net/sinat_27554409/article/details/78227496。

这篇关于Ubuntu 16.04 因更新libc导致的系统崩溃及修复的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/653878

相关文章

电脑找不到mfc90u.dll文件怎么办? 系统报错mfc90u.dll丢失修复的5种方案

《电脑找不到mfc90u.dll文件怎么办?系统报错mfc90u.dll丢失修复的5种方案》在我们日常使用电脑的过程中,可能会遇到一些软件或系统错误,其中之一就是mfc90u.dll丢失,那么,mf... 在大部分情况下出现我们运行或安装软件,游戏出现提示丢失某些DLL文件或OCX文件的原因可能是原始安装包

电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案

《电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案》最近有不少兄弟反映,电脑突然弹出“mfc100u.dll已加载,但找不到入口点”的错误提示,导致一些程序无法正... 在计算机使用过程中,我们经常会遇到一些错误提示,其中最常见的就是“找不到指定的模块”或“缺少某个DL

快速修复一个Panic的Linux内核的技巧

《快速修复一个Panic的Linux内核的技巧》Linux系统中运行了不当的mkinitcpio操作导致内核文件不能正常工作,重启的时候,内核启动中止于Panic状态,该怎么解决这个问题呢?下面我们就... 感谢China编程(www.chinasem.cn)网友 鸢一雨音 的投稿写这篇文章是有原因的。为了配置完

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

MySQL更新某个字段拼接固定字符串的实现

《MySQL更新某个字段拼接固定字符串的实现》在MySQL中,我们经常需要对数据库中的某个字段进行更新操作,本文就来介绍一下MySQL更新某个字段拼接固定字符串的实现,感兴趣的可以了解一下... 目录1. 查看字段当前值2. 更新字段拼接固定字符串3. 验证更新结果mysql更新某个字段拼接固定字符串 -

Ubuntu中远程连接Mysql数据库的详细图文教程

《Ubuntu中远程连接Mysql数据库的详细图文教程》Ubuntu是一个以桌面应用为主的Linux发行版操作系统,这篇文章主要为大家详细介绍了Ubuntu中远程连接Mysql数据库的详细图文教程,有... 目录1、版本2、检查有没有mysql2.1 查询是否安装了Mysql包2.2 查看Mysql版本2.

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

新特性抢先看! Ubuntu 25.04 Beta 发布:Linux 6.14 内核

《新特性抢先看!Ubuntu25.04Beta发布:Linux6.14内核》Canonical公司近日发布了Ubuntu25.04Beta版,这一版本被赋予了一个活泼的代号——“Plu... Canonical 昨日(3 月 27 日)放出了 Beta 版 Ubuntu 25.04 系统镜像,代号“Pluc

MySQL新增字段后Java实体未更新的潜在问题与解决方案

《MySQL新增字段后Java实体未更新的潜在问题与解决方案》在Java+MySQL的开发中,我们通常使用ORM框架来映射数据库表与Java对象,但有时候,数据库表结构变更(如新增字段)后,开发人员可... 目录引言1. 问题背景:数据库与 Java 实体不同步1.1 常见场景1.2 示例代码2. 不同操作