笔记本电脑|解决 Ubuntu 在启动时冻结的问题


笔记本电脑|解决 Ubuntu 在启动时冻结的问题文章插图
本文将向你一步步展示如何通过安装 NVIDIA 专有驱动来处理 Ubuntu 在启动过程中冻结的问题 。 本教程仅在一个新安装的 Ubuntu 系统上操作验证过 , 不过在其它情况下也理应可用 。
-- Abhishek Prakash
不久前我买了台 宏碁掠夺者 笔记本电脑来测试各种 Linux 发行版 。 这台庞大且笨重的机器与我喜欢的 , 类似 戴尔 XPS 那般小巧轻便的笔记本电脑大相径庭 。
我即便不打游戏也选择这台电竞笔记本电脑的原因 , 就是为了 NVIDIA 的显卡。 宏碁掠夺者 Helios 300 上搭载了一块 NVIDIA Geforce GTX 1050Ti 显卡 。
NVIDIA 那糟糕的 Linux 兼容性为人们所熟知 。 过去很多 It’s FOSS 的读者都向我求助过关于 NVIDIA 笔记本电脑的问题 , 而我当时无能为力 , 因为我手头上没有使用 NVIDIA 显卡的系统 。
所以当我决定搞一台专门的设备来测试 Linux 发行版时 , 我选择了带有 NVIDIA 显卡的笔记本电脑 。
这台笔记本原装的 Windows 10 系统安装在 120 GB 的固态硬盘上 , 并另外配有 1 TB 的机械硬盘来存储数据 。 在此之上我配置好了 Windows 10 和 Ubuntu 18.04 双系统。 整个的安装过程舒适、方便、快捷 。
随后我启动了 Ubuntu。 那熟悉的紫色界面展现了出来 , 然后我就发现它卡在那儿了 。 鼠标一动不动 , 我也输入不了任何东西 , 然后除了长按电源键强制关机以外我啥事儿都做不了 。
然后再次尝试启动 , 结果一模一样 。 整个系统就一直卡在那个紫色界面 , 随后的登录界面也出不来 。
这听起来很耳熟吧?下面就让我来告诉你如何解决这个 Ubuntu 在启动过程中冻结的问题 。
如果你用的不是 Ubuntu
请注意 , 尽管是在 Ubuntu 18.04 上操作的 , 本教程应该也能用于其他基于 Ubuntu 的发行版 , 例如 Linux Mint、elementary OS 等等 。 关于这点我已经在 Zorin OS 上确认过 。
解决 Ubuntu 启动中由 NVIDIA 驱动引起的冻结问题我介绍的解决方案适用于配有 NVIDIA 显卡的系统 , 因为你所面临的系统冻结问题是由开源的 NVIDIA Nouveau 驱动 所导致的 。
事不宜迟 , 让我们马上来看看如何解决这个问题 。
步骤 1:编辑 Grub在启动系统的过程中 , 请你在如下图所示的 Grub 界面上停下 。 如果你没看到这个界面 , 在启动电脑时请按住 Shift 键 。
在这个界面上 , 按 E 键进入编辑模式 。
笔记本电脑|解决 Ubuntu 在启动时冻结的问题文章插图
按“E”按键
你应该看到一些如下图所示的代码 。 此刻你应关注于以 “linux” 开头的那一行 。
笔记本电脑|解决 Ubuntu 在启动时冻结的问题文章插图
前往 Linux 开头的那一行
步骤 2:在 Grub 中临时修改 Linux 内核参数回忆一下 , 我们的问题出在 NVIDIA 显卡驱动上 , 是开源版 NVIDIA 驱动的不适配导致了我们的问题 。 所以此处我们能做的就是禁用这些驱动 。
此刻 , 你有多种方式可以禁用这些驱动 。 我最喜欢的方式是通过 nomodeset 来禁用所有显卡的驱动 。
请把下列文本添加到以 “linux” 开头的那一行的末尾 。 此处你应该可以正常输入 。 请确保你把这段文本加到了行末 。
nomodeset
现在你屏幕上的显示应如下图所示:
笔记本电脑|解决 Ubuntu 在启动时冻结的问题文章插图
通过向内核添加 nomodeset 来禁用显卡驱动
按 Ctrl+X 或 F10 保存并退出 。 下次你就将以修改后的内核参数来启动 。
对以上操作的解释
所以我们究竟做了些啥?那个 nomodeset 又是个什么玩意儿?让我来向你简单地解释一下 。
通常来说 , 显卡是在 X 或者是其他显示服务器开始执行后才被启用的 , 也就是在你登录系统并看到图形界面以后 。
但近来 , 视频模式的设置被移进了内核 。 这么做的众多优点之一就是能你看到一个漂亮且高清的启动画面 。
若你往内核中加入 nomodeset 参数 , 它就会指示内核在显示服务启动后才加载显卡驱动 。
换句话说 , 你在此时禁止视频驱动的加载 , 由此产生的冲突也会随之消失 。 你在登录进系统以后 , 还是能看到一切如旧 , 那是因为显卡驱动在随后的过程中被加载了 。
步骤 3:更新你的系统并安装 NVIDIA 专有驱动别因为现在可以登录系统了就过早地高兴起来 。 你之前所做的只是临时措施 , 在下次启动的时候 , 你的系统依旧会尝试加载 Nouveau 驱动而因此冻结 。
这是否意味着你将不得不在 Grub 界面上不断地编辑内核?可喜可贺 , 答案是否定的 。