前段时间我跑了几年的Ubuntu系统在编译一个东西的时候改动了系统内核文件,导致除了cd命令其他命令都无法使用;
一直报错:
/sbin/init: relocation error:/lib/.... version GLIBS_PRIVATE ...not define
ld-linux-x86-64.so.2 with link time reference(信息记不大清楚了,大致是这样的)
修复方法:
- 找一个大于8G的U盘,下载对应版本的ubuntu镜像文件,制作U盘启动盘
- 在需要修复的电脑上启动u盘启动盘,进入Try Ubuntu;直接进入测试系统
- 此时,你在此系统中会看到有个media 一长串字母数字组成的目录,这个其实就是我们真实ubuntu系统
- 对比测试系统和我们真实系统的usr/lib64下的系统库文件(主要找到错误中提到的两个.so文件)
- 用sudo cp 命令拷贝测试系统中的so库到真实系统usr/lib64下
- sudo sln xxxxxxxxxx(那一长串字母数字,真实系统)/usr/lib64/ld-2.23.s0xxxxxxxxxx(那一长串字母数字,真实系统)/usr/lib64/ld-linux-x86-64.so.2
- 关机正常启动电脑,成功进入系统说明系统修复了.
PS: 如果正常启动电脑遇上No boot Device Found错误,
可以在插上U盘进入测试系统,命令行输入:
grub-install --root-directory=/media/tempdir /dev/sda
其中tempdir是我自己新建的目录,大家可自行命名;
fdisk -l 可以查看系统分区,我这边查看系统启动在 /dev/sda
上述命令输完后运行sudo update-grub2即可
关掉测试系统,正常启动电脑,此时没有再报No boot Device Found,出现正常启动界面,说明修复成功了.
因为是好几天前经过无数次各种尝试修复的,当时没做记录,以上内容均为我凭记忆记录,大致内容应该是正确的,个别错误请大家多多包含啊!