跳转至

Ubuntu 系统安装和卸载 NVIDIA 驱动完整指南

前言

本文以 Ubuntu 22.04 / 24.04 为主要示例,详细介绍 NVIDIA 驱动的安装和卸载流程。Ubuntu 官方推荐使用 ubuntu-drivers 工具自动安装驱动,这是最简单且最稳定的方法。

本文包含两种安装场景:

  • 在线安装:有网络连接的情况(推荐)
  • 离线安装:无网络连接的情况(生产环境常见)

环境准备

  • 操作系统:Ubuntu 22.04 LTS / Ubuntu 24.04 LTS
  • 权限要求:需要 root 或 sudo 权限
  • 网络要求
  • 在线安装:需要稳定的网络连接以下载驱动包
  • 离线安装:需要提前在有网络的机器上下载驱动文件

第一部分:安装 NVIDIA 驱动

步骤 1:检查显卡型号

首先确认系统是否识别到 NVIDIA 显卡:

lspci | grep -i nvidia

预期输出示例

01:00.0 VGA compatible controller: NVIDIA Corporation GP106 [GeForce GTX 1060 6GB] (rev a1)

如果没有任何输出,可能的原因:

  • 显卡未正确连接
  • 显卡未被系统识别
  • 需要检查硬件连接

步骤 2:更新系统软件包

在安装驱动前,确保系统是最新的:

sudo apt update
sudo apt upgrade -y

步骤 3:安装必要的工具

安装编译工具和依赖包:

sudo apt install -y build-essential dkms

步骤 4:检查推荐的驱动版本

Ubuntu 会自动检测并推荐适合的驱动版本:

ubuntu-drivers list

预期输出示例

nvidia-driver-535, (recommended)
nvidia-driver-525
nvidia-driver-470

步骤 5:安装驱动(推荐方法)

方法 A:自动安装推荐版本(最简单)

这是 Ubuntu 官方推荐的方法,会自动安装最适合的驱动:

sudo ubuntu-drivers autoinstall

方法 B:手动安装指定版本

如果需要安装特定版本的驱动:

# 安装推荐的版本
sudo apt install -y nvidia-driver-535

# 或安装其他可用版本
sudo apt install -y nvidia-driver-525

方法 C:使用 NVIDIA PPA(获取最新驱动)

如果需要最新版本的驱动,可以添加 NVIDIA PPA:

# 添加 PPA
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update

# 查看可用版本
ubuntu-drivers list

# 安装指定版本
sudo apt install -y nvidia-driver-535

方法 D:离线安装(无网络环境)

适用场景

适用于生产环境、内网环境或无法连接互联网的服务器。

准备工作(在有网络的机器上完成)

步骤 1:确定驱动版本

在有网络的机器上,访问 NVIDIA 官方驱动下载页面 或使用以下方法确定需要的驱动版本:

# 在有网络的机器上检查推荐版本
ubuntu-drivers list

步骤 2:下载驱动文件

有两种方式下载驱动:

方式 A:下载官方 .run 安装包(推荐)

  1. 访问 NVIDIA 驱动下载页面
  2. 选择你的显卡型号和操作系统
  3. 下载对应的 .run 文件,例如:NVIDIA-Linux-x86_64-535.154.05.run

方式 B:下载 .deb 包(使用 apt-offline)

在有网络的机器上安装 apt-offline 工具:

# 安装 apt-offline
sudo apt install -y apt-offline

# 生成下载清单(以 nvidia-driver-535 为例)
apt-offline set nvidia-driver.sig --install-packages nvidia-driver-535

# 下载所有依赖包
apt-offline get nvidia-driver.sig --bundle nvidia-driver.zip

# 将 nvidia-driver.zip 传输到目标机器

方式 C:手动下载 .deb 包

在有网络的机器上:

# 创建下载目录
mkdir -p ~/nvidia-driver-packages
cd ~/nvidia-driver-packages

# 下载驱动包及其所有依赖
apt download nvidia-driver-535
apt download $(apt-cache depends nvidia-driver-535 | grep "Depends:" | cut -d: -f2 | tr -d " ")

# 打包所有 .deb 文件
tar -czf nvidia-driver-535-packages.tar.gz *.deb

# 将压缩包传输到目标机器
在目标机器上安装(离线环境)

使用 .run 文件安装(方式 A)

# 1. 将 .run 文件传输到目标机器(使用 U盘、scp 等)
# 假设文件在 ~/Downloads/NVIDIA-Linux-x86_64-535.154.05.run

# 2. 赋予执行权限
chmod +x ~/Downloads/NVIDIA-Linux-x86_64-535.154.05.run

# 3. 安装必要的编译工具(如果系统已有可跳过)
# 注意:这些工具需要提前安装,或从其他源获取
sudo apt install -y build-essential dkms linux-headers-$(uname -r)

# 4. 禁用 Nouveau 驱动(如果未禁用)
sudo bash -c 'echo -e "blacklist nouveau\noptions nouveau modeset=0" > /etc/modprobe.d/blacklist-nouveau.conf'
sudo update-initramfs -u

# 5. 进入文本模式(Ctrl+Alt+F3)或停止图形界面
sudo systemctl stop gdm  # 或 lightdm/sddm

# 6. 运行安装程序
sudo ~/Downloads/NVIDIA-Linux-x86_64-535.154.05.run

# 安装选项建议:
# - 安装 NVIDIA 32位兼容库:Yes
# - 自动更新 X 配置文件:Yes
# - 安装 OpenGL 库:Yes(如果使用图形界面)

# 7. 重启系统
sudo reboot

使用 apt-offline 安装(方式 B)

# 1. 将 nvidia-driver.zip 传输到目标机器

# 2. 安装 apt-offline(如果未安装,需要提前准备)
sudo apt install -y apt-offline

# 3. 安装驱动包
sudo apt-offline install nvidia-driver.zip

# 4. 重启系统
sudo reboot

使用 .deb 包手动安装(方式 C)

# 1. 将压缩包传输到目标机器并解压
tar -xzf nvidia-driver-535-packages.tar.gz
cd nvidia-driver-packages

# 2. 安装所有 .deb 包
sudo dpkg -i *.deb

# 如果出现依赖问题,修复依赖(需要提前准备依赖包)
sudo apt-get install -f

# 3. 重启系统
sudo reboot
离线安装注意事项

重要提示

  1. 提前准备依赖:离线安装需要提前准备所有依赖包,包括:
  2. build-essential
  3. dkms
  4. linux-headers-$(uname -r)
  5. 其他 NVIDIA 驱动依赖包

  6. 内核版本匹配:确保目标机器的内核版本与下载驱动时使用的内核版本兼容

  7. 架构匹配:确保下载的驱动包架构(x86_64/arm64)与目标机器匹配

  8. 验证文件完整性:传输文件后,建议验证文件完整性:

    # 检查 .run 文件
    md5sum NVIDIA-Linux-x86_64-*.run
    
    # 检查 .deb 包
    dpkg-deb -I package.deb
    

离线安装验证

安装完成后,使用相同的方法验证:

nvidia-smi
lsmod | grep nvidia

步骤 6:重启系统

安装完成后,必须重启系统以使驱动生效:

sudo reboot

步骤 7:验证安装

重启后,使用以下命令验证驱动是否安装成功:

# 检查驱动版本和 GPU 信息
nvidia-smi

预期输出示例

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 535.154.05   Driver Version: 535.154.05   CUDA Version: 12.2  |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  NVIDIA GeForce ...  Off  | 00000000:01:00.0 On |                  N/A |
|  0%   45C    P8    12W / 250W |    123MiB / 12288MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

验证要点: - ✅ 能看到 GPU 信息 → 驱动安装成功 - ✅ 显示驱动版本和 CUDA 版本 → 驱动正常工作 - ❌ 提示 "command not found" → 驱动未正确安装

额外验证:检查内核模块

