记一次ubuntu16误删libc.so.6操作的恢复过程

背景

操作系统:ubuntu16
glibc版本:2.23
修改原因:

经过一系列报错和手工构建之后,vulkansdk成功安装(起码运行./vulkansdu成功),在进行./vulkaninfo进行验证时,报错:
在这里插入图片描述
(意思是当前glibc版本过低,需要更高版本的glibc?可以理解,因为我安装的vulkansdk是ubuntu18的,强行安装到ubuntu16上;因此需要更新glibc版本到2.27)

修改过程:

手动源码安装glibc-2.27
然后将libc-2.27.so放到/lib/x86_64-linux-gnu下,sudo修改libc.so.6软链接指向libc-2.27.so(原来指向libc-2.23.so)
然后出错(且当前不是root用户)

初步调研

ubuntu系统,libc.so.6 版本升级时遇到的各种坑,以及最终解决办法尝试了第一和第二个解决方法,无效
ubuntu如何从升级glibc失败中恢复和2021-03-18 关于ubuntu的libc.so.6的更新和误删操作解决和关于libc.so.6误删除紧急恢复的方案只能通过root用户来进行修复
ubuntu如何从升级glibc失败中恢复和Ubuntu 16.04 找回libc.so.6使用U盘启动,最终使用这个方法

修复过程

主要参考:ubuntu如何从升级glibc失败中恢复
原理:使用U盘的ubuntu系统作为启动盘,将原来的ubuntu16挂载到U盘的ubuntu系统下,U盘的系统是好的,从而使用命令行修改原来的系统,重新建立软链接
(注意ubuntu救援模式或紧急模式没用,因为系统根本无法启动)

制作U盘启动盘

使用rufus制作U盘启动盘,原来服务器是ubuntu16 desktop,这里U盘启动版使用ubuntu16 server

使用U盘进行启动

大致参考戴尔R730从U盘启动,具体过程没有拍照记录

进入U盘系统

  • 选择resecu a broken system
    记一次ubuntu16误删libc.so.6操作的恢复过程_第1张图片
  • 配置键位
  • 配置网络
  • 挂载文件:linux 系统崩溃了,使用u盘启动,进入try ubuntu 如何找到本机系统的挂载点?记一次ubuntu16误删libc.so.6操作的恢复过程_第2张图片
  • 进入救援模式
    记一次ubuntu16误删libc.so.6操作的恢复过程_第3张图片
    记一次ubuntu16误删libc.so.6操作的恢复过程_第4张图片
  • 成功进入U盘系统
    记一次ubuntu16误删libc.so.6操作的恢复过程_第5张图片
  • 重新建立软链接,并且使用chroot将root启动点修改到原硬盘
    记一次ubuntu16误删libc.so.6操作的恢复过程_第6张图片
  • 使用reboot(或者长按开机键)重新启动

进入原来系统的recovery模式

  • 我这里是resume模式进行启动,再重启,之后正常
    记一次ubuntu16误删libc.so.6操作的恢复过程_第7张图片
    记一次ubuntu16误删libc.so.6操作的恢复过程_第8张图片

你可能感兴趣的:(Linux,linux故障恢复)