![Ubuntu 16.04(双启动)重启时 MOK 管理器实用程序不会显示](https://linux22.com/image/1062100/Ubuntu%2016.04%EF%BC%88%E5%8F%8C%E5%90%AF%E5%8A%A8%EF%BC%89%E9%87%8D%E5%90%AF%E6%97%B6%20MOK%20%E7%AE%A1%E7%90%86%E5%99%A8%E5%AE%9E%E7%94%A8%E7%A8%8B%E5%BA%8F%E4%B8%8D%E4%BC%9A%E6%98%BE%E7%A4%BA.png)
众所周知,在 ubuntu 16.04 上安装并启动 virtualbox 5.2.4 会遇到安全启动问题:
$ virtualbox
WARNING: The vboxdrv kernel module is not loaded. Either there is no module
available for the current kernel (4.10.0-42-generic) or it failed to
load. Please recompile the kernel module and install it by
sudo /sbin/vboxconfig
You will not be able to start VMs until this problem is fixed
因此,我尝试让 virtualbox 在启用安全启动的情况下工作,基本上我使用 mokutil 遵循了以下帖子:https://stegard.net/2016/10/virtualbox-secure-boot-ubuntu-fail/
但在我的 ASUS QT425Q 上,安全启动已启用,快速启动已禁用。导入公钥后,设置密码
# mokutil --import /root/module-signing/MOK.der
input password:
input password again:
重启后 MOK 管理器实用程序不会显示。我可以注册密钥,有人能帮我弄清楚发生了什么吗?谢谢!
答案1
最后在 mokutil 作者的帮助下,我通过重新调整启动顺序解决了这个问题液晶显示模块,按照这篇文章修复了这个问题: https://github.com/lcp/mokutil/issues/11#issuecomment-356159399
1.检查MOK文件是否存在。
$ sudo -i
# cd /sys/firmware/efi/efivars
# ls Mok*
MokAuth-605dab50-e046-4300-abb6-3dd810dd8b23
MokNew-605dab50-e046-4300-abb6-3dd810dd8b23
MokSB-605dab50-e046-4300-abb6-3dd810dd8b23
2.检查启动顺序。
# efibootmgr -v
BootCurrent: 0000
Timeout: 2 seconds
BootOrder: 0000,0001,0002
Boot0000* ubuntu HD(1,GPT,dabc2835-8f96-4429-ba98-3abadcfcaa57,0x800,0x82000)/File(\EFI\UBUNTU\GRUBX64.EFI)
Boot0001* Windows Boot Manager HD(1,GPT,dabc2835-8f96-4429-ba98-3abadcfcaa57,0x800,0x82000)/File(\EFI\MICROSOFT\BOOT\BOOTMGFW.EFI)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}...d................
Boot0002* ubuntu HD(1,GPT,dabc2835-8f96-4429-ba98-3abadcfcaa57,0x800,0x82000)/File(\EFI\UBUNTU\SHIMX64.EFI)..BO
3.重新订购靴子。
例如,在之前的打印输出中,我们需要交换引导0000*和靴子0002*。
# efibootmgr -o 0002,0001,0000
# efibootmgr -v
BootCurrent: 0002
Timeout: 2 seconds
BootOrder: 0002,0001,0000
Boot0000* ubuntu HD(1,GPT,dabc2835-8f96-4429-ba98-3abadcfcaa57,0x800,0x82000)/File(\EFI\UBUNTU\GRUBX64.EFI)
Boot0001* Windows Boot Manager HD(1,GPT,dabc2835-8f96-4429-ba98-3abadcfcaa57,0x800,0x82000)/File(\EFI\MICROSOFT\BOOT\BOOTMGFW.EFI)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}...d................
Boot0002* ubuntu HD(1,GPT,dabc2835-8f96-4429-ba98-3abadcfcaa57,0x800,0x82000)/File(\EFI\UBUNTU\SHIMX64.EFI)..BO
4.现在重新启动。并且 Mok 管理器应该在启动时出现。
希望这可以帮助其他人。
答案2
不需要调用 Mok 工具。只需使用 sha256 签名内核模块即可。
/usr/src/linux-headers-`uname -r`/scripts/sign-file sha256 <key> <x509> /lib/modules/`uname -r`/misc/vboxdrv.ko
/usr/src/linux-headers-`uname -r`/scripts/sign-file sha256 <key> <x509> /lib/modules/`uname -r`/misc/vboxnetadp.ko
/usr/src/linux-headers-`uname -r`/scripts/sign-file sha256 <key> <x509> /lib/modules/`uname -r`/misc/vboxnetflt.ko
/usr/src/linux-headers-`uname -r`/scripts/sign-file sha256 <key> <x509> /lib/modules/`uname -r`/misc/vboxpci.ko
然后将模块重新安装到内核。