解决 Ubuntu 在启动时冻结的问题
我介绍的解决方案适用于配有 NVIDIA 显卡的系统,因为你所面临的系统冻结问题是由开源的 NVIDIA Nouveau 驱动所导致的。
事不宜迟,让我们马上来看看如何解决这个问题。
步骤 1:编辑 Grub
在启动系统的过程中,请你在如下图所示的 Grub 界面上停下。如果你没看到这个界面,在启动电脑时请按住 Shift
键。
在这个界面上,按 E
键进入编辑模式。
你应该看到一些如下图所示的代码。此刻你应关注于以 “linux” 开头的那一行。
步骤 2:在 Grub 中临时修改 Linux 内核参数
回忆一下,我们的问题出在 NVIDIA 显卡驱动上,是开源版 NVIDIA 驱动的不适配导致了我们的问题。所以此处我们能做的就是禁用这些驱动。
此刻,你有多种方式可以禁用这些驱动。我最喜欢的方式是通过 nomodeset
来禁用所有显卡的驱动。
请把下列文本添加到以 “linux” 开头的那一行的末尾。此处你应该可以正常输入。请确保你把这段文本加到了行末。
nomodeset
现在你屏幕上的显示应如下图所示:
按 Ctrl+X
或 F10
保存并退出。下次你就将以修改后的内核参数来启动。
对以上操作的解释
所以我们究竟做了些啥?那个
nomodeset
又是个什么玩意儿?让我来向你简单地解释一下。通常来说,显卡是在 X 或者是其他显示服务器开始执行后才被启用的,也就是在你登录系统并看到图形界面以后。
但近来,视频模式的设置被移进了内核。这么做的众多优点之一就是能你看到一个漂亮且高清的启动画面。
若你往内核中加入
nomodeset
参数,它就会指示内核在显示服务启动后才加载显卡驱动。换句话说,你在此时禁止视频驱动的加载,由此产生的冲突也会随之消失。你在登录进系统以后,还是能看到一切如旧,那是因为显卡驱动在随后的过程中被加载了。
步骤 3:更新你的系统并安装 NVIDIA 专有驱动
别因为现在可以登录系统了就过早地高兴起来。你之前所做的只是临时措施,在下次启动的时候,你的系统依旧会尝试加载 Nouveau 驱动而因此冻结。
这是否意味着你将不得不在 Grub 界面上不断地编辑内核?可喜可贺,答案是否定的。
你可以在 Ubuntu 上为 NVIDIA 显卡安装额外的驱动。在使用专有驱动后,Ubuntu 将不会在启动过程中冻结。
我假设这是你第一次登录到一个新安装的系统。这意味着在做其他事情之前你必须先更新 Ubuntu。通过 Ubuntu 的 Ctrl+Alt+T
系统快捷键打开一个终端,并输入以下命令:
sudo apt update && sudo apt upgrade -y
在上述命令执行完以后,你可以尝试安装额外的驱动。不过根据我的经验,在安装新驱动之前你需要先重启一下你的系统。在你重启时,你还是需要按我们之前做的那样修改内核参数。
当你的系统已经更新和重启完毕,按下 Windows
键打开一个菜单栏,并搜索“ 软件与更新 ”。
然后切换到“ 额外驱动 ”标签页,并等待数秒。然后你就能看到可供系统使用的专有驱动了。在这个列表上你应该可以找到 NVIDIA。
选择专有驱动并点击“ 应用更改 ”。
新驱动的安装会费点时间。若你的系统启用了 UEFI 安全启动,你将被要求设置一个密码。你可以将其设置为任何容易记住的密码。它的用处我将在步骤 4 中说明。
安装完成后,你会被要求重启系统以令之前的更改生效。
步骤 4:处理 MOK(仅针对启用了 UEFI 安全启动的设备)
如果你之前被要求设置安全启动密码,此刻你会看到一个蓝色界面,上面写着 “MOK management”。这是个复杂的概念,我试着长话短说。
对 MOK(设备所有者密码)的要求是因为安全启动的功能要求所有内核模块都必须被签名。Ubuntu 中所有随 ISO 镜像发行的内核模块都已经签了名。由于你安装了一个新模块(也就是那个额外的驱动),或者你对内核模块做了修改,你的安全系统可能视之为一个未经验证的外部修改,从而拒绝启动。
因此,你可以自己对系统模块进行签名(以告诉 UEFI 系统莫要大惊小怪,这些修改是你做的),或者你也可以简单粗暴地禁用安全启动。
现在你对安全启动和 MOK 有了一定了解,那咱们就来看看在遇到这个蓝色界面后该做些什么。
如果你选择“继续启动”,你的系统将有很大概率如往常一样启动,并且你啥事儿也不用做。不过在这种情况下,新驱动的有些功能有可能工作不正常。
这就是为什么,你应该“选择注册 MOK”。
它会在下一个页面让你点击“继续”,然后要你输入一串密码。请输入在上一步中,在安装额外驱动时设置的密码。
别担心!
如果你错过了这个关于 MOK 的蓝色界面,或不小心点了“继续启动”而不是“注册 MOK”,不必惊慌。你的主要目的是能够成功启动系统,而通过禁用 Nouveau 显卡驱动,你已经成功地实现了这一点。
最坏的情况也不过就是你的系统切换到 Intel 集成显卡而不再使用 NVIDIA 显卡。你可以之后的任何时间安装 NVIDIA 显卡驱动。你的首要任务是启动系统。
步骤 5:享受安装了专有 NVIDIA 驱动的 Linux 系统
当新驱动被安装好后,你需要再次重启系统。别担心!目前的情况应该已经好起来了,并且你不必再去修改内核参数,而是能够直接启动 Ubuntu 系统了。
我希望本教程帮助你解决了 Ubuntu 系统在启动中冻结的问题,并让你能够成功启动 Ubuntu 系统。
如果你有任何问题或建议,请在下方评论区给我留言。
via: https://itsfoss.com/fix-ubuntu-freezing/
作者:Abhishek Prakash 选题:lujun9972 译者:Raverstern 校对:wxy
本文转载来自 Linux 中国: https://github.com/Linux-CN/archive