从 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
然后它就起作用了!(: