我之前尝试在 XPS 15 9570 上安装 Ubuntu 18.10。一切都运行正常,直到我进入安装的分区选择部分。就在那时,安装程序崩溃了,我不得不关闭我的机器。我认为这是因为我将 SATA 配置设置为 RAID ON 而不是 AHCI,现在这个问题已经解决了。
现在,当我尝试从可启动 USB 运行安装程序时,出现以下错误
Failed to open \EFI\BOOT\mmx64.efi - Not Found
Failed to load image \EFI\BOOT\mmx64.efi: Not Found
Failed to start MokManager: Not Fond
Something has gone seriously wrong: import_mok_state() failed
希望有人知道发生了什么
答案1
我启动了 Ubuntu Live USB 棒,进入硬盘驱动器的 /boot/efi
文件夹并将文件重命名grubx64.efi
为mmx64.efi
重新启动机器它就可以工作了。
答案2
问题是可启动 USB 中mmx64.efi
不存在该文件,因此解决方法是复制grubx64.efi
名称下的文件mmx64.efi
(因此 USB 驱动器文件夹/EFI/BOOT
现在包含三个文件:BOOTx64.EFI
和)。grubx64.efi
然后mmx64.efi
,重新启动,安装应该可以正常工作。
我使用 Rufus 从 Windows 10 创建了 USB 可启动驱动器。
如果 Rufus 中对 USB 驱动器使用了默认设置,则可以在同一台或另一台计算机上使用任何文件编辑器进行复制。
答案3
这里的答案都建议修改实时 USB 上的文件系统,据我所知,如果不重建整个 ISO 映像,这实际上是不可能的。
我认为我的问题和原帖者的问题发生的原因是我们在安装程序中选中了安装第三方软件的复选框,随后又根据需要选中了通过 MOK 管理安全启动的复选框,但随后无法完成安装,并且计算机处于一种状态:下次启动时将启动 MOK 管理器,其路径存在于 Ubuntu 系统中,但不存在于 Live USB 上。
为了解决这个问题,我做了一个奇怪的工作。我按照提供的说明通过 Wubi 安装 Ubuntu这里,然后,在重启电脑后,Wubi 成功启动了 MOK 管理器,虽然我没有执行任何 MOK 管理,但这似乎阻止了电脑在启动时期望找到 MOK 管理器,当我尝试从 USB 启动时,它突然工作了。之后我删除了 Wubi 安装和所有 Wubi 文件,并使用 Live USB 以正常方式安装了 Ubuntu。
我的回答中的假设可能是错误的,但在尝试了几个 USB 和许多不同的 Ubuntu ISO 映像之后,这个方法最终起了作用。
注意:我在此回答中描述的内容要求您安装 Windows,但您可能不需要。如果没有,您可以通过启动带有 GRUB 和 MOK 管理器的系统以类似的方式解决问题。
答案4
在安装过程中选中/启用第三方驱动程序的安全启动需要在重新启动时将新的 MOK 注册到 UEFI。Ubuntu 安装程序在实际完成为新 Ubuntu 安装创建 EFI 系统分区之前,通过注册一些 Mok* EFI 变量来实现此目的。如果安装程序在完成之前中断,我们需要删除两个 Mok* EFI 变量:
Variable NV+RT+BS '605DAB50-E046-4300-ABB6-3DD810DD8B23:MokAuth' DataSize = 0xAC
Variable NV+RT+BS '605DAB50-E046-4300-ABB6-3DD810DD8B23:MokNew' DataSize = 0x3C5
从 UEFI(内部)Shell 运行以下两个命令:
dmpstore -d -all MokAuth
dmpstore -d -all MokNew
现在,当您使用 Ubuntu 安装媒体重新启动时,您应该不再会收到“无法打开 \EFI\BOOT\mmx64.efi - 未找到”错误。
如果您的安全启动签名的内部 Shell 没有 dmpstore 命令(或者您没有内部 Shell 选项),则必须暂时禁用安全启动并使用其他 Shell(例如,复制https://github.com/tianocore/edk2/blob/UDK2018/ShellBinPkg/UefiShell/X64/Shell.efi到 /EFI/Boot/bootx64.efi 的 USB_flash_drive 并启动它)。
更新:对于启用安全启动的解决方案:启动https://clonezilla.org/downloads/download.php?branch=alternative“alternative amd64” 启用安全启动。输入 shell 命令行提示符。cmd 输入命令行提示符。运行:
sudo chattr -i /sys/firmware/efi/efivars/Mok{Auth,New}
sudo rm /sys/firmware/efi/efivars/Mok{Auth,New}
参考:https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1798171/comments/51