误删libstdc++.so.6文件导致Ubuntu系统无法正常启动

1 背景

在使用pycharm测试代码时,出现:
ImportError: /lib/x86_64-linux-gnu/libstdc++.so.6: version GLIBCXX_3.4.29' not found 错误。看了网上的一些博客,并follow了解决方案,结果导致误删/usr/lib/x86_64-linux-gnu/libstdc++.so.6文件。误删该文件以后,因为很多功能不可用,所以又脑残的把系统重启了,然后,,,,,,,就进不了系统了。

误删步骤

# 拷贝文件
cp /root/anaconda3/lib/libstdc++.so.6.0.29 /usr/lib/x86_64-linux-gnu/
# 删除原链接
rm /usr/lib/x86_64-linux-gnu/libstdc++.so.6#在这里将libstdc++.so.6删除后会出现各种问题

# 建立新的连接
ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.29 /usr/lib/x86_64-linux-gnu/libstdc++.so.6

误删并重启后的状态
文件误删并重启后,在进入系统的过程中出现一个白色光标在屏幕左上角闪动,然后就一直闪动而无法进入系统,(在出现白色光标之前,可以打开BIOS)。
在这里插入图片描述

2 解决方案

问题很明显是由于缺少了libstdc++.so.6文件导致的,因此我决定使用USB启动盘在对应的位置找到libstdc++.so.6 文件,根据USB启动盘中的libstdc++.so.6文件类型,拷贝或则重新制作已删除的硬盘启动盘里的libstdc++.so.6文件。

步骤:

  1. 制作启动盘。启动盘制作流程

  2. 电脑插上USB启动盘,在开机时按F2键进入BIOS(本人电脑是F2,有的电脑可能是F10或F12等)。
    在这里插入图片描述

  3. 进入BIOS后,找到启动(Boot选项),选择使用USB盘启动(本人的是UEFI: KingstonDataTraveler 3.0, Partition 4,使用的U盘不同会有不同的名字)
    在这里插入图片描述
    在这里插入图片描述

  4. 选择使用USB盘启动后,出现以下页面,此时不用管,等待执行即可,当然也可以直接回车快速执行。注意:有的可能会有install Ubuntu,千万不要选,这是重装系统。
    在这里插入图片描述

  5. 然后,选择try Ubuntu,进入U盘作为启动盘的Ubuntu临时系统
    在这里插入图片描述

  6. Linux系统通过USB启动盘进入系统后(Computer为USB启动盘),原来系统所在的硬盘已经自动挂载好(图中红框部分,其中箭头所指的307GB Volume为硬盘启动盘)。
    在这里插入图片描述

  7. 进入USB启动盘/usr/lib/x86_64-linux-gnu文件夹下寻找libstdc++.so.6文件,并使用终端命令 ls -l libstdc++.so.6 查看文件属性。输出结果发现libstdc++.so.6只是libstdc++.so.6.0.28的软连接。
    在这里插入图片描述

  8. 因此,在硬盘启动盘的/usr/lib/x86_64-linux-gnu路径下,使用终端通过以下命令sudo ln -s libstdc++.so.6.0.28 libstdc++.so.6 生成libstdc++.so.6
    在这里插入图片描述

  9. 生成libstdc++.so.6后,reboot重启电脑,系统恢复。

3 扩展

对于Ubuntu系统,如果误删了其他的系统文件,为了不重装系统,也可以使用该方法补救。当然,有些文件可能不行,本人没有对所有类型的系统文件验证。

评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值