问题:因为node新版本需要ubuntu1804以上,安装在ubuntu1604上报错,无法直接使用,根据提示更新glibc版本到2.28,结果就导致报错 recipe for target 'install-symbolic-link' failed,直接导致系统无法使用了
解决:因为glibc更新的是系统底层,更新失败导致系统已损坏,需要手动更新/lib/x86_64-linux-gnu下文件软件接到新文件,但系统已经损坏,无法使用,这时只能通过ubuntu的try ubuntu来解决了
方法:
1、准备u盘(8G以上)制作ubuntu启动盘
1.1 下载ubuntu1804,因为ubuntu server没有进入try ubuntu 选项,所以下载desktop版本
链接:https://releases.ubuntu.com/18.04/ubuntu-18.04.6-desktop-amd64.iso
1.2 下载rufus制作工具,大白菜应该也可以,如果下载慢就用迅雷
链接:https://github.com/pbatard/rufus/releases/download/v4.3/rufus-4.3_x86.exe
1.3 制作ubuntu实时USB盘
教程:https://cn.linux-console.net/?p=19443
2、从启动盘进入系统,挂载之前的硬盘
2.1 插入u盘,进入BIOS,选择u盘启动,选择try ubuntu
教程:https://cn.linux-console.net/?p=19443
2.2 进入实时ubuntu系统,进入终端界面,查看硬盘
sudo su
fdisk -l
2.3 可以看到sda盘多个分区,开始挂载硬盘
cd /opt
mkdir sda1 sda2 sda3 sda4 sda5 (有几个创建几个,我有5个分区)
mount /dev/sda1 /opt/sda1
mount /dev/sda2 /opt/sda2 (挂载失败,不用管)
mount /dev/sda3 /opt/sda3
mount /dev/sda4 /opt/sda4 (挂载失败,不用管)
mount /dev/sda5 /opt/sda5
出现挂载失败不用管,在挂载成功的分区中应该可以找到/lib /lib64两个目录
3、从原系统lib64中复制文件到原系统lib中,并制作软链接
3.1 复制glibc新版本到lib中
cd /opt/sda3/lib64 (我的lib,lib64在sda3分区中)
ll l*-2.28.so (可以看到更新的glibc已经基本更新完成了,截个图)
cp -r /opt/sda3/lib/x86_64-linux-gnu/ /opt/sda5/ 备份文件,防止更新有错后无法对照
cp l*-2.28.so ../lib/x86_64-linux-gnu/
3.2 制作glibc软链接
cd /opt/sda3/lib/x86_64-linux-gnu/
sudo ln -sf libanl-2.28.so libanl.so.1
sudo ln -sf libBrokenLocale-2.28.so libBrokenLocale.so.1
sudo ln -sf libcrypt-2.28.so libcrypt.so.1
sudo ln -sf libdl-2.28.so libdl.so.2
sudo ln -sf libm-2.28.so libm.so.6
sudo ln -sf libmvec-2.28.so libmvec.so.1
sudo ln -sf libnsl-2.28.so libnsl.so.1
sudo ln -sf libnss_compat-2.28.so libnss_compat.so.2
sudo ln -sf libnss_dns-2.28.so libnss_dns.so.2
sudo ln -sf libnss_files-2.28.so libnss_files.so.2
sudo ln -sf libnss_hesiod-2.28.so libnss_hesiod.so.2
sudo ln -sf libnss_nis-2.28.so libnss_nis.so.2
sudo ln -sf libpthread-2.28.so* libpthread.so.0
sudo ln -sf libresolv-2.28.so libresolv.so.2
sudo ln -sf librt-2.28.so librt.so.1
sudo ln -sf libutil-2.28.so libutil.so.1
sudo ln -sf libnss_db-2.28.so libnss_db.so.1
sudo ln -sf ld-2.28.so* ld-linux-x86-64.so.2
注:根据上一步截图对照着制作软件链接
4、拔出u盘,启动电脑
4.1 拔出u盘,启动电脑,F12进入bios,选择硬盘启动
4.2 如果上一步启动成功,没问题记得进入bios开启安全启动模式
参考:
https://blog.csdn.net/a_firefly/article/details/108171547
https://blog.csdn.net/deusomax/article/details/70160930