![禁用安全启动无效 - 16.04](https://linux22.com/image/1148289/%E7%A6%81%E7%94%A8%E5%AE%89%E5%85%A8%E5%90%AF%E5%8A%A8%E6%97%A0%E6%95%88%20-%2016.04.png)
我正在尝试在我的 ubuntu 16.04 安装(asus k401、nvidia geforce 940M)上安装和使用 nvidia 驱动程序。
当我安装它们时,它们提示我禁用安全启动:我输入密码,重新启动,获取密码提示并选择禁用安全启动,它会重新启动并在左上角显示“以不安全模式启动”。
一切看起来都很好,只是驱动程序似乎不工作,并mokutil --sb-state
告诉我安全启动仍然启用。
当我尝试重新安装 nvidia 驱动程序时,系统再次提示我,说安全启动已启用,我需要禁用它。
我已经激活了全盘加密,如果这可能发挥作用......
我该如何进一步调试该问题?
答案1
至少有三种可能的解决方案:
- 不要使用专有的 Nvidia 驱动程序-- 专有驱动程序可能会或可能不会为您提供任何实际好处。因此,您可能希望至少尝试不使用它们。(就我个人而言,我尽可能避免使用专有视频驱动程序。根据我的经验,它们造成的问题比解决的问题还多。另一方面,我不喜欢游戏,所以它们对我的益处相当有限。)
- 以“硬”方式禁用安全启动-- 您可以使用计算机的固件设置实用程序(而不是 Ubuntu 提供的工具)禁用安全启动。这种方法的问题在于,用于执行此操作的菜单和方法没有标准化。好消息是,尽管缺乏标准化,但在实践中,实现之间还是有一些很大的相似之处。参见我的这个页面举几个例子。
- 自行对模块进行签名-- 您可以使用
sign_file
内核源代码附带的工具对内核模块进行签名。我没有对 Nvidia 模块进行签名的确切分步过程,但它应该类似于对 VirtualBox 模块进行签名所需的过程,该过程已介绍在这个问题及其答案中。请注意,该问题引用了其他几个问题,因此您可能需要从几个问题和答案中挑选出一些可能有用的方法。您还必须对驱动程序文件有足够的了解,才能将 VirtualBox 流程应用于 Nvidia 驱动程序。您需要创建自己的安全启动密钥对,并将公钥列为 MOK(或作为常规安全启动密钥,如果您全力以赴并完全控制系统上的安全启动)。
这些选项大致按难度递增的顺序列出,但前两个选项可以轻松翻转,这取决于系统的当前状态以及如果已安装 Nvidia 驱动程序则删除它们的难度。
顺便说一句,我怀疑磁盘加密是否会使任何事情变得复杂。