为什么我的系统没有安装最新的内核(linux-image-5.4.0-84-generic)?

为什么我的系统没有安装最新的内核(linux-image-5.4.0-84-generic)?

我正在使用 Ubuntu 20.04.3 LTS x86_64,并且一直在尝试使用以下命令安装最新版本的内核:

sudo apt update && sudo apt upgrade

但在运行结束时它总是显示以下消息:

Adding boot menu entry for UEFI Firmware Settings
/etc/grub.d/35_fwupd: line 5: /usr/share/grub: Is a directory
run-parts: /etc/kernel/postinst.d/zz-update-grub exited with return code 126
dpkg: error processing package linux-image-5.4.0-84-generic (--configure):
 installed linux-image-5.4.0-84-generic package post-installation script subprocess returned error exit st
atus 1
Errors were encountered while processing:
 linux-image-5.4.0-84-generic
E: Sub-process /usr/bin/dpkg returned an error code (1)

的输出uname -r为:

5.4.0-81-generic.

这意味着内核没有正确安装。

有人知道发生了什么事吗?

编辑:

根据要求,我发布了我的文件内容/etc/grub.d/35_fwupd

#! /bin/bash
# SPDX-License-Identifier: LGPL-2.1+
set -e

${pkgdatadir:?}
# shellcheck source=/dev/null
. "$pkgdatadir/grub-mkconfig_lib"

if [ -f /var/lib/fwupd/uefi_capsule.conf ] &&
   ls /sys/firmware/efi/efivars/fwupd-*-0abba7dc-e516-4167-bbf5-4d9d1c739416 1>/dev/null 2>&1; then
      source /var/lib/fwupd/uefi_capsule.conf
      if [ "${EFI_PATH}" != "" ] && [ "${ESP}" != "" ]; then
      echo "Adding Linux Firmware Updater entry" >&2
cat << EOF
menuentry 'Linux Firmware Updater' \$menuentry_id_option 'fwupd' {
EOF
      ${grub_probe:?}
      prepare_grub_to_access_device '`${grub_probe} --target=device \${ESP}` | sed -e "s/^/\t/"'
cat << EOF
    chainloader ${EFI_PATH}
}
EOF
      fi
fi

答案1

我有同样的问题并回答了这里

总结

fwupd 的上游开发人员这样修复了这个错误,即他们用 [ -d ${pkgdatadir:?} ] 替换了 ${pkgdatadir:?} 行

显然他们是报告该错误的人,因此他们意识到了这一点,并且已经修复了针对 hirsute 的软件包,只是没有修复针对 focal 的软件包。

答案2

根据用户 Ahmed 和 ubfan1 的说法,该文件/etc/grub.d/35_fwupd不是 Ubuntu apt-file 搜索的一部分,可能是我最近从 Ubuntu 18.04 LTS 升级后留下的。

删除该文件并尝试再次升级后,错误消息消失并且现在显示的输出uname -r

5.4.0-84-generic

此后,我重启了几次,看看是否会出现任何问题,但目前还没有出现任何问题。

相关内容