我有一个双启动系统设置,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 会不断尝试重新安装它。)