Ubuntu 16.04(双启动)重启时 MOK 管理器实用程序不会显示

Ubuntu 16.04(双启动)重启时 MOK 管理器实用程序不会显示

众所周知,在 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

然后将模块重新安装到内核。

相关内容