温馨提示×

怎样备份CentOS驱动设置

小樊
48
2025-11-22 02:01:20
栏目: 智能运维

备份思路与范围

  • Linux 内核模块(驱动)以可加载模块(.ko)和内核镜像形式存在,系统升级或重装后可能变化;因此“备份驱动设置”应覆盖:当前运行内核版本、已加载模块及其参数、黑名单与内核启动参数、initramfs 镜像、第三方驱动安装包与源码、以及关键设备配置(如网络)。这样可在新系统或新内核上快速核对与恢复。

一键备份脚本

  • 作用:收集并打包驱动相关关键信息与文件,便于迁移与恢复。
  • 保存为:/root/backup_driver_settings.sh,执行:chmod +x /root/backup_driver_settings.sh && /root/backup_driver_settings.sh
#!/bin/bash
set -e
DATE=$(date +%F-%H%M%S)
OUTDIR="/root/driver_backup_${DATE}"
KVER=$(uname -r)

mkdir -p "$OUTDIR"

# 1) 当前内核与模块清单
uname -a > "$OUTDIR/kernel_version.txt"
lsmod > "$OUTDIR/lsmod.txt"
modinfo -F filename $(lsmod | awk 'NR>1 {print $1}') 2>/dev/null > "$OUTDIR/modinfo_filenames.txt"

# 2) 模块参数与黑名单
for f in /etc/modprobe.d/*.conf /usr/lib/modprobe.d/*.conf; do
  [[ -f "$f" ]] && grep -E '^(options|blacklist|install|alias)' "$f" >> "$OUTDIR/modprobe_conf.txt"
done

# 3) 内核启动参数
cat /proc/cmdline > "$OUTDIR/cmdline.txt"
grubby --info=ALL > "$OUTDIR/grubby_info.txt" 2>/dev/null || echo "grubby not available" > "$OUTDIR/grubby_info.txt"

# 4) initramfs(若使用 dracut)
if command -v dracut >/dev/null 2>&1; then
  dracut -v "$OUTDIR/initramfs-${KVER}.img" "$KVER"
fi

# 5) 第三方驱动相关(示例:NVIDIA)
if command -v nvidia-smi >/dev/null 2>&1; then
  nvidia-smi -q > "$OUTDIR/nvidia-smi.txt"
  cat /proc/driver/nvidia/version > "$OUTDIR/nvidia_version.txt" 2>/dev/null || true
fi

# 6) 打包
tar czf "/root/driver_backup_${DATE}.tar.gz" -C /root "driver_backup_${DATE}"
rm -rf "$OUTDIR"
echo "Saved: /root/driver_backup_${DATE}.tar.gz"

关键配置与还原要点

  • 内核与 initramfs
    • 还原时先确认目标系统的内核版本与当前一致(uname -r)。若曾为禁用 nouveau 重建过 initramfs,可按原步骤备份与恢复:备份 mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak;重建 dracut -v /boot/initramfs-$(uname -r).img $(uname -r);必要时在 GRUB 启动参数中加入 rd.driver.blacklist=nouveau 并重建 initramfs。还原后重启验证。
  • 模块参数与黑名单
    • 将备份的 /etc/modprobe.d/*.conf 内容比对并合并到新系统的同名目录,注意检查是否有冲突或重复条目;重启或 modprobe -r/modprobe 使参数生效。
  • 第三方驱动(以 NVIDIA 为例)
    • 若备份包中包含 nvidia 安装程序或 .run 包,优先在新系统使用相同方式重装;若系统为 ELRepo 内核,建议优先用 kmod 包而非 .run 文件,减少与内核升级的耦合。还原 nvidia-smi、/proc/driver/nvidia/version 输出应与备份一致。
  • 网络与设备配置
    • 网络接口配置位于:/etc/sysconfig/network-scripts/ifcfg-*(如 ifcfg-ens33)。批量备份/迁移时,先拷贝这些文件,再按需调整 ONBOOT、BOOTPROTO、IPADDR、GATEWAY、PREFIX 等字段;使用 nmcli 或 systemctl restart network 使配置生效。

定期与自动化备份

  • 建议将备份脚本加入定时任务,保留近 N 天备份并做完整性校验:
    • 例:每天 02:30 执行,保留 7 天
    • 在 /etc/crontab 添加:
      30 2 * * * root /root/backup_driver_settings.sh && find /root -name "driver_backup_*.tar.gz" -mtime +7 -delete
      
    • 可配合 sha256sum 生成校验值,便于验证备份可用性。

0