Ste*_*anx 4 boot networking systemd systemd-networkd
当我想启动我的笔记本电脑时,它向我显示了这个错误
[FAILED] Failed to start Dispatcher daemon for systemd-networkd
Run Code Online (Sandbox Code Playgroud)
请帮我。
小智 6
您的系统在启动过程中不会冻结,而是进入等待网络设备完全配置的状态,然后再继续。最终修复将来自对 中的配置文件/etc/systemd/network和服务日志的检查journalctl -xe | grep networkd,将您的注意力集中在报告中状态networkctl status -a未列为“已配置”的任何链接上。众所周知,当 IPv6 不可用或配置错误时会发生这种情况,但也有其他各种原因。
您应该通过引导加载程序(GRUB、rEFInd 等)以恢复模式重新启动系统,然后从出现的菜单中选择 root 选项。从那里,您可以使用上述命令检查系统和/或通过创建一个新目录,mkdir /etc/systemd/system/systemd-networkd.service.d然后在其中创建一个名为 override.conf(例如sudoedit /etc/systemd/system/systemd-networkd.service.d/override.conf)的新文件来启用服务的调试日志,其中包含以下内容:
[Service]
Environment=SYSTEMD_LOG_LEVEL=debug
Run Code Online (Sandbox Code Playgroud)
您可以在/etc/systemd/network仍处于恢复模式时使用命令测试对文件的修改是否成功/usr/lib/systemd/systemd-networkd-wait-online && echo $?。如果你已经解决了这个问题,输出将为 0。如果其他一切都失败了,你可以完全禁用该服务sudo systemctl disable systemd-netword-wait-online.service
相关手册页:
听起来好像您有 >1 个systemd.network(5)配置文件/etc/systemd/network(或有 [Match] 部分指定 >1 带通配符的接口),但没有使用RequiredForOnline=false该[Link]部分中的指令设置。在这种情况下,systemd-networkd-wait-online.service会期望所有的systemd-networkd管理接口,以达到routable运行状态。
尽管设置该指令也会使其systemd-networkd-wait-online.service完全被忽略,这也可能不是您想要的。如果您不关心针对 订购network-online.target,那么您不妨禁用和/或屏蔽该单元。
如果您希望保留对依赖项进行排序的优势network-online.target,那么我发现解决此问题的最简单方法是简单地使用--anyswitch。创建文件/etc/systemd/system/systemd-networkd-wait-online.service.d/override.conf或使用sudo systemctl edit systemd-networkd-wait-online.service(也将创建相同的文件)并包含这些行...
[Service]
ExecStart=
ExecStart=/usr/lib/systemd/systemd-networkd-wait-online --any
Run Code Online (Sandbox Code Playgroud)
随后的sudo systemctl daemon-reload并且sudo systemctl restart systemd-networkd-wait-online.service应该立即告诉您它是否有效。
或者,您可以将--interface=和/或--ignore=开关与 一起使用systemd-networkd-wait-online。这些可以代替或结合--any上面显示的开关使用。如果使用带的--any开关,它只会考虑传递给这些接口--interface=,或者没有明确地忽略--ignore=,确定机器是否已经达到联机状态时。