如何完全卸载NVIDIA驱动程序?

正如预料的那样,Nvidia驱动程序减少了我的自定义设置。我无法登录到Unity 3D会话。我找不到任何内容来帮助我卸载驱动程序,而且我以前从未卸载过它们,所以不知道该怎么办。

关于统一性,执行"unity --reset"命令。 - Nick Bailuc
7个回答

适用于Ubuntu 12.04-22.04

命令可以在终端中执行。您可以使用 Ctrl + Alt+T 键组合打开终端。

如果您使用 remove --purge 命令卸载NVIDIA驱动程序,那么一切都会没问题。不需要添加任何黑名单,但有时可能需要强制加载nouveau模块。

首先完全卸载驱动程序。

搜索您已安装的来自nvidia的软件包。

dpkg -l | grep -i nvidia

除了软件包 nvidia-common 之外,所有其他软件包都应该被清除。
如果你想确保彻底清除与Nvidia相关的所有内容,可以执行以下命令。
sudo apt-get remove --purge '^nvidia-.*'

结尾处的.*表示(清除所有以nvidia-命名开始的内容)

但是

上述命令还会删除nvidia-common软件包,而nvidia-common软件包又依赖于ubuntu-desktop软件包。

因此,在执行上述命令后,您还需要提供ubuntu-desktop软件包的安装命令。

sudo apt-get install ubuntu-desktop

有时候,nouveau驱动程序会被nvidia驱动程序列入黑名单。使用清除命令可以将其从黑名单中移除。如果您希望确保在启动时加载nouveau驱动程序,可以通过将其添加到/etc/modules来强制加载它。
echo 'nouveau' | sudo tee -a /etc/modules

最后,搜索xorg.conf文件并将其删除。
sudo rm /etc/X11/xorg.conf

总结一下
sudo apt-get remove --purge '^nvidia-.*'
sudo apt-get install ubuntu-desktop
sudo rm /etc/X11/xorg.conf
echo 'nouveau' | sudo tee -a /etc/modules

尽管上述所有命令都不是必需的,这是我完全清除NVIDIA驱动并使用开源的nouveau驱动的方法。

5工作得很顺利。谢谢!这正是我所需要的。 - VedVals
18你的食谱刚好解决了我昨晚一直困扰我的类似问题,让我熬夜到凌晨3点才弄明白。真是感激不尽。 - Jorge M. Treviño
1是的,确实像魔法一样起作用了! - alvas
这个答案仍在帮助!解决了我的Lubuntu 13.10。谢谢! - travisw
我是从http://askubuntu.com/questions/416881/how-to-get-x11-running-again-after-crash 这里被推荐过来的。这个回答非常好。谢谢。 - octopusgrabbus
也适用于Ubuntu 14.04(从13.10升级后)!不错 - Marian Lux
适用于Ubuntu 12.04操作系统。 - ovrwngtvity
这个答案会移除NVIDIA的软件包,但同时也会导致Unity插件崩溃。请按照以下步骤重新启用Unity:http://askubuntu.com/questions/17381/unity-doesnt-load-no-launcher-no-dash-appears - penta
我使用的是Ubuntu 15.10(XPS 15 9550,配备960m显卡),在遇到“fatal error: no screens found”错误后尝试了这个方法。可惜没有成功,仍然出现相同的错误(卡在Starting Light Display Manager界面)。 - allidoiswin
修复了16.04启动时的驱动问题。 - Tahbaza
运作得很好。这真的是解决Debian和Ubuntu上无限登录屏幕问题的唯一方法。我想这就是@Jorge M. Treviño所指的。 - Ganesh Kathiresan
工作于17.04 - SE1986
2在我的Ubuntu 16.04 LTS上没有nvidia-common软件包,所以可以省略额外的步骤sudo apt-get install ubuntu-desktop。而且也没有/etc/X11/xorg.conf文件。运行locate xorg.conf会显示许多文件。 - WinEunuuchs2Unix
在Ubuntu 16.04 LTS上对我起了作用,而且不需要重新安装ubuntu-desktop。这个答案对我来说真是救命稻草。 - danShumway
你的命令中的 ^ 是什么作用? - Charlie Parker
我不明白为什么要执行 sudo apt-get install ubuntu-desktop 命令。 - Charlie Parker
为什么你在谈论“nouveau”?那与移除NVIDIA驱动程序无关... :/ - Charlie Parker
为什么不直接执行 sudo apt-get --purge remove nvidia* 呢? - Charlie Parker
sudo apt-get remove --purge '^nvidia-.*' - Jared
只是想提供我的意见。如果在不保留nvidia-common的情况下运行上述命令,将会导致此报告中所述的错误。 - Edeki Okoh

我刚刚使用了nvidia-uninstall。
sudo nvidia-uninstall

在我的情况下,我直接从NVIDIA网站获取了驱动程序。