确认 NVIDIA 内核模块已加载:

lsmod | grep nvidia

预期输出

nvidia_uvm           1234567  0
nvidia_drm             56789  0
nvidia_modeset        123456  0
nvidia                4567890  0


第二部分:卸载 NVIDIA 驱动

步骤 1:检查当前安装的驱动包

首先查看已安装的 NVIDIA 相关包:

dpkg -l | grep -i nvidia

步骤 2:停止图形界面服务(可选)

如果当前在图形界面,建议先切换到文本模式(tty),或停止显示管理器:

# 对于使用 GDM 的系统
sudo systemctl stop gdm

# 对于使用 LightDM 的系统
sudo systemctl stop lightdm

# 对于使用 SDDM 的系统(KDE)
sudo systemctl stop sddm

注意:停止图形界面后,你将无法看到图形界面,需要通过 SSH 或切换到其他 tty 继续操作。

步骤 3:卸载 NVIDIA 驱动包

方法 A:使用 apt 卸载(推荐)

# 卸载所有 NVIDIA 驱动包
sudo apt remove --purge '^nvidia-.*'
sudo apt remove --purge '^libnvidia-.*'
sudo apt autoremove -y

方法 B:彻底清理残留包

如果方法 A 无法完全清理,使用以下命令:

# 过滤并卸载所有 nvidia 相关包(包括已配置残留)
dpkg -l | grep nvidia | grep "^rc" | awk '{print $2}' | xargs sudo dpkg --purge

# 卸载所有已安装的 nvidia 包
dpkg -l | grep nvidia | grep "^ii" | awk '{print $2}' | xargs sudo apt remove --purge -y

# 强制卸载(如果上面命令失败)
dpkg -l | grep nvidia | awk '{print $2}' | xargs sudo dpkg --force-all --remove

# 最后清理
sudo apt autoremove -y
sudo apt autoclean

Warning

该步骤可能会将nvidia-docker 一并删除,删除前需要将/etc/docker/daemon.json 配置备份

步骤 4:删除配置文件

删除 NVIDIA 相关的配置文件:

# 删除 modprobe 配置
sudo rm -f /etc/modprobe.d/nvidia*.conf
sudo rm -f /etc/modprobe.d/blacklist-nouveau.conf

