记一次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盘系统

进入原来系统的recovery模式

  • 我这里是resume模式进行启动,再重启,之后正常