Pav*_*kov 13 dual-boot linux-mint secure-boot
我有一台双启动笔记本电脑 Windows 10 / Linux mint 20。启用了安全启动以及硬盘加密,但后者对于这个问题可能并不重要。
顺便说一句,我的问题与此非常相似:https://forums.linuxmint.com/viewtopic.php ?t=274365
我安装了 Windows,然后安装了 Linux Mint。Mint 安装后,计算机重新启动,并要求我“继续启动”或“注册 MOK”。我不知道该怎么办,就用另一台笔记本电脑上网搜索。在搜索时,对话框显然超时了,计算机只是继续启动。笔记本电脑是已更新至最新 BIOS 的 Dell Vostro 5581。
同一天晚些时候,我从 Oracle 网站(而不是从存储库)安装了 Virtualbox。在控制台上以文本模式安装期间,它要求我确认是否要在下次重新启动时注册 MOK 并输入临时密码。我这样做了,重新启动并注册了 MOK。(顺便说一句,我不知道自己在做什么)
所以,这是我的问题。所有这些安全启动的事情对我来说都是非常新鲜的。
当您第一次安装 Mint 并重新启动时,出现的初始“继续启动”或“注册 MOK”对话框是什么?这甚至在操作系统启动之前就出现了。我认为这是BIOS的问题。如果您只是继续启动或注册密钥,似乎并不重要。我安装了 2 次 Linux,在第 1 次中我选择注册密钥,但在第 2 次中忽略了它。似乎没有什么区别。
如果我注册了 MOK 密钥,Virtualbox 是否会在不要求我执行任何操作的情况下进行安装?VirtualBox 注册自己的密钥时到底做了什么?
在安装并配置系统后,我现在不想再次重新安装,如何进行“注册 MOK”?论坛上的另一个问题(见上面的链接)有一个答案:
我有同样的问题。为了设置新的 MOK 密码,我使用了以下命令
sudo update-secureboot-policy --enroll-key
但是,在我的安装中没有这样的命令update-secureboot-policy。
现在我不敢安装专有的 NVidia 驱动程序,因为我没有注册 MOK 并且担心它不起作用。
一般来说,第一次重新启动后,“注册 MOK”会做什么?我真的不明白。这是否意味着它将一些 Ubuntu 密钥放入 BIOS 中?这是否意味着如果我这样做,那么我将来安装的所有专有内核模块都将顺利进行,而无需注册自己的 MOK?
这是shimx64.efi当它检测到操作系统可访问的 UEFI NVRAM 变量中有一个新的 MOK 等待安装时生成的。
最有可能的是,是的。
它可能只会update-secureboot-policy --enroll-key在可用时触发。
sudo apt install shim-signed
sudo update-secureboot-policy --enroll-key
Run Code Online (Sandbox Code Playgroud)
从技术上讲这不是问题,但不用担心。如果您通过 Ubuntu/Mint 的第 3 方驱动程序管理工具安装 NVidia 驱动程序,它可能只会为您执行上面 3.) 中列出的步骤(如果您尚未执行此操作)。
如果您使用直接从NVidia下载的安装包,请先安装dkms第三方模块的管理工具,然后运行NVidia驱动安装程序:
sudo apt install dkms
sudo ./NVIDIA-Linux-x86_64-<version number>.run --dkms \
--module-signing-secret-key=/var/lib/shim-signed/mok/MOK.priv \
--module-signing-public-key=/var/lib/shim-signed/mok/MOK.der
Run Code Online (Sandbox Code Playgroud)
dkms自动重建第 3 方内核模块(例如 NVidia 驱动程序),因此每当您收到内核安全更新时都无需手动执行此操作。
如果您在运行后没有在下次重新启动时立即执行“注册 MOK” update-secureboot-policy --enroll-key,则注册过程将被暂停,等待您通过在后续启动时选择“注册 MOK”来完成它,或者使用以下命令取消它sudo mokutil --revoke-import在 Linux 内。
完成 MOK 注册程序后,您应该不会再看到该提示,除非您丢失旧的 MOK 并注册新的 MOK。
不,注册过程会创建一个对您的系统唯一的密钥,并将其放置在/var/lib/shim-signed/mok/只能由 root 访问的位置,以便内核模块安装过程可以使用它,并将密钥的公共部分的副本注册到 UEFI NVRAM 变量,这样就可以在启动时使用shimx64.efi。
就是这个想法,是的。不幸的是,并非所有第三方内核模块源代码包都尚未更新以无缝检测 MOK 的存在并在必要时自动使用它。