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

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

我有一个双启动系统设置,Windows 10 和 Ubuntu 16.04,打开我的电脑时 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

我可以直接忽略它吗或者我可以做些什么来解决它?

答案1

尝试

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

修理。

答案2

如果有人想设置多重启动 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

答案3

引用/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 配置文件,在这种情况下,跟踪并更新它应该可以解决问题。也许引导修复可以自动修复问题。但请注意,修复尝试可能会使问题变得更糟,导致系统无法启动。因此,我建议谨慎行事!

如果你不能轻易修复它,你可以考虑用其他东西替换 GRUB——有几种替代方案可用,如下所述我的这个网页。GRUB 2 是最多一旦引导加载程序“脱离轨道”,就很难调整,就像你的一样,这就是为什么更换它可能是一个不错的选择。我自己的rEFInd 启动管理器可能很容易安装,但需要注意的是,Ubuntu 16.04 有一个错误,在安全启动处于活动状态时,从 PPA 安装会变得复杂。(文档中对此进行了介绍。)还请注意,仅仅安装一个新软件包并不能解决您的问题;您需要卸载导致您难以执行此操作的 GRUB 包。我专门介绍了该主题这里,因为它并不像你想象的那么简单。(如果你删除 GRUB,Ubuntu 会不断尝试重新安装它。)

答案4

尝试:

sudo apt-get -f install

步骤 1:启动 shim 卸载

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

步骤 2:卸载垫片

之后:成功删除了 shim 存档

步骤 3:移除垫片

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

步骤 4:系统更新提示

相关内容