麒麟系统遇恶意驱动蓝屏,需通过grub进入救援模式隔离环境,用dmesg和lsmod定位可疑内核模块,再以rmmod卸载、find删除文件、blacklist屏蔽并更新initramfs与grub配置,最后验证无残留。

麒麟系统(Kylin OS)遇到恶意驱动引发的蓝屏死机时,需先进入安全模式隔离第三方驱动加载环境,再通过命令行工具定位、卸载或禁用可疑内核模块,避免图形界面干扰和驱动自启干扰。
进入麒麟系统的安全模式
麒麟桌面版(V10 SP1及之后版本)基于Linux内核,不提供Windows式“F4进安全模式”机制,但可通过GRUB菜单临时启用单用户/救援模式实现等效隔离。开机时在BIOS自检结束后立即连续按Shift键(UEFI启动)或Esc键(传统BIOS),调出GRUB菜单;用方向键选中当前默认启动项,按'e'编辑启动参数;在以linux开头的行末尾空格后添加 systemd.unit=multi-user.target rd.break=premount;按Ctrl+X或F10启动。该参数跳过图形服务、网络服务及所有非基础设备驱动加载,仅挂载根文件系统并进入最小shell环境。
注意:此操作不修改系统配置,重启后自动恢复原启动方式。
定位可疑内核模块
进入救援shell后,先执行 mount -o remount,rw /sysroot 使根分区可写;然后 chroot /sysroot 切换到真实系统环境。
运行 dmesg -T | grep -i "error\|fail\|panic\|oops" 查看最近内核日志,重点关注含“.ko”“.ko.xz”后缀的模块名及加载时间——恶意驱动常在系统启动早期强行插入,日志中会出现“insmod: ERROR”或“invalid module format”等异常提示。
再执行 lsmod | awk '$1 !~ /^(ipt|nf|ebtable|crc|ip6|x_tables|fuse|loop|sr_mod|cdrom)$/ {print $1}' 筛选出非系统基础模块,特别留意名称伪装成硬件驱动(如kvm_intel、nvme、r8169)但实际为后门模块的条目,例如:fake_r8169、drv_killer、netguard_sys。
卸载并清除恶意驱动文件
第一步:卸载已加载的可疑模块。执行 rmmod 模块名(如 rmmod fake_r8169)。若提示“Module xxx is in use”,说明有进程依赖,先用 lsof -nPi | grep 模块名 查进程,再 kill -9 PID 终止。
第二步:删除模块文件。恶意驱动通常存放于 /lib/modules/$(uname -r)/extra/ 或 /lib/modules/$(uname -r)/updates/ 目录下。执行 find /lib/modules/$(uname -r) -name "*fake*|*killer*|*guard*" -type f -delete 清理已知特征文件。
第三步:检查模块自动加载配置。查看 /etc/modprobe.d/*.conf 中是否含 install 模块名 /bin/true 或 alias 模块名 xxx 类行,若有,用 sed -i '/模块名/d' /etc/modprobe.d/*.conf 删除整行,并执行 depmod -a 更新模块依赖缓存。
阻止驱动开机自启
方法一:黑名单屏蔽。向 /etc/modprobe.d/blacklist.conf 追加内容:blacklist fake_r8169
blacklist drv_killer(每行一个模块名)。
方法二:禁用initramfs嵌入。某些恶意驱动会打包进initramfs镜像,执行 lsinitrd | grep -i "fake\|killer" 检查;若命中,需重建initramfs:dracut -f -v(麒麟V10使用dracut,非update-initramfs)。
执行完上述任一方法后,必须运行 update-grub(或 grub2-mkconfig -o /boot/grub2/grub.cfg)刷新引导配置,否则重启后黑名单不生效。
验证修复效果
退出chroot环境:exit → exec /sbin/init;系统将正常重启。
重启后立即打开终端,运行 lsmod | grep -E "(fake|killer|guard)",输出应为空;再执行 dmesg -T | tail -30,确认无新报错模块加载记录。











