Ubuntu 22.04下无法彻底卸载Nvidia及CUDA驱动,请求解决方案
问题描述
不管之前是怎么折腾成这样的,我现在就想把Nvidia和CUDA驱动彻底卸载干净然后重新安装,但试了各种办法都清不掉,实在头疼。
背景情况
我用的是Ubuntu 22.04系统,之前装的nvidia-535驱动和CUDA 11.8都正常能用,GPU也能在Stable Diffusion这类程序里正常工作。结果不知道为啥(可能是某次系统更新搞的),CUDA突然失效了——GPU完全没被利用,而且运行nvidia-smi还报错:
Failed to initialize NVML: Driver/library version mismatch
NVML library version: 535.161
所以我想干脆把所有和Nvidia、CUDA相关的东西全清掉,从头再来,毕竟之前是能正常运行的。
已尝试操作
我试过执行sudo apt remove --purge nvidia*,但执行后返回的内容是:
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Note, selecting '...'
彻底卸载&重新安装解决方案
别慌,我给你整理一套靠谱的彻底清理步骤,一步步来应该能搞定:
第一步:停止Nvidia相关服务
先把后台可能在运行的Nvidia服务停掉,避免卸载时出现冲突:
sudo systemctl stop nvidia-fallback.service sudo systemctl stop nvidia-persistenced.service sudo systemctl stop nvidia-powerd.service
第二步:彻底卸载相关软件包
用更精准的命令清理所有Nvidia和CUDA相关的包,比你之前用的nvidia*更全面:
# 卸载所有以nvidia-开头的包 sudo apt remove --purge '^nvidia-.*' # 卸载所有以cuda-开头的包 sudo apt remove --purge '^cuda-.*' # 卸载nvidia-settings配置工具 sudo apt remove --purge '^nvidia-settings$' # 自动清理残留的依赖包 sudo apt autoremove --purge # 清理缓存的安装包 sudo apt autoclean
第三步:手动删除残留文件
系统里可能还会剩下一些配置文件和缓存目录,手动删掉它们:
# 删除Xorg相关的Nvidia配置 sudo rm -rf /etc/X11/xorg.conf.d/*nvidia* # 删除CUDA的本地安装目录 sudo rm -rf /usr/local/cuda* # 删除Nvidia的系统缓存目录 sudo rm -rf /var/lib/nvidia* # 删除用户目录下的Nvidia配置文件 sudo rm -rf ~/.nvidia-settings-rc
第四步:更新启动项并重启
清理完后更新grub,确保系统启动时不会加载残留的驱动,然后重启:
sudo update-grub sudo reboot
第五步:验证卸载是否彻底
重启后执行以下命令,如果没有任何相关输出,就说明已经清干净了:
nvidia-smi # 正常应该提示"command not found" dpkg -l | grep nvidia # 无输出即为清理干净 dpkg -l | grep cuda # 无输出即为清理干净
重新安装的注意事项
等彻底卸载干净后,重新安装时记得这几点:
- 先安装对应版本的Nvidia驱动,比如你之前用的535版本,可以用命令:
sudo apt install nvidia-driver-535,或者用ubuntu-drivers autoinstall自动安装系统推荐的稳定版本 - 安装CUDA 11.8的时候,一定要注意不要勾选安装CUDA自带的驱动,不然容易出现版本冲突,导致之前的问题重演
- 安装完成后务必重启系统,然后用
nvidia-smi和nvcc -V验证驱动和CUDA是否正常工作
备注:内容来源于stack exchange,提问作者ciru_4011

