准备工作

  1. 确认系统版本(避免仓库配置错误)执行以下命令查看 Ubuntu 版本:

    bash

    lsb_release -a
    

     Ubuntu 20.04

  2. 关闭重要任务驱动升级可能需要重启,提前保存工作进度,关闭数据库、虚拟机等服务。

第一步:备份现有驱动信息(关键回滚依据)

bash

# 创建备份目录
sudo mkdir -p /opt/nvidia_backup

# 备份当前驱动版本(用于回滚)
if command -v nvidia-smi &> /dev/null; then
    CURRENT_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
else
    echo "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; then
    echo "检测到 nouveau 驱动,开始禁用..."
    # 创建黑名单配置
    sudo tee /etc/modprobe.d/blacklist-nouveau.conf <<EOF
blacklist nouveau
options nouveau modeset=0
EOF
    # 更新 initramfs 使配置生效(必须执行,否则重启后仍会加载 nouveau)
    sudo update-initramfs -u
    echo "✅ nouveau 已禁用,后续步骤可能需要重启后生效"
else
    echo "✅ 未检测到 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 update

echo "✅ NVIDIA 官方仓库已添加并更新"

第五步:检查目标驱动(555)是否兼容

确保仓库中存在 nvidia-driver-555,避免安装失败:

bash

if apt-cache search --names-only '^nvidia-driver-555$' >/dev/null; then
    echo "✅ 检测到 nvidia-driver-555 可用,继续安装"
    TARGET_DRIVER=555
else
    echo "❌ 错误:仓库中未找到 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; then
    echo "✅ 驱动安装成功,当前版本:$(nvidia-smi --query-gpu=driver_version --format=csv,noheader | head -n 1)"
else
    echo "⚠️ 驱动安装完成,但未检测到 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 报错),可通过以下步骤恢复:

  1. 重启系统,在 grub 菜单选择 “高级选项”→ 进入 “恢复模式”→ 选择 “root 命令行”。
  2. 执行回滚命令:

    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
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