答案1
在某些情况下,可以安全地忽略此错误。fwupd-refresh.service
仅执行/usr/bin/fwupdmgr refresh
命令并将退出状态2
视为成功(参见的最后两行fwupd-refresh.service
)。但fwupdmgr
也可以成功退出并显示状态0
,但 systemd 会将其错误地解释为错误。
systemctl cat fwupd-refresh
:# /lib/systemd/system/fwupd-refresh.service [Unit] Description=Refresh fwupd metadata and update motd Documentation=man:fwupdmgr(1) After=network.target [Service] Type=oneshot CacheDirectory=fwupdmgr StandardError=null DynamicUser=yes RestrictAddressFamilies=AF_NETLINK AF_UNIX AF_INET AF_INET6 SystemCallFilter=~@mount ProtectKernelModules=yes ProtectControlGroups=yes RestrictRealtime=yes SuccessExitStatus=2 ExecStart=/usr/bin/fwupdmgr refresh
sudo /usr/bin/fwupdmgr refresh
:... Successfully downloaded new metadata: 0 local devices supported
echo $?
:0
man fwupdmgr
:EXIT STATUS Commands that successfully execute will return "0", but commands that have no actions but successfully execute will return "2".
答案2
就我自己的情况(Ubuntu Server 20.04 带有最新更新)而言,DynamicUser=no
提供了快速而简单的解决方案。
首先,运行“systemctl edit fwupd-refresh”并输入:
[Service]
DynamicUser=no
然后,运行“systemctl restart fwupd-refresh”并享受。
答案3
fwupd-刷新服务 已加载:已蒙面
被屏蔽的服务将被禁用,无法由需要它的其他单元(计时器、目标、服务……)或手动激活。这是禁用服务的增强版本。
fwupd-刷新.计时器:...失败...单元 fwupd-refresh 被屏蔽。
要改变这一点:
sudo systemctl unmask fwupd-refresh
然后是这个:
sudo systemctl daemon-reload && sudo systemctl start fwupd-refresh.service
systemctl list-units --failed
如果 fwupd-refresh 被列为失败,则:
#DynamicUser=yes
取消/lib/systemd/system/fwupd-refresh.service 中的注释
https://www.freedesktop.org/software/systemd/man/systemd.exec.html#DynamicUser=
答案4
我已经解决了我的问题 https://github.com/fwupd/fwupd/wiki/PluginFlag:legacy-bios
DisabledPlugins=test;invalid;bios
只需在此行末尾添加“bios”即可
/etc/fwupd/daemon.conf