# 删除 X11 配置(如果存在)
sudo rm -f /etc/X11/xorg.conf
sudo rm -f /usr/share/X11/xorg.conf.d/*nvidia*

步骤 5:删除内核模块

删除 NVIDIA 内核模块:

# 删除内核模块
sudo rm -rf /lib/modules/$(uname -r)/updates/dkms/nvidia*

# 更新 initramfs
sudo update-initramfs -u

步骤 6:清理残留文件

删除可能残留的驱动文件:

# 删除 NVIDIA 库文件
sudo rm -rf /usr/lib/x86_64-linux-gnu/libnvidia*

# 删除 NVIDIA 工具和二进制文件
sudo rm -rf /usr/bin/nvidia*
sudo rm -rf /usr/bin/glxinfo
sudo rm -rf /usr/bin/glxgears

# 删除 NVIDIA 配置文件
sudo rm -rf /etc/nvidia*
sudo rm -rf ~/.nv

步骤 7:恢复 Nouveau 驱动(如果需要)

如果希望恢复使用开源 Nouveau 驱动:

# 删除之前可能存在的 blacklist 配置
sudo rm -f /etc/modprobe.d/blacklist-nouveau.conf

# 确保 Nouveau 模块可以加载
sudo modprobe nouveau

# 更新 initramfs
sudo update-initramfs -u

步骤 8:重启系统

完成卸载后,重启系统:

sudo reboot

步骤 9:验证卸载

重启后,验证驱动是否已完全卸载:

# 应该提示命令不存在
nvidia-smi

# 检查内核模块(应该没有 nvidia 相关模块)
lsmod | grep nvidia

# 检查已安装的包(应该没有 nvidia 相关包)
dpkg -l | grep nvidia

第三部分:常见问题排查

问题 1:安装后无法进入图形界面

症状:重启后卡在登录界面,或黑屏

可能原因

  • 驱动版本不兼容
  • 与 Nouveau 驱动冲突
  • X11 配置错误

解决方法

# 1. 进入恢复模式或文本模式(Ctrl+Alt+F3)
# 2. 卸载当前驱动
sudo apt remove --purge '^nvidia-.*'

# 3. 安装不同版本的驱动
sudo apt install -y nvidia-driver-470  # 尝试较旧版本

# 4. 重启
sudo reboot

问题 2:nvidia-smi 显示 "NVIDIA-SMI has failed"

可能原因

  • 驱动未正确加载
  • 内核模块问题

解决方法

# 检查内核模块
lsmod | grep nvidia

# 如果没有输出,手动加载模块
sudo modprobe nvidia

# 检查 dmesg 日志
dmesg | grep -i nvidia

# 重新安装驱动
sudo apt remove --purge '^nvidia-.*'
sudo apt install -y nvidia-driver-535
sudo reboot

问题 3:安装后系统变慢或卡顿

可能原因

  • 驱动版本过新或过旧
  • 电源管理设置问题

解决方法

# 检查驱动版本是否合适
ubuntu-drivers list

# 尝试安装推荐版本
sudo ubuntu-drivers autoinstall

# 检查 GPU 使用情况
nvidia-smi

# 如果 GPU 一直处于高性能模式,可能需要调整电源管理
sudo nvidia-smi -pm 0  # 禁用持久模式(如果不需要)

问题 4:卸载后仍有残留文件

解决方法

# 使用 find 命令查找所有 nvidia 相关文件
sudo find / -name "*nvidia*" 2>/dev/null

# 手动删除找到的文件(谨慎操作)
# 注意:不要删除系统关键文件

# 清理包缓存
sudo apt clean
sudo apt autoclean

问题 5:多 GPU 环境只识别到一个

解决方法

# 检查所有 GPU
lspci | grep -i nvidia

# 检查 nvidia-smi 识别的 GPU 数量
nvidia-smi -L

# 如果硬件连接正常但只识别一个,可能需要:
# 1. 检查 PCIe 插槽
# 2. 更新 BIOS
# 3. 重新安装驱动

问题 6:离线安装时缺少依赖包

症状:使用 .deb 包安装时提示缺少依赖

解决方法

# 方法 1:提前下载所有依赖(推荐)
# 在有网络的机器上
apt-cache depends nvidia-driver-535 | grep "Depends:" | cut -d: -f2 | tr -d " " | xargs apt download

# 方法 2:使用 apt-offline(推荐用于批量部署)
apt-offline set nvidia-driver.sig --install-packages nvidia-driver-535
apt-offline get nvidia-driver.sig --bundle nvidia-driver.zip

# 方法 3:使用 .run 文件安装(不依赖系统包管理器)
# 这是最灵活的方式,但需要手动处理一些配置
chmod +x NVIDIA-Linux-x86_64-*.run
sudo ./NVIDIA-Linux-x86_64-*.run

问题 7:离线安装 .run 文件时内核头文件缺失

症状:运行 .run 文件时提示找不到内核头文件

解决方法

# 1. 检查当前内核版本
uname -r

# 2. 提前准备对应版本的内核头文件
# 在有网络的机器上下载:
apt download linux-headers-$(uname -r)

# 3. 在目标机器上安装内核头文件
sudo dpkg -i linux-headers-*.deb

# 4. 如果仍有依赖问题,需要下载更多依赖包
# 或使用 .run 文件的 --no-kernel-module 选项(不推荐)

问题 8:离线安装后驱动无法加载

可能原因

  • 内核版本不匹配
  • DKMS 模块未正确构建
  • 内核模块签名问题(Secure Boot)

解决方法

# 1. 检查内核版本匹配
uname -r
ls /lib/modules/

# 2. 手动构建 DKMS 模块
sudo dkms install nvidia/535.154.05 -k $(uname -r)

# 3. 检查模块是否加载
lsmod | grep nvidia

# 4. 如果启用了 Secure Boot,需要禁用或签名模块
# 检查 Secure Boot 状态
mokutil --sb-state

# 如果启用,需要:
# - 禁用 Secure Boot(在 BIOS 中)
# - 或使用已签名的驱动模块

第四部分:最佳实践建议

安装前

  1. 备份重要数据:虽然安装驱动通常不会影响数据,但建议备份
  2. 记录当前配置:保存当前的 X11 配置(如果存在)
  3. 确保网络稳定:下载驱动包需要稳定的网络连接

安装时

  1. 使用推荐版本:优先使用 ubuntu-drivers autoinstall 安装推荐版本
  2. 避免中断:安装过程中不要中断或重启
  3. 查看日志:如果出现问题,查看 /var/log/apt/dmesg 日志

安装后

  1. 验证功能:使用 nvidia-smi 和实际应用验证驱动是否正常工作
  2. 更新系统:定期更新系统和驱动以获取安全补丁
  3. 保存配置:如果进行了特殊配置,记录并备份

卸载时

  1. 先停止服务:卸载前停止相关服务
  2. 彻底清理:使用 --purge 选项确保配置文件也被删除
  3. 验证清理:卸载后验证是否完全清理

快速参考命令

在线安装驱动

# 自动安装推荐版本(最简单)
sudo ubuntu-drivers autoinstall
sudo reboot
nvidia-smi  # 验证

离线安装驱动

# 方式 1:使用 .run 文件安装
chmod +x NVIDIA-Linux-x86_64-*.run
sudo ./NVIDIA-Linux-x86_64-*.run
sudo reboot

# 方式 2:使用 apt-offline(需要提前准备 zip 包)
sudo apt-offline install nvidia-driver.zip
sudo reboot

# 方式 3:使用 .deb 包安装
sudo dpkg -i nvidia-driver-*.deb
sudo apt-get install -f  # 修复依赖
sudo reboot

卸载驱动

# 快速卸载
sudo apt remove --purge '^nvidia-.*'
sudo apt autoremove -y
sudo update-initramfs -u
sudo reboot

检查状态

# 检查驱动版本
nvidia-smi

# 检查内核模块
lsmod | grep nvidia

# 检查已安装的包
dpkg -l | grep nvidia

# 检查推荐版本
ubuntu-drivers list

总结

在 Ubuntu 上安装和卸载 NVIDIA 驱动的关键步骤:

在线安装流程(有网络)

  1. 检查显卡型号 → 2. 更新系统 → 3. 自动安装推荐驱动 → 4. 重启 → 5. 验证

离线安装流程(无网络)

  1. 在有网络机器上下载驱动文件 → 2. 传输到目标机器 → 3. 安装驱动 → 4. 重启 → 5. 验证

卸载流程

  1. 停止服务 → 2. 卸载驱动包 → 3. 删除配置文件 → 4. 清理残留 → 5. 重启 → 6. 验证

推荐方法

在线安装: - ✅ 使用 ubuntu-drivers autoinstall 自动安装(最简单) - ✅ 使用 apt install nvidia-driver-xxx 安装指定版本

离线安装: - ✅ 使用 .run 文件安装(最灵活,适合生产环境) - ✅ 使用 apt-offline 工具(适合批量部署) - ✅ 使用 .deb 包手动安装(需要提前准备依赖)

卸载: - ✅ 使用 apt remove --purge 彻底卸载

重要提醒

  1. 安装或卸载驱动后必须重启系统才能生效
  2. 离线安装需要提前准备所有依赖包
  3. 生产环境建议使用离线安装方式,避免网络问题
  4. 卸载前记得备份 /etc/docker/daemon.json(如果使用 nvidia-docker)

参考资料


最后更新:2025-12-17 测试环境:Ubuntu 22.04 LTS / Ubuntu 24.04 LTS 驱动版本:nvidia-driver-535(示例)

回到页面顶部