备份思路与范围
一键备份脚本
#!/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"
关键配置与还原要点
定期与自动化备份
30 2 * * * root /root/backup_driver_settings.sh && find /root -name "driver_backup_*.tar.gz" -mtime +7 -delete