麒麟系统因libc.so等核心库被覆盖导致黑屏或循环重启,须在initramfs或livecd中修复:先挂载原系统,再从同版本live环境复制glibc 2.31相关库文件至/lib/x86_64-linux-gnu/,chroot验证后重启。

麒麟系统因关键库文件(如libc.so、libpthread.so等)被错误覆盖后,启动时卡在黑屏或无限循环重启,图形界面无法加载,终端也无法正常进入——这类故障必须在initramfs环境或LiveCD中操作,否则系统将彻底失去响应能力。
确认是否为库文件损坏导致的启动失败
开机后若卡在“Loading initial ramdisk…”之后、出现“Segmentation fault”“cannot open shared object file”或直接返回BusyBox shell(提示符为/ #),说明内核已加载但用户空间初始化失败。此时运行ls /lib/x86_64-linux-gnu/ | head -10可快速查看基础库是否存在;若输出为空或报错“No such file or directory”,基本可判定是glibc等核心库被破坏。
注意:不要尝试在BusyBox中直接运行ldconfig或apt install --reinstall libc6——这些命令依赖动态链接器本身,而链接器正是被覆盖的对象,执行必报错且可能加重损坏。
从LiveCD挂载原系统并替换原始库文件
第一步:使用同版本麒麟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),再重启。
若无同版本LiveCD,用应急包手动恢复
方法一:从另一台同型号麒麟电脑导出关键库打包
在可用机器上执行:
cd /lib/x86_64-linux-gnu/
tar -czf kylin-lib-core.tgz libc.so.6 libpthread.so.0 libdl.so.2 libm.so.6 ld-linux-x86-64.so.2
将生成的kylin-lib-core.tgz拷贝至故障机U盘,在BusyBox shell中执行:
mkdir /mnt/usb
mount /dev/sdb1 /mnt/usb
tar -xzf /mnt/usb/kylin-lib-core.tgz -C /lib/x86_64-linux-gnu/
方法二:使用麒麟官方救援包(适用于V10 SP1 2203及以后版本)
下载地址:https://update.kylinos.cn/kylin/iso/rescue/kylin-rescue-v10sp1-2203-amd64.iso
该镜像内置/rescue/lib-recover脚本,运行后自动检测并覆盖损坏的glibc核心文件,无需手动指定路径。











