如何紧急修复,当你在linux中干穿了libc丢了libc.so.6,ld-linux-x86-64.so.2其中一个

关键是 在绝对路径命令面前加上/lib/x86_64-linux-gnu/ld-2.28.so 即手动预加载libc文件,然后基本上的命令都可以用

Okk 你基本没啥大问题,别退该终端就行

现在先喘口气喝口水,这是最佳情况,这个时候嘞

1
2
(root@cname)$/lib/x86_64-linux-gnu/ld-2.28.so /bin/ln -s /lib/x86_64-linux-gnu/ld-2.28.so /lib64/ld-linux-x86-64.so.2
## 给人家正常挂回去就行了,注意我们刚开始要预先加载 glibc 文件

回车, 哦了

对于具体libc 文件在你系统是什么就看你系统了, 一般是ld-linux-x86-64.so.2 或者 libc.so.6 链接着的那个文件

二, 普通用户情况下,没挂su

okk,抽卡环节,就看你平常用不用su了

1
2
(root@cname)$/lib/x86_64-linux-gnu/ld-2.28.so /bin/su
## 给人家正常挂回去就行了,注意我们刚开始要预先加载 glibc 文件

正常挂su,输入密码看看行不行

  • 验证成功的话,回到步骤一 结束
  • 验证失败 往下看 (一般是鉴定故障)
    • sudo 应该用不了会报错,就不用试了

三,整个lib都删了,或者一二解决不了的,只好上大杀器,用live cd 救一救

不要慌 不麻烦

  1. 先准备个u盘 能装下系统镜像的
  2. 随便找个带live 的linux镜像(如果不是删了整个库这个级别的话,如果是,下完全一样的系统镜像),推荐用 ubantu的镜像,好下到,自己带了live 功能,方便
  3. 用随便的启动盘制造工具 把镜像烧进去
  4. 烧好了,进bios 换一下启动项,给u盘排第一
  5. try or install ubantu 点try ubantu

好了,你现在应该已经可以用 ubantu系统了

然后我们恢复软件要把地址挂对,不然开机照样就是一个 kernel panic! 所以要把装我们系统的硬盘暂时挂成root,步骤如下:

1
2
sudo fdisk -l
###找一下你放系统的那个盘

假如你的盘叫sda4,地址为/dev/sda4, 接下来mount 到锚点

1
sudo mount /dev/sda4 /mnt/

切换一下root 到该目录

1
sudo chroot /mnt

好,这个时候你应该变成在该目录的root 用户了,回到步骤1 结束

强调一下,不要直接在/media/<你的盘的id>/lib中操作,这样建立出来的链接地址人家读不懂,开机继续kernel panic

四,丢失了文件

参考三 但是镜像用完全相同系统的live镜像,有些系统ubantu就集成了所以下原始镜像也可以

然后把丢失的文件全部 cp到你丢的地方,就结束

okk,希望你的系统已经回来了,cheers!

无关的科普:
libc.so.6是c运行时库glibc的软链接,而系统几乎所有程序都依赖C运行时库。程序启动和运行时,是根据libc.so.6软链接找到glibc库。

删除libc.so.6将导致系统的几乎所有程序不能工作。

每个glibc.so文件有它支持的libc版本,可以通过 strings /lib64/libc.so.6|grepαGLIBC_查看,一定要选择这条命令列出的版本。如

果程序编译的时候链接的libc库版本不在程序运行环境下的glibc库支持的libc版本之内,也会报错。于是,系统的所有命令 IS,Cp,cd等等都

无法使用了。