误删libc.so等核心库后,系统“失语”,须分场景修复:SSH存活时用TAB补全确认真实glibc库(如libc-2.17.so),再用sln重建libc.so.6、ld-linux-x86-64.so.2、libm.so.6三链;无SSH时需LiveCD挂载原系统,从同版本Live环境复制libc.so.6等库至/lib/x86_64-linux-gnu/并chroot验证。

麒麟OS误删libc.so等核心库文件后,系统立即进入“失语”状态:所有命令报错、终端无法执行新指令、图形界面黑屏或循环重启,必须在当前SSH连接存活的黄金窗口期内或通过LiveCD环境紧急修复。
确认真实glibc库文件名并重建libc.so.6软链接
执行ldd --version查看glibc主版本号;若报错,则进入/lib64目录,连续按两次TAB键触发bash自动补全——【这个真实存在的 .so 文件名就是你唯一能用的恢复依据】。
确认后立即执行:sln /lib64/libc-2.17.so /lib64/libc.so.6(将2.17替换为你实际看到的版本号)。
这一步成功后,ls、pwd等基础命令应立刻恢复正常。若仍报错,请检查是否输错了真实库文件名,或该文件权限被意外修改为不可读。
同步修复另外两个关键软链接
仅恢复libc.so.6不足以让全部命令稳定运行,还需重建以下两个关联软链接:
第一步:sln /lib64/ld-2.17.so /lib64/ld-linux-x86-64.so.2
第二步:sln /lib64/libm-2.17.so /lib64/libm.so.6
这两步顺序不能颠倒,因为ld-linux-x86-64.so.2是动态链接器入口,缺失会导致部分命令即使有libc也无法启动;libm.so.6缺失则数学运算相关程序(如bc、某些脚本)仍会失败。
无SSH连接时:用LiveCD挂载原系统并批量替换库文件
若已彻底断开SSH、只能看到BusyBox shell(提示符为/ #),说明必须用同版本麒麟V10 SP1安装U盘启动,选择“试用而不安装”进入Live桌面。
打开终端,执行sudo fdisk -l识别原系统根分区(通常为/dev/sda2或/dev/nvme0n1p2),然后创建挂载点并挂载:sudo mkdir /mnt/kylin && sudo mount /dev/sda2 /mnt/kylin。
关键操作——从Live环境提取未损坏的原始库文件。银河麒麟V10 SP1默认使用glibc 2.31,其核心库位于Live系统的/usr/lib/x86_64-linux-gnu/目录下。执行:sudo cp /usr/lib/x86_64-linux-gnu/{libc.so.6,libpthread.so.0,libdl.so.2,libm.so.6} /mnt/kylin/lib/x86_64-linux-gnu/。
【必须校验文件完整性】复制完成后,切勿直接重启。先chroot进原系统验证:sudo mount --bind /dev /mnt/kylin/dev && sudo mount --bind /proc /mnt/kylin/proc && sudo mount --bind /sys /mnt/kylin/sys && sudo chroot /mnt/kylin ldd /bin/ls | head -5。若输出显示“not a dynamic executable”或大量“not found”,说明复制不全或路径错误;若正常列出依赖库路径,则退出chroot(输入exit两次),卸载所有挂载点(umount -R /mnt/kylin),再重启。

















