我该如何解决grub-efi上的此错误?


15

我使用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

我可以忽略它还是做些什么来解决它?


这是UEFI系统吗?您的/ etc / fstab是否将EFI分区挂载在/ boot / efi上?/ boot / efi是否包含目录EFI?
ubfan1

是的,它是一个UEFI系统,/ boot / efi包含EFI目录,不了解/ etc / fstab位
BressanFranco

看来更新可能在某些软件包完全完成配置之前就被中断了
。try

@MttJocy尝试了一下,给了我grub-efi-amd64-signed和shim-signed包相同的错误
BressanFranco 2016年

Answers:


4

对的引用/usr/lib/grub/i386-pc/modinfo.sh表示安装了BIOS模式的GRUB-特别是,该i386-pc路径的部分标识了GRUB的BIOS模式版本。(对于AMD64 / x86-64上的EFI模式安装,等效路径为/boot/grub/x86_64-efi/modinfo.sh。)OTOH,程序包名称清楚地指示了EFI模式GRUB安装。不应将两者混为一谈,但是在您的情况下确实会发生这种情况。也许您从以前的BIOS模式安装中获得了一个剩余的GRUB配置文件,在这种情况下,对其进行跟踪和更新应该可以解决问题。也许开机维修可以自动修复该问题。但是请注意,尝试进行修理会冒着使系统无法启动而使情况变得更糟的风险。因此,我建议您格外小心!

如果您不能轻松地修复它,则可以考虑用其他方式替换GRUB -有几种替代方法,如我的本网页所述GRUB 2是困难的引导加载程序,一旦它像您一样“脱离常规”,就进行调整,这就是为什么替换它可以成为一个不错的选择。我自己的rEFInd引导管理器可能很容易安装,但需要注意的是,存在一个Ubuntu 16.04错误,该问题使激活了安全引导的PPA的安装变得复杂。(在文档中对此进行了介绍。)还请注意,仅安装新软件包并不能解决您的问题;您需要卸载 GRUB软件包,这会导致您难以执行此操作。我在这里专门讨论该主题因为它并不像您想象的那么容易。(如果删除它,Ubuntu会继续尝试重新安装GRUB。)


高级选项中的Boot-Repair具有grub的完全卸载/重新安装。这可能会解决配置问题。如果安装了UEFI,请确保以UEFI模式启动。
oldfred 2016年

@oldfred我如何确保以UEFI模式启动?如果它是BIOS设置,则应该已经启用(实际上,我肯定可以确定)
BressanFranco

您可以从UEFI引导菜单中进行选择。通常,闪存驱动器会显示两次。一次作为UEFI:flashdrive,再一次作为flashdrive,然后启动BIOS。您还可以判断是否获得grub菜单为UEFI,如果获得可访问性屏幕(底部为小图标),则为BIOS。显示带有屏幕截图的安装。BIOS紫色辅助功能屏幕和UEFI黑色grub菜单屏幕 help.ubuntu.com/community/UEFI
oldfred

尝试了引导修复活动光盘并执行自动修复,现在一切似乎都很好,没有像以前一样出现错误,update-grub重新添加了Windows分区。一切似乎都很好
BressanFranco 2016年

40

尝试

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

修理。


使用引导修复直播光盘修复了此问题
BressanFranco'Bug

这些命令就像魅力
十足的

4
这样安全吗?
Pithikos

1
两种方式都很安全。您可以使用上面的命令或引导修复活动光盘。
约翰

1
我将Ubuntu 17.04升级到18.04,然后收到错误消息:执行Errors were encountered while processing: grub-efi-amd64 grub-efi-amd64-signed shim-signed E: Sub-process /usr/bin/dpkg returned an error code 之后sudo apt upgrade。您的解决方案也与我合作。谢谢。
马里奥

4

如果有人正在考虑设置多引导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

1

尝试:

sudo apt-get -f install

步骤1:开始执行Shim卸载

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

步骤2:解除安装垫片

之后:成功删除填充档案

步骤3:移除垫片

最后:如果一切顺利,至少Ubuntu软件更新应该重新开始工作(就我而言)

步骤4:系统更新提示

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.