本文主要是介绍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导致的系统崩溃及修复的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!