当前位置:首页 > Linux > 正文

Linux驱动丢失如何备份?

备份Linux驱动需保存内核模块文件和相关配置,主要步骤: ,1. 定位驱动文件:位于 /lib/modules/$(uname -r)/kernel/ 目录 ,2. 备份整个模块目录: sudo cp -r /lib/modules/$(uname -r) /备份路径 ,3. 备份配置文件:复制 /etc/modprobe.d//etc/modules 等目录 ,备份后建议压缩存储,重装系统时还原即可恢复驱动。

手动备份驱动文件(推荐)

原理:直接复制内核驱动文件(.ko)及配置文件,适用于所有Linux发行版。
步骤

  1. 定位驱动文件

    # 列出所有已加载驱动模块
    lsmod | awk 'NR>1 {print $1}' > current_modules.txt
    # 查找模块路径(以e1000网卡驱动为例)
    modinfo e1000 | grep "filename:" | awk '{print $2}'

    输出示例:/lib/modules/$(uname -r)/kernel/drivers/net/ethernet/intel/e1000/e1000.ko

  2. 创建备份目录

    sudo mkdir -p /backup/drivers/$(uname -r)
  3. 复制核心文件

    # 备份.ko驱动模块
    sudo cp /lib/modules/$(uname -r)/kernel/drivers/**/*.ko /backup/drivers/$(uname -r)/
    # 备份模块依赖关系
    sudo cp /lib/modules/$(uname -r)/modules.dep /backup/drivers/$(uname -r)/
    # 备份设备配置文件(关键!)
    sudo cp /etc/modprobe.d/* /backup/drivers/$(uname -r)/
  4. 验证备份完整性

    sha256sum /backup/drivers/$(uname -r)/*.ko > /backup/drivers/checksums.txt

使用dkms动态内核模块支持

适用场景:针对通过DKMS(Dynamic Kernel Module Support)安装的驱动(如NVIDIA显卡驱动)。
操作流程

Linux驱动丢失如何备份?  第1张

  1. 确认驱动支持DKMS:

    dkms status  # 输出示例:nvidia, 470.182.03, 5.15.0-86-generic, x86_64: installed
  2. 备份DKMS模块源码:

    sudo cp -r /usr/src/<module_name>-<version> /backup/drivers/dkms/
  3. 导出配置信息:

    dkms status > /backup/drivers/dkms_status.log

恢复命令

sudo dkms install -m <module_name> -v <version>

自动化脚本备份(高危操作防护)

推荐工具driver-backup脚本(社区维护)
步骤

  1. 下载脚本:

    wget https://github.com/driver-backup-project/driver-backup/releases/latest/download/driver-backup.sh
    chmod +x driver-backup.sh
  2. 执行备份(自动打包当前内核所有驱动):

    sudo ./driver-backup.sh -o /backup/drivers_$(date +%F).tar.gz
  3. 安全验证
    解压后检查/lib/modules/目录结构是否完整,避免覆盖系统文件。


关键注意事项

  1. 内核版本绑定
    备份的驱动仅适用于相同内核版本的系统,通过uname -r记录内核号,恢复前需确认目标系统版本一致。

  2. 存储安全

    • 将备份文件保存至外部设备或云存储(如使用rsync同步至NAS)
    • 加密敏感配置:gpg -c /backup/drivers.tar.gz
  3. 恢复流程

    # 手动恢复示例
    sudo cp -r /backup/drivers/$(uname -r)/* /lib/modules/$(uname -r)/
    sudo depmod -a  # 重建模块依赖
    sudo modprobe <module_name>  # 加载驱动
  4. 硬件兼容性
    虚拟机驱动(如virtio)无需备份,重点备份显卡、网卡、RAID卡等专用硬件驱动。


为什么备份驱动至关重要?

  • 系统升级风险:内核更新可能导致专有驱动失效(如NVIDIA驱动)
  • 硬件故障应对:快速替换故障服务器网卡/存储控制器
  • 合规审计:保留旧版驱动满足企业安全策略要求

专业提示:每季度或重大升级前备份一次,结合cron设置自动任务:
0 3 * * 1 tar -zcf /backup/drivers_$(date +%F).tar.gz /lib/modules/$(uname -r)


引用说明

  • DKMS官方文档:https://github.com/dell/dkms
  • Linux内核模块管理:https://www.kernel.org/doc/html/latest/admin-guide/modules.html
  • 驱动备份脚本源码:https://github.com/driver-backup-project/driver-backup(GPLv3许可)
0