ubuntu更新nvidia显卡驱动
准备工作
-
确认系统版本(避免仓库配置错误)执行以下命令查看 Ubuntu 版本:
bash
lsb_release -aUbuntu 20.04
-
关闭重要任务驱动升级可能需要重启,提前保存工作进度,关闭数据库、虚拟机等服务。
第一步:备份现有驱动信息(关键回滚依据)
bash
# 创建备份目录
sudo mkdir -p /opt/nvidia_backup# 备份当前驱动版本(用于回滚)
if command -v nvidia-smi &> /dev/null; thenCURRENT_DRIVER=$(nvidia-smi --query-gpu=driver_version --format=csv,noheader | head -n 1)echo "$CURRENT_DRIVER" | sudo tee /opt/nvidia_backup/driver_version.txt >/dev/null
elseecho "none" | sudo tee /opt/nvidia_backup/driver_version.txt >/dev/null
fi# 备份核心驱动文件和配置
sudo cp -r /usr/lib/nvidia /opt/nvidia_backup/ 2>/dev/null || true # 驱动库文件
sudo cp -r /lib/modules/$(uname -r)/kernel/drivers/video/nvidia* /opt/nvidia_backup/ 2>/dev/null || true # 内核模块
sudo cp /etc/X11/xorg.conf /opt/nvidia_backup/ 2>/dev/null || true # Xorg配置(若存在)echo "✅ 驱动信息已备份至 /opt/nvidia_backup"
cc@js:/opt/nvidia_backup$ ls
driver_version.txt nvidia
第二步:清理旧驱动
bash
# 仅删除核心驱动相关包(保留工具类如 nvidia-settings)
sudo apt remove --purge -y nvidia-driver-* nvidia-kernel-* nvidia-dkms-* || true# 自动清理无用依赖和缓存
sudo apt autoremove -y && sudo apt autoclean
第三步:禁用开源驱动 nouveau(避免冲突)
nouveau 是 NVIDIA 显卡的开源驱动,与闭源驱动冲突可能导致黑屏,必须禁用:
bash
# 检查 nouveau 是否正在运行
if lsmod | grep -q nouveau; thenecho "检测到 nouveau 驱动,开始禁用..."# 创建黑名单配置sudo tee /etc/modprobe.d/blacklist-nouveau.conf <<EOF
blacklist nouveau
options nouveau modeset=0
EOF# 更新 initramfs 使配置生效(必须执行,否则重启后仍会加载 nouveau)sudo update-initramfs -uecho "✅ nouveau 已禁用,后续步骤可能需要重启后生效"
elseecho "✅ 未检测到 nouveau 驱动,无需禁用"
fi
第四步:添加 NVIDIA 官方仓库(避免第三方 PPA 风险)
根据你的系统版本(假设 Ubuntu 20.04),添加官方仓库:
bash
# 移除可能已添加的第三方 PPA(若有)
sudo add-apt-repository -r -y ppa:graphics-drivers/ppa 2>/dev/null || true# 添加 Ubuntu 20.04 对应的 NVIDIA 官方仓库
curl -fsSL https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/3bf863cc.pub | sudo gpg --dearmor -o /usr/share/keyrings/nvidia.gpg
echo "deb [signed-by=/usr/share/keyrings/nvidia.gpg] https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /" | sudo tee /etc/apt/sources.list.d/nvidia.list# 更新仓库缓存
sudo apt updateecho "✅ NVIDIA 官方仓库已添加并更新"
第五步:检查目标驱动(555)是否兼容
确保仓库中存在 nvidia-driver-555,避免安装失败:
bash
if apt-cache search --names-only '^nvidia-driver-555$' >/dev/null; thenecho "✅ 检测到 nvidia-driver-555 可用,继续安装"TARGET_DRIVER=555
elseecho "❌ 错误:仓库中未找到 nvidia-driver-555,可能与系统版本/内核不兼容"echo "建议:执行 'ubuntu-drivers list' 查看推荐驱动,或更换版本(如 550、545)"exit 1 # 停止安装,避免失败
fi
第六步:安装目标驱动(555)
bash
# 安装驱动(包含内核模块、配置工具等)
sudo apt install -y nvidia-driver-$TARGET_DRIVER# 安装完成后,检查驱动是否初步加载(可能需要重启后才完全生效)
if command -v nvidia-smi &> /dev/null; thenecho "✅ 驱动安装成功,当前版本:$(nvidia-smi --query-gpu=driver_version --format=csv,noheader | head -n 1)"
elseecho "⚠️ 驱动安装完成,但未检测到 nvidia-smi,可能需要重启后生效"
fi
cc@js:~$ if command -v nvidia-smi &> /dev/null; then
> echo "✅ 驱动安装成功,当前版本:$(nvidia-smi --query-gpu=driver_version --format=csv,noheader | head -n 1)"
> else
> echo "⚠️ 驱动安装完成,但未检测到 nvidia-smi,可能需要重启后生效"
> fi
✅ 驱动安装成功,当前版本:555.42.06
cc@js:~$ nvidia-smi
Tue Nov 11 16:15:51 2025
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 555.42.06 Driver Version: 555.42.06 CUDA Version: 12.5 ......
第七步:手动重启(自主选择时机)
驱动安装后,需重启加载新内核模块:
bash
sudo reboot
回滚方案(若安装失败)
如果重启后驱动异常(如黑屏、nvidia-smi 报错),可通过以下步骤恢复:
- 重启系统,在 grub 菜单选择 “高级选项”→ 进入 “恢复模式”→ 选择 “root 命令行”。
- 执行回滚命令:
bash
# 查看备份的旧驱动版本 OLD_DRIVER=$(cat /opt/nvidia_backup/driver_version.txt) # 安装旧驱动(若旧版本为 "none",则执行 sudo apt install -y nvidia-driver-推荐版本) sudo apt install -y nvidia-driver-$OLD_DRIVER # 重启 sudo reboot
