我正在使用 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
此后,我重启了几次,看看是否会出现任何问题,但目前还没有出现任何问题。