非常感谢您救了我的系统!如果这个方法不行,我可能得重新安装整个系统。 - Fabian Röling
5NVIDIA卸载不再支持。在Disco Dingo中找不到命令。 - Infinite Loops
3@InfiniteLoops,这可能是由于您从软件源安装了驱动程序所致。在2019年,从Nvidia官网安装的驱动程序确实具有nvidia-uninstall命令。 - Victor Sergienko
哇!太完美了!你救了我的一晚! - aimodify
这也会展开/恢复由nvidia-xconfig修改的X配置。 - John Doe

我知道这是一个旧答案,但为了清晰和系统稳定性,我必须在这里添加一个答案。
首先,* 是 shell 的扩展运算符,它会获取所有内容并删除许多不需要删除的文件。最安全的方法是执行以下操作来删除 Nvidia 驱动程序:
$ dpkg -l | grep nvidia

搜索nvidia-xxx.xx版本或nvidia-driver-xxx.xx版本,然后输入。
$ sudo apt purge nvidia-xxx.xx

或者:

$ sudo apt purge nvidia-driver-xxx.xx

它将仅删除该软件包,还会标记其依赖项以供删除

删除依赖项很容易。

$ sudo apt autoremove
$ sudo apt autoclean

例如,如果您安装了390.xx软件包,则应该是这样的。
$ dpkg -l | grep -i nvidia
ii  libnvidia-cfg1-390:amd64                   390.48-0ubuntu3                     amd64        NVIDIA binary OpenGL/GLX configuration library
ii  libnvidia-common-390                       390.48-0ubuntu3                     all          Shared files used by the NVIDIA libraries
ii  libnvidia-compute-390:amd64                390.48-0ubuntu3                     amd64        NVIDIA libcompute package
ii  libnvidia-compute-390:i386                 390.48-0ubuntu3                     i386         NVIDIA libcompute package
ii  libnvidia-decode-390:amd64                 390.48-0ubuntu3                     amd64        NVIDIA Video Decoding runtime libraries
ii  libnvidia-decode-390:i386                  390.48-0ubuntu3                     i386         NVIDIA Video Decoding runtime libraries
ii  libnvidia-encode-390:amd64                 390.48-0ubuntu3                     amd64        NVENC Video Encoding runtime library
ii  libnvidia-encode-390:i386                  390.48-0ubuntu3                     i386         NVENC Video Encoding runtime library
ii  libnvidia-fbc1-390:amd64                   390.48-0ubuntu3                     amd64        NVIDIA OpenGL-based Framebuffer Capture runtime library
ii  libnvidia-fbc1-390:i386                    390.48-0ubuntu3                     i386         NVIDIA OpenGL-based Framebuffer Capture runtime library
ii  libnvidia-gl-390:amd64                     390.48-0ubuntu3                     amd64        NVIDIA OpenGL/GLX/EGL/GLES GLVND libraries and Vulkan ICD
ii  libnvidia-gl-390:i386                      390.48-0ubuntu3                     i386         NVIDIA OpenGL/GLX/EGL/GLES GLVND libraries and Vulkan ICD
ii  libnvidia-ifr1-390:amd64                   390.48-0ubuntu3                     amd64        NVIDIA OpenGL-based Inband Frame Readback runtime library
ii  libnvidia-ifr1-390:i386                    390.48-0ubuntu3                     i386         NVIDIA OpenGL-based Inband Frame Readback runtime library
ii  nvidia-compute-utils-390                   390.48-0ubuntu3                     amd64        NVIDIA compute utilities
ii  nvidia-dkms-390                            390.48-0ubuntu3                     amd64        NVIDIA DKMS package
ii  nvidia-driver-390                          390.48-0ubuntu3                     amd64        NVIDIA driver metapackage
ii  nvidia-kernel-common-390                   390.48-0ubuntu3                     amd64        Shared files used with the kernel module
ii  nvidia-kernel-source-390                   390.48-0ubuntu3                     amd64        NVIDIA kernel source package
ii  nvidia-prime                               0.8.8                               all          Tools to enable NVIDIA's Prime
ii  nvidia-settings                            390.42-0ubuntu1                     amd64        Tool for configuring the NVIDIA graphics driver
ii  nvidia-utils-390                           390.48-0ubuntu3                     amd64        NVIDIA driver support binaries
ii  xserver-xorg-video-nvidia-390              390.48-0ubuntu3                     amd64        NVIDIA binary Xorg driver

为了验证,您可以执行以下操作

