必须执行驱动程序级备份,包括:一、DKMS状态导出与模块打包;二、提取DEB/RPM安装包;三、同步内核模块及固件目录;四、用kylin-driver-manager导出配置清单;五、LiveCD下镜像/boot与模块分区。

如果您在银河麒麟操作系统中需要保留当前硬件驱动程序的可用副本,以应对系统重装、内核升级或驱动异常导致的功能失效,则必须执行驱动程序级备份。以下是针对麒麟OS驱动程序的多种独立备份方法:
一、使用dkms状态导出与模块文件打包备份
该方法适用于通过DKMS(Dynamic Kernel Module Support)管理的驱动(如NVIDIA、Realtek网卡、RAID卡等),可提取已编译模块及源码配置,确保跨内核版本可重建。
1、打开终端,执行命令查看当前所有DKMS模块状态:sudo dkms status
2、对指定驱动(例如megaraid_sas)导出其DKMS配置与源码路径:sudo dkms mktarball -m megaraid_sas -v 07.726.02.00 --tarball /backup/megaraid_sas-07.726.02.00-dkms.tar.gz
3、手动复制对应内核模块文件:执行sudo cp /lib/modules/$(uname -r)/kernel/drivers/scsi/megaraid/megaraid_sas.ko.xz /backup/
4、将模块解压并校验符号表:xz -d /backup/megaraid_sas.ko.xz && modinfo /backup/megaraid_sas.ko | head -n 10
二、提取已安装驱动包的DEB/RPM原始安装包
该方法适用于通过APT/YUM安装的驱动包(如firmware-realtek、xserver-xorg-video-amdgpu等),直接获取原始二进制包,避免依赖源不可用导致无法重装。
1、查询驱动相关已安装包名称:dpkg -l | grep -i firmware(Debian系)或rpm -qa | grep -i driver(RPM系)
2、对目标包(如firmware-realtek)下载其原始deb包:apt download firmware-realtek
3、若系统为Kylin Server RPM版,使用yumdownloader获取rpm包:sudo yumdownloader --destdir=/backup kernel-firmware
4、验证包完整性:md5sum /backup/firmware-realtek_*.deb
三、备份内核模块目录及固件文件树
该方法覆盖所有加载到当前运行内核的驱动模块及其依赖固件,生成完整静态快照,适用于无网络环境下的离线恢复。
1、创建带时间戳的驱动备份目录:sudo mkdir -p /backup/driver-snapshot-$(date +%Y%m%d)
2、同步/lib/modules/$(uname -r)全部内容(含modules.builtin、modules.order等元数据):sudo rsync -aAXv /lib/modules/$(uname -r)/ /backup/driver-snapshot-$(date +%Y%m%d)/lib-modules/
3、同步固件目录:sudo rsync -aAXv /lib/firmware/ /backup/driver-snapshot-$(date +%Y%m%d)/lib-firmware/
4、记录当前内核版本与硬件识别信息:echo "Kernel: $(uname -r)" > /backup/driver-snapshot-$(date +%Y%m%d)/INFO.txt && lspci -k | grep -A 3 -i "controller\|network\|display" >> /backup/driver-snapshot-$(date +%Y%m%d)/INFO.txt
四、使用kylin-driver-manager导出驱动配置清单
该方法调用麒麟桌面环境原生驱动管理工具,导出图形界面中启用的驱动型号、版本及启用状态,便于人工比对与快速复位。
1、启动驱动管理器:kylin-driver-manager
2、在界面中点击右上角菜单,选择“导出驱动状态”选项
3、保存生成的JSON格式报告至指定路径:/backup/driver-status-$(date +%Y%m%d_%H%M%S).json
4、手动提取关键字段验证:jq '.drivers[] | select(.status=="enabled") | .name,.version' /backup/driver-status-*.json
五、挂载LiveCD环境后镜像整个驱动相关分区
该方法适用于需完整保留/boot分区中initramfs、vmlinuz及驱动模块链的场景,尤其在更换主板或CPU后需确保驱动预加载正确性。
1、使用银河麒麟V10-SP1桌面镜像制作UEFI启动U盘
2、重启进入LiveCD模式,选择“Try Kylin without installing”
3、在Live环境中挂载原系统根分区与/boot分区:sudo mount /dev/sda2 /mnt && sudo mount /dev/sda1 /mnt/boot
4、执行扇区级打包:sudo tar -cJf /home/kylin/live-driver-backup-$(date +%Y%m%d).tar.xz -C /mnt/boot . -C /mnt/lib/modules .



















