处理“grub-efi-amd64-signed”和“shim-signed”时遇到错误

处理“grub-efi-amd64-signed”和“shim-signed”时遇到错误

从 Ubuntu 18.04 直接升级到 20.04 后,每次安装应用程序时控制台中都会生成以下错误:

Do you want to continue? [Y/n]
Setting up grub-efi-amd64-signed (1.142+2.04-1ubuntu26) ... dpkg: error processing package grub-efi-amd64-signed (--configure):
  installed grub-efi-amd64-signed package post-installation script subprocess returned error exit status 10 No apport report written because the error message indicates its a followup error from a previous failure. dpkg: dependency problems prevent configuration of shim-signed:
  shim-signed depends on grub-efi-amd64-signed | grub-efi-arm64-signed; however: 
  Package grub-efi-amd64-signed is not configured yet.
   Package grub-efi-arm64-signed is not installed.
dpkg: error processing package shim-signed (--configure):
  dependency problems - leaving unconfigured Errors were encountered while processing:
  grub-efi-amd64-signed  shim-signed E: Sub-process /usr/bin/dpkg returned an error code (1)

但是,尽管出现错误,应用程序仍会安装。

答案1

我最近从 Ubuntu 19.10 升级到了 Ubuntu 20.04。我遇到了同样的问题。以下解决方案对我有用:

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

这是已经在讨论的事情关联。

答案2

Stack Overflow 上有一个类似的问题,一些用户报告这个答案效果很好。你能尝试一下并判断它是否对你有用吗?

答案3

我发现了导致这个问题的两个原因。

1. 2020-04-09 的 dpkg 漏洞

2020-04-09 dpkg 有一个 bug#1871963 dpkg 无法安装 grub-efi-amd64 签名版和 shim-signed 版;;这可能是由于安装后脚本中的多余内容导致的。您会看到以下错误:

/var/lib/dpkg/info/grub-efi-amd64-signed.postinst: 23: Syntax error: word unexpected (expecting ")")

2. 缺少 /boot/efi 挂载

如果使用 EFI 启动,则 EFI 启动分区必须正确安装。最终为我修复该问题的方法是确保/boot/boot/efi被安装到不同的分区(正确的分区)。grub-efi-amd64-signed如果您的 EFI 分区未安装在,则安装将失败/boot/efi

机器会有所不同,但我的挂载点最终是这样的:

$ lsblk | grep -E "nvme|sdb"
sdb1       ...  1G   part  /boot
nvme0n1p2  ...  99M  part  /boot/efi

它给出了如下文件结构,其中内核镜像位于 中/boot,主EFI文件夹位于/boot/efi/EFI

/boot$ tree -L 3
.
├── config-4.14.248
├── config-4.14.248.old
├── config-5.4.0-150-generic
├── config-5.4.0-87-generic
├── efi
│   ├── EFI
│   │   ├── Boot
│   │   ├── Microsoft
│   │   └── ubuntu
│   └── System Volume Information
├── grub
│   ├── fonts
│   ...
│   └── x86_64-efi
│       ├── acpi.mod
│       ├── adler32.mod
│       ...
│       ├── zfs.mod
│       └── zstd.mod
├── initrd.img-4.14.248
├── initrd.img-4.14.248-surface-linux-surface.signed
├── initrd.img-5.4.0-150-generic
├── initrd.img-5.4.0-87-generic
...

根本原因是dpkg找不到/boot/efi/EFI目录,并且该目录不是正确的 EFI/vfat 文件系统。错误的根本原因是:

`dpkg: error processing package grub-efi-amd64-signed (--configure)`

一旦我正确安装了 /boot/efi,所有这些错误就消失了。

答案4

它没有起作用,但我尝试手动(使用管理员权限)删除 etc/default/ 中的 grub 文件,然后我进入终端并输入

sudo apt-get 安装 grub-efi

然后它就起作用了!(:

相关内容