$ apt-cache search nvidia | grep driver
nvidia-settings - Tool for configuring the NVIDIA graphics driver
ubuntu-drivers-common - Detect and install additional Ubuntu driver packages
vdpau-driver-all - Video Decode and Presentation API for Unix (driver metapackage)
xserver-xorg-video-nouveau - X.Org X server -- Nouveau display driver
nvidia-340-dev - NVIDIA binary Xorg driver development files
nvidia-384 - Transitional package for nvidia-driver-390
nvidia-384-dev - Transitional package for nvidia-driver-390
nvidia-driver-390 - NVIDIA driver metapackage
nvidia-utils-390 - NVIDIA driver support binaries
xserver-xorg-video-nvidia-390 - NVIDIA binary Xorg driver
bumblebee-nvidia - NVIDIA Optimus support using the proprietary NVIDIA driver
kubuntu-driver-manager - Driver Manager for Kubuntu
kubuntu-driver-manager-dbg - Driver Manager for Kubuntu -- debug symbols
nvidia-common - transitional package for ubuntu-drivers-common
nvidia-304 - NVIDIA legacy binary driver - version 304.137
nvidia-304-dev - NVIDIA binary Xorg driver development files
nvidia-340 - NVIDIA binary driver - version 340.107
nvidia-387-dev - Transitional package for nvidia-driver-390
nvidia-387 - Transitional package for nvidia-driver-390
nvidia-390-dev - Transitional package for nvidia-driver-390
nvidia-390 - Transitional package for nvidia-driver-390
nvidia-driver-396 - NVIDIA driver metapackage
nvidia-utils-396 - NVIDIA driver support binaries
xserver-xorg-video-nvidia-396 - NVIDIA binary Xorg driver

删除目标软件包后,执行以下操作。
$ sudo apt purge nvidia-390 (nvidia-driver-XXX) -y
$ sudo apt autoremove -y
$ sudo apt autoclean

确保在完成此操作后立即安装您计划使用的任何驱动程序,如果由于某种原因您没有实时修补程序,请重新启动系统,然后您就可以开始了。
这样,您就不必担心在清除驱动程序时删除系统依赖项。之后,您将拥有一个健全稳定的系统,并且无需担心重新安装可能依赖于您的系统的其他软件包。这是apt的工作,而不是您的工作。

1你可以更简单地执行:dpkg -l | grep nvidia-driver。然后清除驱动程序并执行自动删除和自动清理。这样做可以达到相同的效果,而无需查看更多的 dpkg 结果。 - Greg

如果您只能访问GRUB:
1. 重新启动您的计算机 2. 在GRUB引导菜单中选择“高级选项 for Ubuntu” 3. 选择“Ubuntu .....(恢复模式)” 4. 在恢复菜单中选择“修复损坏的软件包 dpkg”(这将停止nvidia进程以便我们可以卸载)。选择是。完成后按ENTER键(即使它发现问题) 5. 在恢复菜单中选择“root”(切换到root shell提示符) 6. 输入您的root密码 7. 输入:apt-get remove --purge nvidia-* 8. 完成后输入:reboot 9. 正常启动,现在应该进入Ubuntu登录界面

user383919和你的回答解决了问题,非常感谢。 - Hossein

我不想修改/etc/modules文件,只是想恢复到没有NVIDIA驱动程序的安装状态。所以我大部分按照被接受的建议去做,但最后一步我做了这个:
sudo rm /etc/modprobe.d/blacklist-nouveau.conf
sudo update-initramfs -k all -u

所以我的变体摘要:
sudo apt-get remove --purge nvidia-*
sudo apt-get install ubuntu-desktop
sudo rm /etc/X11/xorg.conf
sudo rm /etc/modprobe.d/blacklist-nouveau.conf
sudo update-initramfs -k all -u

要卸载nVIDIA驱动程序,请按(Ctrl+Alt+T)打开终端,然后输入以下命令:
sudo apt-get purge nvidia-current

1如果您只能访问GRUB,那该怎么办呢? - tumultous_rooster
@MattO'Brien 你可以尝试的一件事情是在GRUB中将init=/bin/bash追加到你的Linux启动行。这样会将你引导到命令行界面,你可以在那里进行其他操作。或者,你也可以尝试在映像行/根文件系统行中追加novideo或novga。 - fatal_error

我不确定这个答案是否正确或错误,但是这是我做的:
sudo apt-get remove nvidia*
sudo apt-get remove libnvidia*
sudo apt-get autoremove
# dpkg -l | grep nvidia
# rc  libnvidia-compute-510:amd64                510.73.05-0ubuntu0.22.04.1                                 # amd64        NVIDIA libcompute package
# ii  libnvidia-compute-510:i386                 510.73.05-0ubuntu0.22.04.1                                 # i386         NVIDIA libcompute package
# rc  nvidia-compute-utils-510                   510.73.05-0ubuntu0.22.04.1                                 # amd64        NVIDIA compute utilities
# rc  nvidia-dkms-510                            510.73.05-0ubuntu0.22.04.1                                 # amd64        NVIDIA DKMS package
# rc  nvidia-kernel-common-510                   510.73.05-0ubuntu0.22.04.1                                 # amd64        Shared files used with the kernel module
# rc  nvidia-prime                               0.8.17.1                                                   # all          Tools to enable NVIDIA's Prime
# rc  nvidia-settings                            510.47.03-0ubuntu1                                         # amd64        Tool for configuring the NVIDIA graphics driver
sudo apt-get remove libnvidia-compute-510:i386
# I don't know if next makes any sense at all
sudo apt-get remove *nvidia*