Ubuntu 20.04 设置 MokListRT 失败:参数无效

我有一台MacBook Pro,并且只在上面使用Ubuntu。 我刚从18.04升级到20.04。
现在当我启动电脑时,它会显示:
Failed to Set MokListRT: Invalid Parameter
Could not create mokListRT: Invalid Parameter
Importing MOK states has failed: import_mok_state() failed: Invalid Parameter
Continuing boot since secure mode is disabled.

有人知道我应该怎么准确地修复这个问题吗?能给我一个逐步的过程吗?我不想在尝试修复时搞砸任何东西。

供参考,这里是一个错误报告 - Alexey
可能是个重复问题,已有一个被接受的答案:如何修复shim更新后的启动问题? - Alexey
2我在 https://askubuntu.com/a/1299955/389062 回答了这个问题。你的问题基本上是那里提出的一个重复,只是在你的情况下,你看到了 MOK List 错误消息,而另一个问题只是提到了一个闪烁的 _ 而不是 MOK List 错误消息。但问题的根源基本相同:shimx64.efigrubx64.efi 的签名 / "MOKlisted" 安全启动 版本)被用于一个关闭了 EFI 安全启动模式并且因此需要 grubx64.efi 的计算机。 - Yuri Sucupira
我在我的13英寸2009年中期的苹果Macbook Pro上遇到了类似的问题,并通过我在这里解释的方法解决了它。 - Yuri Sucupira
3个回答

你需要将 shimx64.efi 替换为 grubx64.efi,步骤如下:
sudo su -
cd /boot/efi/EFI/ubuntu
cp grubx64.efi shimx64.efi
reboot

1给其他人一个参考点。这对于2010年的iMac(coreDuo)上的相同错误信息无效。错误可能更微妙,或者旧机器可能需要更旧版本的grub。 - Jonathan Gutow
1这也适用于2015年款的MacBook Air。您真棒,先生!谢谢您。 - GGEv
1在KDE neon中,上述的目录是存在的,但并不包含文件。它们位于/boot/efi/EFI/neon。之后我移除了shimshim-signed这两个软件包。 - mak
11这个修复方法有效,但只能在下一次系统更新重新安装shimx64.efi之前使用。对我来说,“永久”解决方案是删除“shim”和“shim-signed”(sudo apt remove --purge shim shim-signed),然后重新安装grub(sudo update-grub2)。 - Thomas Perl
2如果我无法启动带有shell的操作系统,我该怎么办?我只是卡在grub shell里。 - lennartVH01
1@lennartVH01 我也一样。我卡在Ubuntu的logo界面上了。 - Linux Geek
这在ThinkPad上适用于Ubuntu 21.04。 - lordvcs
1@ThomasPerl:谢谢你的帮助,我尝试了你的命令,似乎都正常运行,但是没有任何变化。(我仍然可以像以前一样启动,但是仍然会收到“失败…”的消息。)为了澄清,这是在其他指示之后/之外运行的,还是替代其他指示运行的?(顺便说一下:Ubuntu Server 20.04.2,Mac Mini 2009年末版。) - Pete Forsyth
如之前所问,如果操作系统无法启动,如何进入shell。我看到Ubuntu紫色屏幕和鼠标指针,什么也做不了。 - jangorecki

这是由Bug #1867092引起的,建议的解决方法(请参见评论#23)是:
apt-get purge shim
grub-install /dev/sda1 #replace sda1 with the correct grub partition for you

这个解决方案对我有效。

请注意,对于这个问题的最佳答案(即将grubx64.efi复制到shimx64.efi),根据该错误页面,每次进行shim更新时都会撤销。


这对我来说非常有效 - Mr.Young
我尝试了sudo update-grub2 /dev/sda1(如在另一个回答的评论中提到),但没有起作用。不过,根据这个回答指定的sudo grub-install /dev/sda1却解决了问题。 - zrajm

适用于我的2010年iMac的解决方案。安装rEFInd并确保从指定grubx64.efi的选项启动。

1这个方法很有效,而且就像执行sudo apt install refind一样简单。 - hackerb9
1虽然通过安装reFind消息MokListRT:无效参数消失了,但我仍然不确定这是否是最佳解决方案,因为我的系统不是多操作系统,reFind除了隐藏消息外毫无用处。 - JOduMonT