当前位置: 首页 > 科技观察

修复Ubuntu在引导时冻结

时间:2023-03-16 15:59:43 科技观察

本文将逐步向您展示如何通过安装NVIDIA专有驱动程序来修复Ubuntu在引导期间冻结。本教程仅经验证可在新安装的Ubuntu系统上运行,但它在其他情况下也应适用。不久前我买了一台AcerPredator笔记本电脑来测试各种Linux发行版。这是一台又大又重的机器,与我最喜欢的小型轻便笔记本电脑(如戴尔XPS)相去甚远。我之所以不玩游戏也选择这款电竞本,是因为NVIDIA的显卡。AcerPredatorHelios300由NVIDIAGeforceGTX1050Ti显卡提供动力。NVIDIA的Linux兼容性差是众所周知的。许多It'sFOSS读者过去曾问过我有关NVIDIA笔记本电脑的问题,但我对此无能为力,因为我手头没有带NVIDIA显卡的系统。因此,当我决定购买一台用于测试Linux发行版的专用设备时,我选择了一台带有NVIDIA显卡的笔记本电脑。笔记本原装Windows10系统安装在一块120GB的固态硬盘上,另外还额外配备了一块1TB的机械硬盘来存储数据。在此之上,我配置了Windows10和Ubuntu18.04双系统。整个安装过程舒适、方便、快捷。然后我启动了Ubuntu。熟悉的紫色界面出现了,然后我意识到它卡在那里了。鼠标不动,我什么也打不出来,然后除了长按电源键强行关机什么也做不了。然后再次尝试启动,结果相同。整个系统一直卡在那个紫色的界面,后面的登录界面也出不来了。听起来有点熟?让我告诉你如何解决这个Ubuntu在引导过程中冻结的问题。如果您不使用Ubuntu,请注意虽然它是在Ubuntu18.04上完成的,但本教程也适用于其他基于Ubuntu的发行版,例如LinuxMint、elementaryOS等。我已经在ZorinOS上确认了这一点。解决NVIDIA驱动程序导致的Ubuntu引导冻结我提出的解决方案适用于带有NVIDIA显卡的系统,因为您面临的系统冻结是由开源NVIDIANouveau驱动程序引起的。事不宜迟,让我们看看如何立即解决此问题。第一步:编辑Grub在启动系统的过程中,请停在如下图所示的Grub界面上。如果您没有看到此屏幕,请在启动计算机时按住Shift键。在此屏幕中,按E键进入编辑模式。按“E”按钮,您应该会看到如下图所示的一些代码。此时您应该关注以“linux”开头的行。进入Linux开头的那行第2步:临时修改Grub中的Linux内核参数回想一下,我们的问题出在NVIDIA显卡驱动上,正是开源NVIDIA驱动的不兼容导致了我们的问题。所以我们在这里所能做的就是禁用这些驱动程序。目前,您有多种方法可以禁用这些驱动程序。我最喜欢的方法是通过nomodeset禁用所有视频卡驱动程序。请将以下文本添加到以“linux”开头的行的末尾。你应该可以在这里正常打字。确保将此文本添加到行尾。nomodeset您的屏幕现在应该如下所示:通过将nomodeset添加到内核来禁用图形驱动程序按Ctrl+X或F10保存并退出。下次您将使用修改后的内核参数启动。以上操作的解释那么我们到底做了什么?nomodeset到底是什么东西?让我简单地向你解释一下。通常,在X或其他显示服务器启动后,即您登录系统并看到图形界面后,显卡才被启用。但是最近,视频模式的设置被移到了内核中。这样做的众多优势之一是您可以获得漂亮的高清启动画面。如果在内核中加入nomodeset参数,它会指示内核在显示服务启动后加载显卡驱动。也就是说,此时你禁止了视频驱动的加载,由此产生的冲突也就消失了。登录系统后,还是能看到之前的一切,因为显卡驱动是在后面的过程中加载的。第3步:更新您的系统并安装NVIDIA专有驱动程序不要因为您现在可以登录系统就太兴奋了。你所做的只是一个临时措施,下次启动时,你的系统仍会尝试加载Nouveau驱动程序并因此冻结。这是否意味着您将不得不不断地在Grub界面上编辑内核?值得庆幸的是,答案是否定的。您可以在Ubuntu上为NVIDIA显卡安装额外的驱动程序。使用专有驱动程序后,Ubuntu将不再在启动过程中死机。我假设这是您第一次登录新安装的系统。这意味着您必须在执行任何其他操作之前更新Ubuntu。通过Ubuntu的Ctrl+Alt+T系统快捷键打开终端,输入以下命令:sudoaptupdate&&sudoaptupgrade-y上述命令执行后,可以尝试安装额外的驱动。但是根据我的经验,在安装新驱动之前需要重启系统。当你重启的时候,你仍然需要像我们之前那样修改内核参数。系统更新并重新启动后,按Windows键调出菜单栏并搜索“软件和更新”。单击“软件和更新”,然后切换到“其他驱动程序”选项卡并等待几秒钟。然后您可以看到系统可用的专有驱动程序。您应该在此列表中找到NVIDIA。选择专有驱动程序并单击“应用更改”。NVIDIA驱动安装中安装新驱动需要一些时间。如果您的系统启用了UEFI安全启动,系统将要求您设置密码。您可以将其设置为任何易于记忆的密码。它的用处我会在第4步解释。你可能需要设置一个安全启动密码安装完成后,你会被要求重启系统以使之前的更改生效。安装新驱动程序后重新启动系统步骤4:处理MOK(仅适用于启用了UEFI安全启动的设备)如果之前要求您设置安全启动密码,您现在将看到一个蓝色屏幕,上面写着“MOK管理”。这是一个复杂的概念,我会尽量保持简短。MOK(设备所有者密码)是必需的,因为安全启动功能需要对所有内核模块进行签名。Ubuntu中随ISO映像分发的所有内核模块都已签名。因为您安装了一个新模块(即那个额外的驱动程序),或者您对内核模块进行了更改,您的安全系统可能会将此视为未经验证的外部更改并拒绝启动。所以,你可以自己签署系统模块(告诉UEFI系统不要大惊小怪,你做了这些修改),或者你可以简单地禁用安全启动。既然对secureboot和MOK有了一定的了解,那我们就来看看遇到这个蓝色界面后应该怎么办。如果您选择“继续启动”,您的系统很可能会像往常一样启动,而您无需执行任何操作。但是,在这种情况下,新驱动程序的某些功能可能无法正常工作。这就是为什么,你应该“选择注册MOK”。它会要求你在下一页点击“继续”,然后要求你输入一串密码。请输入上一步安装附加驱动时设置的密码。不用担心!如果您错过了这个关于MOK的蓝屏,或者不小心点击了“继续开始”而不是“注册MOK”,请不要惊慌。您的主要目标是能够成功启动系统,并且通过禁用Nouveau图形驱动程序,您已经成功地实现了这一点。最坏的情况是您的系统切换到Intel集成显卡而不是NVIDIA显卡。之后您可以随时安装NVIDIA图形驱动程序。您的首要任务是启动系统。第5步:享受安装了专有NVIDIA驱动程序的Linux系统。安装新驱动程序后,您将需要再次重新启动系统。不用担心!现在的情况应该会好一些,不用修改内核参数,直接启动Ubuntu系统即可。希望本教程能帮助您解决Ubuntu系统开机卡顿的问题,使您能够成功启动Ubuntu系统。如果您有任何问题或建议,请在下方评论区给我留言。