Debian 驱动程序备份与恢复指南
一、备份思路与准备
uname -r 记录当前内核版本(如:6.1.0-21-amd64),后续备份和恢复都需对应此版本或重建到相同版本。二、快速备份步骤(通用且可脚本化)
dkms status 记录模块名/版本/内核sudo tar czf /backup/drivers-$(uname -r)/dkms-modules.tar.gz -C /var/lib/dkms .sudo cp -a /usr/src /backup/drivers-$(uname -r)/usr-srcsudo cp -a /etc/dkms /backup/drivers-$(uname -r)/etc-dkmssudo tar czf /backup/drivers-$(uname -r)/modules-$(uname -r).tar.gz -C /lib/modules/$(uname -r) .sudo tar czf /backup/drivers-$(uname -r)/boot-$(uname -r).tar.gz -C /boot vmlinuz-$(uname -r) initrd.img-$(uname -r) System.map-$(uname -r)sudo cp -a /usr/src/nvidia-*/ /backup/drivers-$(uname -r)/nvidia/sudo tar czf /backup/drivers-$(uname -r)/firmware-b43.tar.gz -C /lib/firmware/b43 .sudo cp /lib/modules/$(uname -r)/modules.dep /backup/drivers-$(uname -r)/sudo depmod -a 确保依赖文件为最新ls -lh /backup/drivers-$(uname -r)/sha256sum /backup/drivers-$(uname -r)/**/* > /backup/drivers-$(uname -r)/checksums.sha256rsync -aAXv --delete /backup/drivers-$(uname -r)/ user@nas:/backup/drivers-$(uname -r)/rdiff-backup /backup/drivers-$(uname -r)/ user@nas::/backup/drivers-$(uname -r)/rdiff-backup /backup/drivers-$(uname -r)/ user@nas::/backup/drivers-$(uname -r)/rdiff-backup -r 7D user@nas::/backup/drivers-$(uname -r)/ /restore/path/
上述做法分别利用了 DKMS 管理内核模块、rsync 的增量同步与 rdiff-backup 的反向增量与版本回溯能力,适合在 Debian 上长期维护驱动备份。三、按驱动来源选择备份策略
| 驱动来源 | 备份重点 | 恢复要点 |
|---|---|---|
| 内核自带模块 | 备份 /lib/modules/$(uname -r) 与 modules.dep |
同版本内核下解压覆盖,执行 depmod -a |
| DKMS 模块 | 备份 /var/lib/dkms、相关 /usr/src/<模块>-<版本>/ 与 /etc/dkms |
在新系统或重装后 dkms add/build/install <模块>/<版本> |
| 专有驱动(NVIDIA、Broadcom 等) | 备份官方安装包、解压目录(如 /usr/src/nvidia-*)、固件(如 /lib/firmware/b43) |
重装对应版本驱动或固件,DKMS 模块按版本重建 |
| 闭源安装脚本 | 保留 .run 安装包与执行日志 |
在相同内核/环境执行安装脚本,必要时加 --uninstall 回滚 |
| 说明:DKMS 能在内核升级后自动重建模块,备份其注册信息与源码可显著降低恢复难度。 |
四、恢复与验证
sudo tar xzf /backup/drivers-$(uname -r)/modules-$(uname -r).tar.gz -C /sudo tar xzf /backup/drivers-$(uname -r)/dkms-modules.tar.gz -C /sudo depmod -asudo tar xzf /backup/drivers-$(uname -r)/boot-$(uname -r).tar.gz -C /bootlsmod | grep <模块名>、dkms status、dmesg -T | tailsudo apt install linux-image-<ver> linux-headers-<ver>sudo cp -a /backup/drivers-<oldver>/usr-src /usr/srcsudo cp -a /backup/drivers-<oldver>/etc-dkms /etc/dkmssudo dkms add -m <模块名> -v <版本>sudo dkms build -m <模块名> -v <版本> -k <目标内核>sudo dkms install -m <模块名> -v <版本> -k <目标内核>modinfo <模块名>、dkms status、lsmod、dmesg -Tsha256sum -c /backup/drivers-$(uname -r)/checksums.sha256rsync -aAXv /backup/drivers-$(uname -r)/ /target/path/rdiff-backup -r 7D user@nas::/backup/drivers-$(uname -r)/ /restore/path/
以上恢复流程与工具选择(rsync、rdiff-backup)适用于 Debian 环境的驱动与系统文件恢复。五、实用建议
dkms status 的输出纳入备份清单,便于在新环境逐条重建。