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

相关文章

Ubuntu 22.04 服务器安装部署(nginx+postgresql)

《Ubuntu22.04服务器安装部署(nginx+postgresql)》Ubuntu22.04LTS是迄今为止最好的Ubuntu版本之一,很多linux的应用服务器都是选择的这个版本... 目录是什么让 Ubuntu 22.04 LTS 变得安全?更新了安全包linux 内核改进一、部署环境二、安装系统

mysql8.0无备份通过idb文件恢复数据的方法、idb文件修复和tablespace id不一致处理

《mysql8.0无备份通过idb文件恢复数据的方法、idb文件修复和tablespaceid不一致处理》文章描述了公司服务器断电后数据库故障的过程,作者通过查看错误日志、重新初始化数据目录、恢复备... 周末突然接到一位一年多没联系的妹妹打来电话,“刘哥,快来救救我”,我脑海瞬间冒出妙瓦底,电信火苲马扁.

CSS3 最强二维布局系统之Grid 网格布局

《CSS3最强二维布局系统之Grid网格布局》CS3的Grid网格布局是目前最强的二维布局系统,可以同时对列和行进行处理,将网页划分成一个个网格,可以任意组合不同的网格,做出各种各样的布局,本文介... 深入学习 css3 目前最强大的布局系统 Grid 网格布局Grid 网格布局的基本认识Grid 网

Ubuntu固定虚拟机ip地址的方法教程

《Ubuntu固定虚拟机ip地址的方法教程》本文详细介绍了如何在Ubuntu虚拟机中固定IP地址,包括检查和编辑`/etc/apt/sources.list`文件、更新网络配置文件以及使用Networ... 1、由于虚拟机网络是桥接,所以ip地址会不停地变化,接下来我们就讲述ip如何固定 2、如果apt安

在不同系统间迁移Python程序的方法与教程

《在不同系统间迁移Python程序的方法与教程》本文介绍了几种将Windows上编写的Python程序迁移到Linux服务器上的方法,包括使用虚拟环境和依赖冻结、容器化技术(如Docker)、使用An... 目录使用虚拟环境和依赖冻结1. 创建虚拟环境2. 冻结依赖使用容器化技术(如 docker)1. 创

CentOS系统Maven安装教程分享

《CentOS系统Maven安装教程分享》本文介绍了如何在CentOS系统中安装Maven,并提供了一个简单的实际应用案例,安装Maven需要先安装Java和设置环境变量,Maven可以自动管理项目的... 目录准备工作下载并安装Maven常见问题及解决方法实际应用案例总结Maven是一个流行的项目管理工具

C#多线程编程中导致死锁的常见陷阱和避免方法

《C#多线程编程中导致死锁的常见陷阱和避免方法》在C#多线程编程中,死锁(Deadlock)是一种常见的、令人头疼的错误,死锁通常发生在多个线程试图获取多个资源的锁时,导致相互等待对方释放资源,最终形... 目录引言1. 什么是死锁?死锁的典型条件:2. 导致死锁的常见原因2.1 锁的顺序问题错误示例:不同

C#实现系统信息监控与获取功能

《C#实现系统信息监控与获取功能》在C#开发的众多应用场景中,获取系统信息以及监控用户操作有着广泛的用途,比如在系统性能优化工具中,需要实时读取CPU、GPU资源信息,本文将详细介绍如何使用C#来实现... 目录前言一、C# 监控键盘1. 原理与实现思路2. 代码实现二、读取 CPU、GPU 资源信息1.

在C#中获取端口号与系统信息的高效实践

《在C#中获取端口号与系统信息的高效实践》在现代软件开发中,尤其是系统管理、运维、监控和性能优化等场景中,了解计算机硬件和网络的状态至关重要,C#作为一种广泛应用的编程语言,提供了丰富的API来帮助开... 目录引言1. 获取端口号信息1.1 获取活动的 TCP 和 UDP 连接说明:应用场景:2. 获取硬

JAVA系统中Spring Boot应用程序的配置文件application.yml使用详解

《JAVA系统中SpringBoot应用程序的配置文件application.yml使用详解》:本文主要介绍JAVA系统中SpringBoot应用程序的配置文件application.yml的... 目录文件路径文件内容解释1. Server 配置2. Spring 配置3. Logging 配置4. Ma