1. 动手之前先摸清底细:显卡、系统版本和引导模式
Ubuntu 装 NVIDIA 显卡驱动这件事,看起来只是一条apt install命令,但实际上它是新手最容易把系统搞成黑屏的操作之一。我见过太多人照着某篇帖子抄了一句命令,重启之后只剩一个光标在闪,然后开始在另一台电脑上疯狂搜索"ubuntu 黑屏怎么救"。问题的根源不在于命令本身,而在于每个人的机器都不一样:显卡型号、Ubuntu 版本、内核版本、是否开 Secure Boot、是不是笔记本双显卡,这五个变量只要有一个不同,合适的做法就可能完全不一样。
所以这篇内容不打算直接甩给你一条命令让你抄,而是按我自己的习惯,把整件事拆成"先侦察、再选路线、然后执行、最后验证和收尾"四步走。Ubuntu、NVIDIA、显卡驱动这三个词背后的坑,绝大多数都集中在开头没侦察清楚和结尾没验证到位这两头。看完之后你应该能做到:知道自己的卡该用哪个分支的驱动,知道三条安装路线各自的代价,知道装完之后用哪几条命令判断到底成没成,也知道真黑屏了怎么从 TTY 里爬回来。
1.1 用 lspci 确认到底是哪块显卡在跑显示
很多人第一步就错了:看到机器里有一块 NVIDIA 卡,就直接装驱动。但如果你的显示器实际接在主板的视频接口上,跑显示的是 Intel 核显,那 NVIDIA 卡装完驱动也不会出现在nvidia-smi里——不是装错了,是它压根没参与工作。所以第一件事永远是确认硬件长什么样:
lspci | grep -Ei 'vga|3d|display'输出大概长这样,注意厂商和型号两段信息:
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 630 (rev 04) 01:00.0 VGA compatible controller: NVIDIA Corporation GP107 [GeForce GTX 1050 Ti] (rev a1)看到两块卡,说明这是典型的双显卡机器(笔记本或者带核显的台式)。这时候光有型号还不够,还要看内核当前挂的是哪个驱动模块:
lspci -k | grep -A 3 -i 'vga\|3d'Kernel driver in use:这一行会告诉你真相。如果 NVIDIA 那块写的是nouveau,说明现在跑的是开源驱动;如果写的是nvidia,说明驱动已经装上了;如果什么都没有,说明当前没有任何驱动接管它。这三种状态对应的下一步动作完全不同,不看这一行就动手,等于闭着眼睛换轮胎。
1.2 系统版本、内核版本和 Secure Boot 三个变量
确认完显卡,接着要确认三个直接影响安装方式的变量。第一条是系统版本:
lsb_release -aUbuntu 20.04、22.04、24.04 三个 LTS 各自仓库里能直接拿到的驱动版本差别很大。20.04 长期停留在 470/525 附近,22.04 常见的是 535/550,24.04 则可能直接给到 550 或更新。你在网上看到别人apt install nvidia-driver-535一把成功,换到自己机器上可能报Unable to locate package,原因大概率就是系统版本不同,仓库里根本没有这个包。
第二条是内核版本:
uname -r这条信息在后面排查"驱动装完重启就掉"的问题时是决定性的。NVIDIA 的闭源驱动是通过 DKMS 机制针对当前内核现场编译模块的,内核换了,模块就得重编。如果你用的是 HWE 内核(比如 22.04 上跑 6.5 或 6.8),而驱动包还没跟上,就会出现"装的时候一切正常,重启后nvidia-smi报错"的经典现象。
第三条,也是最容易被忽略的一条,是 Secure Boot 状态:
mokutil --sb-state如果是SecureBoot enabled,那么任何未经签名的内核模块在系统启动时都会被拒绝加载。Ubuntu 仓库里的 NVIDIA 驱动包是签过名的,但签名需要你在安装过程中手动确认导入一次,也就是那个突然弹出来的蓝色界面。很多人按了下一步一路回车过去,结果驱动模块被安全启动拦在门外,表现为同一句报错:nvidia-smi has failed because it couldn't communicate with the nvidia driver。这个坑我在后面第 4 章会专门展开怎么补救。
1.3 留退路:快照、TTY 和一条能救命的 grub 参数
装驱动之前给自己留条后路,这不是胆小,是专业习惯。如果你的系统在虚拟机里(比如 VMware 里装的 Ubuntu),动手之前直接打一个快照,出问题三十秒回滚,这是成本最低的保险。物理机没法快照,那至少要确认自己能在出问题时进到 TTY:
在图形界面正常的时候,按Ctrl + Alt + F3能切到文本终端登录,说明你手里有救命的绳子。反过来,如果按下去毫无反应,那你出问题时大概率只能靠 GRUB 菜单里加参数了。
GRUB 里的救命参数有两个,非常管用:
nomodeset:让内核不要在启动早期接管显示模式,用来绕过显卡驱动导致的启动黑屏。systemd.unit=multi-user.target:直接进多用户文本模式,跳过图形界面。装官方.run包时必须手动进这个模式,出问题时它也是最快的逃生通道。
具体操作是开机时按住Shift(部分机型是连续按Esc)呼出 GRUB 菜单,光标停在默认项上按e编辑,找到以linux开头的那一行,在末尾追加参数,然后Ctrl + X启动。这个动作值得你在正常状态下先演练一遍,真出事的时候手才不会抖。
2. 三条安装路线的取舍:apt 源、官方 PPA、官方 .run
Ubuntu 装 NVIDIA 驱动,本质上只有三条路:系统主仓库、第三方 PPA、NVIDIA 官网的.run安装包。这三条路没有绝对优劣,只有场景匹配。新手最常见的错误是看到网上某篇帖子推荐.run,就跟着上了,结果后面每次内核升级都要手动重装一次驱动,烦到想重做系统。
先给一张对照表,把三者的取舍说清楚,后面再逐个拆。
| 路线 | 版本新鲜度 | 上手难度 | 适合谁 | 后续维护成本 |
|---|---|---|---|---|
| 系统主仓库 | 保守,通常是经过验证的旧分支 | 最低,一条命令 | 只要求能用、不追新版本 | 低,跟随系统更新 |
| graphics-drivers PPA | 较新,分支可选多 | 中等,需要加源 | 桌面用户、需要较新驱动 | 低,仍然走 apt |
| 官方 .run 包 | 最新,官网发布即可用 | 高,需要关显示管理器 | 特殊型号、离线环境、特定版本需求 | 高,内核升级后要手动重来 |
2.1 apt 主仓库:最稳,代价是版本偏老
主仓库这条路的价值在于"和系统其他部分保持一致"。驱动包、libglx、nvidia-settings、DKMS 模块全部由发行方打包测试过,装完之后系统升级、内核升级都有现成的钩子帮你处理,遇到问题也更容易在网上搜到同版本的人。
操作上其实就一句话:
sudo apt update sudo apt install nvidia-driver-535但版本号不能瞎填。正确姿势是先让系统自己推荐:
ubuntu-drivers devices它会列出当前硬件可用的所有分支,并在推荐项后面标上recommended。直接用这个推荐值,绝大多数情况不会错。如果推荐的是 535,那就装 535;如果推荐的是 550,那你硬装 535 也不是不行,但要确认仓库里真的有这个包。
这条路唯一的缺点就是滞后。比如你手上是 RTX 50 系这种新架构的卡,主仓库里的驱动很可能还没跟上,装完直接起不来图形界面。这种情况就得上后面两条路了。
2.2 graphics-drivers PPA:桌面用户的主流选择
这个 PPA 是我在桌面环境里用得最多的一条路,原因很简单:它既保留了 apt 的便利性,又能拿到比主仓库新的分支。加源、更新、安装三步:
sudo add-apt-repository ppa:graphics-drivers/ppa sudo apt update ubuntu-drivers devices sudo apt install nvidia-driver-550先ubuntu-drivers devices再安装,顺序别搞反。加完源之后可选项会明显变多,这时候再挑那个带recommended标记的,或者挑你明确需要的分支。
提示:PPA 属于第三方源,加之前最好确认自己的系统版本在它的支持列表里。加完源之后如果
apt update报签名错误或者 404,说明这个 PPA 还没适配你的版本,直接sudo add-apt-repository --remove ppa:graphics-drivers/ppa撤掉,回到主仓库那条路,别硬扛。
另外有一个包名上的细节值得记住:nvidia-driver-XXX是元包,它依赖nvidia-dkms-XXX和一堆用户态组件。真正干活的 DKMS 模块在nvidia-dkms-XXX里。后面排查问题时,如果你看到dkms status里对应版本没有installed,那就是模块没编出来,装再多遍元包也没用。
2.3 官方 .run 包:什么时候才值得用它
.run包我能不用就不用,但确实有些场景绕不开:
- 显卡太新或者太老,仓库和 PPA 里都没有匹配的分支;
- 需要某个非常具体的版本号,比如复现某个已知问题的修复版本;
- 完全离线环境,连内网源都没有;
- 需要和特定版本的 CUDA 工具链严格配套。
用它的代价也很明确:它绕过包管理器,装完之后系统不知道你装了什么,内核一升级,模块不会自动重编,你得下次开机发现黑屏了才想起来这事。而且它默认要求关闭图形界面才能安装,操作步骤明显更多。
所以我的建议是:能用 apt 就用 apt,PPA 能解决的就别碰.run。真的要用,把它当成"临时方案"而不是"长期方案",并且一定记下包文件名,卸载的时候要用同一份安装包:
sudo ./NVIDIA-Linux-x86_64-550.90.07.run --uninstall3. 走 PPA 这条路:从选版本到装完重启的完整过程
这一段把最主流的那条路走一遍完整的流程。我按实际操作的顺序写,每一步都说明为什么这么做,你可以对照自己的机器执行。
3.1 用 ubuntu-drivers devices 读出版本推荐
先把工具装上(有些精简安装的镜像里没有这个包):
sudo apt update sudo apt install ubuntu-drivers-common然后看推荐:
ubuntu-drivers devices典型输出:
== /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 == modalias : pci:v000010DEd00001C82sv00001462sd00001111bc03sc00i00 vendor : NVIDIA Corporation model : GP107 [GeForce GTX 1050 Ti] driver : nvidia-driver-550 - third-party non-free recommended driver : nvidia-driver-535 - third-party non-free driver : xserver-xorg-video-nouveau - distro free builtin这里要读懂三件事。recommended是系统给你的默认建议,通常是最新且通过验证的分支;下面列出的其他分支是备选项,用于版本回退;最后那个nouveau是开源驱动,装闭源驱动的时候会被自动屏蔽掉,你不用手动去删。
注意:输出里出现的
available版本列表依赖于你已经加了哪些源。如果你刚加完 PPA 就想看新版本,必须先sudo apt update刷新索引,否则看到的还是老列表。
3.2 安装命令与 nouveau 的自动处理
确认版本之后就是安装:
sudo apt install nvidia-driver-550这一步会顺带做几件事,值得你知道它在干什么,出问题时才好定位:
- 把
nouveau加入黑名单,写进/etc/modprobe.d/下的配置文件; - 安装 DKMS 模块并针对当前内核现场编译;
- 重建 initramfs 镜像,让黑名单在下次开机生效;
- 如果开着 Secure Boot,把签名好的模块和 MOK 密钥准备就绪。
安装过程里如果 DKMS 编译失败,终端会明确报出来。这种情况八成是内核头文件缺失,补一句就行:
sudo apt install linux-headers-$(uname -r) sudo dpkg-reconfigure nvidia-dkms-550linux-headers这个包看起来和显卡驱动没关系,但它是 DKMS 编译的必要条件,很多精简系统默认不装,这是新手踩得最多的一类"隐形坑"。
3.3 重启前要做的检查,以及重启后看什么
装完之后先别急着重启,花三十秒确认模块确实编出来了:
dkms status正常情况下应该能看到类似nvidia/550.xx, 6.8.0-xx-generic, x86_64: installed的一行。如果显示built但没installed,或者干脆没有这一行,那就要先解决编译问题再重启,否则就是白跑一趟。
确认没问题后重启:
sudo reboot重启之后用三条命令验证:
nvidia-smi cat /proc/driver/nvidia/version lsmod | grep nvidia第一条最直观,输出一张表格,包含显卡型号、驱动版本、显存占用、当前温度和正在使用显卡的进程。第二条读的是内核里加载的驱动版本号,用来和nvidia-smi显示的版本互相印证。第三条应该能看到nvidia、nvidia_modeset、nvidia_uvm、nvidia_drm这几个模块,同时lsmod | grep nouveau应该是空的——如果 nouveau 还在被加载,说明黑名单没生效,通常需要sudo update-initramfs -u之后再来一次。
3.4 Secure Boot 开着的机器:MOK 蓝屏那一步别跳过
如果你在安装过程中看到过一个蓝底白字的界面,标题类似 "Perform MOK management",那说明系统在让你确认导入密钥。这个界面出现的时候,正确的操作顺序是:
- 选
Enroll MOK; - 选
Continue; - 选
Yes,然后输入你刚才设置的那个一次性密码; - 选
Reboot。
整个过程只发生一次,之后模块就能在 Secure Boot 下正常加载。我见过有人在这里直接按Esc退出了,结果驱动明明装好了,nvidia-smi就是报错,折腾了两个小时才发现是密钥没导入。
如果已经错过了,可以手动补:
sudo mokutil --import /var/lib/shim-signed/mok/MOK.der执行后会让你设置一个临时密码,重启时会在开机界面再弹一次 MOK 管理界面,按上面同样的流程走一遍即可。
4. 装完没生效怎么办:四类高频故障的排查链路
这一章是全文最值钱的部分。上面那些步骤按部就班走下来,大概七成的人能一次成功,剩下三成会撞上下面这几类问题。我把排查链路完整写出来,你照着走,别跳步。
4.1 nvidia-smi 报 couldn't communicate with the nvidia driver 的含义拆解
完整报错是这句:
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.很多人看到 "make sure that the latest NVIDIA driver is installed" 就去重装驱动,装了三遍还是一样。这句话只在说一件事:nvidia-smi这个用户态程序想和内核里的驱动模块通信,但没找到对方。至于为什么没找到,它有至少五种可能,必须一个个排除:
| 检查项 | 命令 | 期望结果 | 不对说明什么 |
|---|---|---|---|
| 模块是否加载 | lsmod | grep nvidia | 看到 nvidia 等模块 | 驱动没被加载 |
| 模块是否编译成功 | dkms status | installed | 针对当前内核没编出来 |
| 安全启动状态 | mokutil --sb-state | 密钥已导入或已关闭 | 模块被 Secure Boot 拦下 |
| 内核日志 | dmesg | grep -i nvidia | 无严重错误 | 有具体失败原因 |
| 显卡是否被接管 | lspci -k | grep -A 3 -i nvidia | Kernel driver in use: nvidia | 仍是 nouveau 或空 |
按这个表从上到下走一遍,绝大多数情况能在第三步或者第五步定位到问题。其中dmesg那一步信息量最大,如果看到module verification failed或者Key was rejected by service,基本就是安全启动的问题;如果看到NVRM: API mismatch,说明用户态库和内核模块版本对不上,这通常是装了两个不同分支的驱动残留导致的。
4.2 黑屏、卡登录界面、只剩光标:从 TTY 一路退回去
比nvidia-smi报错更麻烦的是根本进不去图形界面。表现有三种:全黑只有光标在闪、卡在登录界面反复重启、屏幕分辨率变成低分辨率的文本模式。
第一步永远是尝试切 TTY:Ctrl + Alt + F3。如果能进去并登录,恭喜,问题就降级成普通故障了。进去之后先看两个日志:
journalctl -b -1 -p err dmesg | grep -iE 'nvidia|nouveau|drm'-b -1是看上一次启动的错误日志,这在当前这次启动图形界面都没起来的情况下特别有用。
如果 TTY 也进不去,就得上 GRUB 参数。重启,在 GRUB 菜单按e,在linux那行末尾加上nomodeset,Ctrl + X启动。能进桌面之后,第一件事是把驱动卸干净再重来:
sudo apt purge '^nvidia-.*' sudo apt autoremove sudo update-initramfs -u sudo reboot提示:
apt purge '^nvidia-.*'这个通配符会连带卸掉nvidia-prime、nvidia-settings这些附属包,笔记本上还会影响显卡切换。这是正常的,重装驱动的时候它们会被一起带回来。但如果你的机器上装过nvidia-cuda-toolkit之类的开发包,它也会被误伤,卸载前先apt list --installed | grep nvidia看一眼列表,心里有数。
卸干净重启之后,系统会用回 nouveau,图形界面应该恢复正常。然后换一个分支重新装,比如原来装 550 不行,就换 535。新旧架构的卡和分支之间存在兼容性差异,换一版就好是很常见的事。
4.3 报错 glxserver_nvidia 加载失败和 Wayland 会话的关系
另一个高频报错是这一句:
nvidia: failed to load module "glxserver_nvidia" (module does not exist, 0)这句话的关键词是glxserver_nvidia,它是 Xorg 的 GLX 扩展模块,只跟 X11 会话有关。所以出现这个报错,第一件要确认的是当前会话类型:
echo $XDG_SESSION_TYPE如果输出是wayland,那这个报错本身可能只是噪音,图形界面其实是好的,NVIDIA 驱动会走nvidia-drm这条路。如果输出是x11而 GLX 模块缺失,那就是装驱动的时候用户态库没装全,通常是元包没装完整导致的,重装一次元包即可:
sudo apt install --reinstall nvidia-driver-550如果你确实需要切回 X11(老版本的显卡切换工具、某些远程桌面、部分录屏软件在 Wayland 下表现不佳),改一个配置就行:
sudo nano /etc/gdm3/custom.conf把#WaylandEnable=false前面的注释去掉,保存,重启。反过来,如果你在较新的驱动上想启用 Wayland,就别去动这一行,让它保持注释状态即可。近几年的驱动版本对 Wayland 的支持已经相当可用了,特别是带显式同步支持的新版本,日常办公基本感觉不到差别。
4.4 双显卡笔记本与老卡、新卡的版本对不上
版本选错是最隐蔽的一类问题,因为它不报错,只是"某些东西不好使"。下面这张表是我自己整理的经验对应关系,具体到你的型号,还是以官网驱动下载页的查询结果为准:
| 显卡架构 | 代表型号 | 大致可用分支 | 备注 |
|---|---|---|---|
| Kepler | GTX 600/700 系(不含 750) | 470 分支为最后支持 | 再新的分支直接不支持 |
| Maxwell | GTX 750/750 Ti、900 系 | 580 分支为最后支持 | 老机器上别盲目追新 |
| Pascal / Volta | GTX 10 系、部分专业卡 | 同上 | 可用较新分支 |
| Turing 及之后 | RTX 20 系及以后 | 持续更新 | 可以选-open结尾的开源内核模块版本 |
| Blackwell | RTX 50 系 | 需要较新的分支 | 必须用 open 内核模块版本 |
-open这个后缀值得单独说一句。NVIDIA 近几年提供了开源内核模块版本,包名形如nvidia-driver-550-open。Turing 及之后的架构可以选它,新架构的卡甚至必须用它。如果你在 24.04 上装 50 系的卡,装完起不来,先确认自己装的不是普通闭源版本。
双显卡笔记本还多一层:显卡切换。默认可能是按需切换模式,想强制用独显跑某个程序时:
prime-select query # 查看当前模式 sudo prime-select on-demand # 按需切换改完需要注销重新登录才生效。有些笔记本外接显示器只认独显直连的接口,切换模式之后外屏才有信号,这部分和驱动版本关系不大,属于硬件走线的限制。
5. 装稳之后:版本锁定、DKMS 维护与硬件加速验证
驱动跑起来只是第一步,后面还有几件事做完,才算真正"装稳"。
5.1 内核升级把驱动弄丢:DKMS 在做什么
DKMS 的全称是 Dynamic Kernel Module Support,它做的工作很简单:每次内核更新,自动把 NVIDIA 的模块针对新内核重新编译一遍。装驱动的时候你看到的那些编译过程,就是它在干活。
理解这一点之后,很多现象就解释得通了。为什么用 apt 装的驱动能扛住内核升级,而.run包装的扛不住?因为前者注册进了 DKMS,后者没有。为什么升级内核之后偶尔会掉驱动?因为 DKMS 编译失败但系统还是照常升级了内核,下次启动新内核时没有对应模块。
手动确认和修复的方法:
dkms status sudo dkms autoinstall第二条命令会扫描当前内核并尝试重新编译所有注册过的模块,是内核升级后驱动失效时最快的一招。如果还不行,重装一次 DKMS 包:
sudo apt install --reinstall nvidia-dkms-550注意:
dkms status里显示的版本号后面跟着内核版本,一台机器上有多个内核时会有多行。只要当前uname -r对应的那一行是installed,就没问题,其他行的built状态不用管。
5.2 nvidia-smi 里的 CUDA Version 不是你装了 CUDA
nvidia-smi右上角那个CUDA Version: 12.4是全网被误解最多的一行字。它不代表你装了 CUDA 12.4,它表示的是"当前这个驱动版本所能支持的最高 CUDA 运行时版本"。你机器上一个 CUDA 包都没装,这一行照样会显示。
真正判断有没有装 CUDA 工具链,要用这几条:
which nvcc nvcc --version ls /usr/local/ | grep cudanvcc找不到,就是没装 CUDA Toolkit,跟驱动没关系。很多人因为看到nvidia-smi里写了 CUDA 版本,就以为装驱动等于装 CUDA,然后在编译项目的时候对着nvcc: command not found一脸茫然。
反过来说,如果项目明确要求某个 CUDA 版本,那就要注意版本匹配:驱动支持的 CUDA 上限必须大于等于你装的 CUDA 版本。装了个老驱动配新 CUDA,运行时会直接报错,这时候要么升驱动,要么降 CUDA。
5.3 用 ffmpeg 的 NVENC 做一次真实负载验证
nvidia-smi显示正常,只能说明驱动加载成功,不能说明视频编码、计算这些功能真的可用。想确认驱动是"全面可用",最省事的验证方式是用 ffmpeg 跑一次硬件编码。
先看当前 ffmpeg 有没有编译进 NVENC 支持:
ffmpeg -hide_banner -hwaccels ffmpeg -hide_banner -encoders | grep nvenc-hwaccels会列出可用的硬件加速方式,-encoders里的h264_nvenc、hevc_nvenc是硬件编码器。两者都有的话,跑一条转码命令:
ffmpeg -i input.mp4 -c:v h264_nvenc -preset p4 -b:v 6M -c:a copy output.mp4跑的时候另开一个终端执行nvidia-smi,能看到一个编码进程挂在列表里,说明整条链路是通的:驱动、用户态库、编解码运行时全部正常。如果这里报Cannot load libnvidia-encode.so.1,说明用户态编码库没装全,补装元包一般能解决。
这一步我强烈建议做一次,因为它同时验证了驱动、CUDA 兼容层和视频加速三块能力,比单纯看nvidia-smi的输出有意义得多。
5.4 换版本、彻底卸载和离线安装的注意事项
最后说说三种边角但很常见的场景。
第一种是换版本。apt 路线的换版本很简单,卸旧装新即可,注意两者之间要重启一次,别连着一口气做完:
sudo apt purge '^nvidia-.*' sudo apt autoremove sudo reboot sudo apt install nvidia-driver-535 sudo reboot中间那次重启是为了让系统在没有 NVIDIA 模块的情况下干净地跑起来,把残留的内存映射清掉。
第二种是彻底卸载.run包装的驱动。必须用同一份安装包:
sudo ./NVIDIA-Linux-x86_64-550.90.07.run --uninstall安装包如果删了,就得重新下载一模一样版本的包才能卸载,这也是我不推荐.run的原因之一。
第三种是离线安装。如果目标机器不能联网,最省事的办法是在一台系统版本完全一致的联网机器上把 deb 包和依赖一起下下来:
sudo apt-get install --download-only --reinstall \ -o Dir::Cache::archives=./nvidia-pkgs \ nvidia-driver-535注意--reinstall配合--download-only才会把已经存在的依赖也一并抓下来,光用apt download只下一个包,依赖还得自己一个个凑,很容易在离线机器上卡住。把整个目录拷过去,sudo dpkg -i *.deb,最后用sudo apt -f install收尾补齐缺失项。
还有一个容易被忽略的场景:虚拟机里的 Ubuntu。VMware 或者 VirtualBox 里如果没做显卡直通,虚拟机看到的是一块虚拟显卡,lspci里根本不会出现 NVIDIA 的设备。这种情况下你装完驱动,nvidia-smi照样报那句熟悉的错误,因为物理卡压根没交给虚拟机。这不是操作问题,是架构问题,得先配置硬件直通,再谈装驱动。
装了这么多台机器,我自己最大的体会是:NVIDIA 驱动这块,慢就是快。花五分钟把显卡型号、系统版本、内核版本、Secure Boot 状态查清楚,比出问题之后花两小时救黑屏划算得多。另外养成一个习惯,每次装完驱动之后立刻执行一遍nvidia-smi、dkms status、lsmod | grep nvidia这三条命令,把正常的输出记下来。等你哪天真的遇到故障,手里有一份"正常状态长什么样"的参照,定位问题的速度会快上好几倍。