在 Ubuntu 版本升级失败后,一台计算机开始出现异常。在最初无法启动后,我们设法让它进入命令行 - 但它拒绝联网(所以没有apt
,没有 LDAP,没有 NFS......)。我可以用 SSH进入机器,但没有传出流量尝试成功。显然升级已卸载network-manager
,所以我尝试通过scp
-ing 所需.deb
文件来恢复它,但是......不行。modemmanager
,network-manager
失败
Error getting authority: Error initializing authority: Error calling StartServiceByName for org.freedesktop.PolicyKit1: GDBus.Error:org.freedesktop.systemd1.UnitMasked: Unit polkitd.service is masked. (g-io-error-quark, 36)
并且policykit-1
说
polkitd.service is a disabled or a static unit not running, not starting it.
因此看起来polkitd
,它确实被掩盖了:
$ systemctl is-enabled polkitd.service
masked-runtime
(工作系统显示static
)。
发生了什么事?我该如何修复故障节点?
编辑回应评论:
$ ls /etc/systemd/system
avahi-daemon.service
avahi-daemon.socket
click-system-hooks.service
dbus-org.freedesktop.Avahi.service
dbus-org.freedesktop.ModemManager1.service
dbus-org.freedesktop.nm-dispatcher.service
default.target.wants
display-manager.service.wants
gdm.service
getty.target.wants
graphical.target.wants
halt.target.wants
hibernate.target.wants
hybrid-sleep.target.wants
kexec.target.wants
multi-user.target.wants
nfs-client.target
nfs-server.service
ofono.service
osspd.service
plymouth-log.service
plymouth.service
polkitd.service.d
portmap.service
poweroff.target.wants
printer.target.wants
reboot.target.wants
resolvconf.service
shutdown.target.wants
sockets.target.wants
sshd.service
suspend.target.wants
sysinit.target.wants
syslog.service
urfkill.service
编辑
# ls -al /etc/systemd/system/polkitd.service.d/
total 8
drwxr-xr-x 2 root root 4096 Dec 15 10:50 .
drwxr-xr-x 19 root root 4096 Dec 15 10:50 ..
我删除了有问题的空目录并重新启动;服务现在static
正常了,我设法安装了network-manager
。
但是,网络仍然无法访问,所以肯定是其他问题。我可以 ping 网关...所以我查看了一下resolv.conf
,发现链接坏了:
$ ls -al /etc/resolv.conf
lrwxrwxrwx 1 root root 29 May 14 2015 /etc/resolv.conf -> ../run/resolvconf/resolv.conf
所以我从另一台机器复制了它;现在网络可以正常工作了!我还必须安装nfs-common
和nfs-kernel-server
,因为出于某种原因,它们消失了(而我没有注意到)才能运行我的 autofs。
答案1
迫于赏金截止日期,我重复了 blubberdiblub 的回答:
/etc/systemd/system/polkitd.service.d
在我的 Ubuntu 系统上不存在。你的目录是空的吗?如果是,rmdir /etc/systemd/system/polkitd.service.d
重新启动有帮助吗?
是的,确实如此 - 确实如此。我完全按照建议操作,错误消失了。
答案2
我知道我迟到了,但首先检查它是否是 /dev/null 的链接
ls -l /lib/systemd/system/xxx.service
如果是,则只需取消链接:
sudo unlink /lib/systemd/system/xxx.service
然后你需要重新加载你的守护进程:
sudo systemctl daemon-reload
再次检查状态:
sudo systemctl status xxx
最后你可以重新启动它:
sudo systemctl restart xxx
请注意您已丢失服务文件。