如何紧急修复,当你在linux中干穿了libc丢了libc.so.6,ld-linux-x86-64.so.2其中一个
如何紧急修复,当你在linux中干穿了libc丢了libc.so.6,ld-linux-x86-64.so.2其中一个
Bin Lian关键是 在绝对路径命令面前加上/lib/x86_64-linux-gnu/ld-2.28.so 即手动预加载libc文件,然后基本上的命令都可以用
一,unlink 了 其中一个文件,而且你恰好开着终端并且挂着su
Okk 你基本没啥大问题,别退该终端就行
现在先喘口气喝口水,这是最佳情况,这个时候嘞
1 | (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 |
回车, 哦了
对于具体libc 文件在你系统是什么就看你系统了, 一般是ld-linux-x86-64.so.2 或者 libc.so.6 链接着的那个文件
二, 普通用户情况下,没挂su
okk,抽卡环节,就看你平常用不用su了
1 | (root@cname)$/lib/x86_64-linux-gnu/ld-2.28.so /bin/su |
正常挂su,输入密码看看行不行
- 验证成功的话,回到步骤一 结束
- 验证失败 往下看 (一般是鉴定故障)
- sudo 应该用不了会报错,就不用试了
三,整个lib都删了,或者一二解决不了的,只好上大杀器,用live cd 救一救
不要慌 不麻烦
- 先准备个u盘 能装下系统镜像的
- 随便找个带live 的linux镜像(如果不是删了整个库这个级别的话,如果是,下完全一样的系统镜像),推荐用 ubantu的镜像,好下到,自己带了live 功能,方便
- 用随便的启动盘制造工具 把镜像烧进去
- 烧好了,进bios 换一下启动项,给u盘排第一
- try or install ubantu 点try ubantu
好了,你现在应该已经可以用 ubantu系统了
然后我们恢复软件要把地址挂对,不然开机照样就是一个 kernel panic! 所以要把装我们系统的硬盘暂时挂成root,步骤如下:
1 | 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等等都
无法使用了。