debian驱动程序怎样备份
导读:Debian 驱动程序备份与恢复指南 一、备份思路与准备 明确驱动来源:大多数驱动以内核模块(.ko)形式随 Linux 内核与 DKMS 管理;专有驱动可能以 DKMS 模块或闭源脚本/安装包提供。 明确内核版本:执行 uname -r...
Debian 驱动程序备份与恢复指南
一、备份思路与准备
- 明确驱动来源:大多数驱动以内核模块(.ko)形式随 Linux 内核与 DKMS 管理;专有驱动可能以 DKMS 模块或闭源脚本/安装包提供。
- 明确内核版本:执行
uname -r记录当前内核版本(如:6.1.0-21-amd64),后续备份和恢复都需对应此版本或重建到相同版本。 - 准备介质与目录:外接 USB/NAS,创建备份目录(如:/backup/drivers-$(uname -r)),确保有root权限与充足空间。
二、快速备份步骤(通用且可脚本化)
-
- 备份 DKMS 模块与配置(覆盖当前运行内核)
- 查看与备份已注册的 DKMS 模块:
dkms status记录模块名/版本/内核sudo tar czf /backup/drivers-$(uname -r)/dkms-modules.tar.gz -C /var/lib/dkms .
- 备份 DKMS 配置与源码(若有):
sudo cp -a /usr/src /backup/drivers-$(uname -r)/usr-srcsudo cp -a /etc/dkms /backup/drivers-$(uname -r)/etc-dkms
-
- 备份当前运行内核的模块目录
sudo 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)
-
- 备份专有驱动与安装脚本(如有)
- 例如 NVIDIA 官方驱动:
sudo cp -a /usr/src/nvidia-*/ /backup/drivers-$(uname -r)/nvidia/ - 例如 Broadcom b43/brcmsmac 固件:
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.sha256
-
- 远程/异地备份(可选)
- 使用 rsync 增量同步到 NAS/服务器:
rsync -aAXv --delete /backup/drivers-$(uname -r)/ user@nas:/backup/drivers-$(uname -r)/
- 使用 rdiff-backup 做反向增量(保留历史版本):
- 首次:
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 / - 恢复 DKMS:
sudo tar xzf /backup/drivers-$(uname -r)/dkms-modules.tar.gz -C / - 恢复依赖:
sudo depmod -a - 恢复引导文件(如需):
sudo tar xzf /backup/drivers-$(uname -r)/boot-$(uname -r).tar.gz -C /boot - 重启并验证:
lsmod | grep < 模块名>、dkms status、dmesg -T | tail
- 恢复模块:
- 跨版本或重装系统后的恢复
- 先安装目标版本的 内核与头文件:
sudo apt install linux-image-< ver> linux-headers-< ver> - 恢复 DKMS 注册与构建:
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 -T
- 先安装目标版本的 内核与头文件:
- 校验完整性
sha256sum -c /backup/drivers-$(uname -r)/checksums.sha256
- 远程/历史版本恢复
- rsync 覆盖恢复:
rsync -aAXv /backup/drivers-$(uname -r)/ /target/path/ - rdiff-backup 按时间点恢复:
rdiff-backup -r 7D user@nas::/backup/drivers-$(uname -r)/ /restore/path/以上恢复流程与工具选择(rsync、rdiff-backup)适用于 Debian 环境的驱动与系统文件恢复。
- rsync 覆盖恢复:
五、实用建议
- 在升级内核或专有驱动前先执行一次完整备份,保留至少两个内核版本的模块与引导文件,便于回滚。
- 将备份存放在外部介质或异地,并定期做恢复演练与校验(如校验和/实际加载测试)。
- 对使用 Secure Boot 的系统,恢复专有驱动后可能需要重新签名或临时关闭 Secure Boot 再启用。
- 若采用 DKMS,建议将
dkms status的输出纳入备份清单,便于在新环境逐条重建。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: debian驱动程序怎样备份
本文地址: https://pptw.com/jishu/762511.html
