我该怎么做才能在grub-efi上修复这个错误?

我有一个双启动系统设置与Windows 10和Ubuntu 16.04,当打开我的PC grub显示正确,Windows和Ubuntu被识别,没有问题。 每次有更新或我必须安装的东西,我不断收到此错误:

Errors were encountered while processing: grub-efi-amd64-signed shim-signed Setting up shim-signed (1.12+0.8-0ubuntu2) ... Installing for x86_64-efi platform. grub-install: errore: cannot find EFI directory. dpkg: error processing package shim-signed (--configure): subprocess installed post-installation script returned error exit status 1 Setting up grub-efi-amd64-signed (1.66+2.02~beta2-36ubuntu3) ... grub-install: errore: /usr/lib/grub/i386-pc/modinfo.sh doesn't exist. Please specify --target or --directory. dpkg: error processing package grub-efi-amd64-signed (--configure): subprocess installed post-installation script returned error exit status 1 

我可以忽略它,或者我能做些什么来解决它?

/usr/lib/grub/i386-pc/modinfo.sh的引用表示BIOS模式GRUB安装 – 具体来说,该路径的i386-pc部分标识GRUB的BIOS模式版本。 (对于AMD64 / x86-64上的EFI模式安装,等效路径为/boot/grub/x86_64-efi/modinfo.sh ,软件包名称清楚地表明EFI模式GRUB安装。 这两者不应该是混合的,但不知何故,这种情况发生在你的情况下。 也许您从先前的BIOS模式安装中获得了剩余的GRUB配置文件,在这种情况下跟踪它并更新它应该可以解决问题。 也许Boot Repair可以自动解决问题。 但请注意,修复尝试可能会使系统无法启动,从而使问题变得更糟。 因此,我建议极其小心!

如果您无法轻松修复它,您可以考虑用其他东西替换GRUB – 有几种替代方案可供选择,如我本网页所述。 GRUB 2是困难的引导加载程序,一旦它像你的那样“脱轨”就会进行调整,这就是为什么更换它可能是一个不错的选择。 我自己的rEFInd启动管理器很可能很容易安装,但需要注意的是有一个Ubuntu 16.04错误,它使PPA的安装变得复杂,安全启动活动。 (这在文档中有所涉及。)另请注意,只安装新软件包不会解决您的问题; 您需要卸载导致您难以执行此操作的GRUB软件包。 我在这里专门讨论这个话题,因为它并不像你想象的那么容易。 (如果删除它,Ubuntu会继续尝试重新安装GRUB。)

尝试

 sudo apt-get purge grub\* sudo apt-get install grub-efi sudo apt-get autoremove sudo update-grub 

修理。

如果有人正在设置多引导USB磁盘来处理mbr和grub:

如果您当前的系统是EFI,那么您将错过这个:

 sudo apt install grub-pc-bin 

如果您当前的系统是MBR,那么您将会错过这个:

 sudo apt install grub-efi-amd64-bin # You may also need grub-efi-amd64-signed 

尝试:

 sudo apt-get -f install 

第1步:启动填充程序卸载

然后:此终端命令将删除垫片签名的存档

第2步:填充卸载

之后:已成功删除填充程序存档

第3步:去掉垫片

最后:如果一切顺利的话,至少Ubuntu软件更新应该重新开始工作(就像我的情况一样)

第4步:系统更新提示