我正在使用新安装的 Arch Linux,每当我启动系统时,我都必须等待 90 秒,因为我的网络接口正在运行启动作业。
我昨天安装了 Arch,每当我安装时,ip a
我都会发现以太网接口处于DOWN
状态。我使用有线 USB 系绳来完成整个安装。我只想在启动时删除启动作业进程。我在 Arch 社区的某个地方看到了一个解决方案,我必须使用以下方法禁用我的界面:
# systemctl disable dhcpcd@interface_name
我还没有这样做。我的问题是,如果我禁用该接口,将来会不会造成任何问题?我现在没有使用任何 LAN 连接。如果将来我想使用 LAN 或某种以太网连接,会不会造成任何问题?
输出uname -a
:
[siddharth@brightprogrammer ~]$ uname -a
Linux brightprogrammer 4.19.26-1-lts #1 SMP Wed Feb 27 16:06:52 CET 2019 x86_64 GNU/Linux
输出ip a
:
[siddharth@brightprogrammer ~]$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp1s0f1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
link/ether 80:fa:5b:5b:9e:47 brd ff:ff:ff:ff:ff:ff
3: wlp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 94:b8:6d:c9:57:89 brd ff:ff:ff:ff:ff:ff
inet 192.168.43.201/24 brd 192.168.43.255 scope global dynamic noprefixroute wlp2s0
valid_lft 2153sec preferred_lft 2153sec
inet6 2405:205:a061:4977:348c:2fe2:102:47ac/64 scope global noprefixroute
valid_lft forever preferred_lft forever
inet6 fe80::614a:460c:ff14:9caa/64 scope link noprefixroute
valid_lft forever preferred_lft forever
输出find /etc/systemd
:
[siddharth@brightprogrammer ~]$ find /etc/systemd
/etc/systemd
/etc/systemd/journald.conf
/etc/systemd/coredump.conf
/etc/systemd/sleep.conf[siddharth@brightprogrammer ~]$ systemd-analyze
启动完成时间为 5.369s(固件)+ 1.785s(加载程序)+ 5.214s(内核)+ 1min 33.882s(用户空间)= 1min 46.252s 图形化。在用户空间 1min 33.882s 后达到目标
/etc/systemd/journal-remote.conf
/etc/systemd/system.conf
/etc/systemd/timesyncd.conf
/etc/systemd/journal-upload.conf
/etc/systemd/networkd.conf
/etc/systemd/system
/etc/systemd/system/getty.target.wants
/etc/systemd/system/getty.target.wants/[email protected]
/etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service
/etc/systemd/system/bluetooth.target.wants
/etc/systemd/system/bluetooth.target.wants/bluetooth.service
/etc/systemd/system/multi-user.target.wants
/etc/systemd/system/multi-user.target.wants/NetworkManager.service
/etc/systemd/system/multi-user.target.wants/[email protected]
/etc/systemd/system/multi-user.target.wants/wicd.service
/etc/systemd/system/multi-user.target.wants/[email protected]
/etc/systemd/system/multi-user.target.wants/remote-fs.target
/etc/systemd/system/network-online.target.wants
/etc/systemd/system/network-online.target.wants/NetworkManager-wait-online.service
/etc/systemd/system/dbus-org.bluez.service
/etc/systemd/system/dbus-org.wicd.daemon.service
/etc/systemd/system/display-manager.service
/etc/systemd/system/dbus-org.freedesktop.NetworkManager.service
/etc/systemd/logind.conf
/etc/systemd/user
/etc/systemd/user/sockets.target.wants
/etc/systemd/user/sockets.target.wants/p11-kit-server.socket
/etc/systemd/user/sockets.target.wants/pipewire.socket
/etc/systemd/user/sockets.target.wants/gpg-agent.socket
/etc/systemd/user/sockets.target.wants/dirmngr.socket
/etc/systemd/user/sockets.target.wants/gpg-agent-extra.socket
/etc/systemd/user/sockets.target.wants/gpg-agent-browser.socket
/etc/systemd/user/sockets.target.wants/gpg-agent-ssh.socket
/etc/systemd/user/sockets.target.wants/pulseaudio.socket
/etc/systemd/user/default.target.wants
/etc/systemd/user/default.target.wants/xdg-user-dirs-update.service
/etc/systemd/user.conf
/etc/systemd/network
/etc/systemd/resolved.conf
输出systemd-analyze
:
[siddharth@brightprogrammer ~]$ systemd-analyze
Startup finished in 5.369s (firmware) + 1.785s (loader) + 5.214s (kernel) + 1min 33.882s (userspace) = 1min 46.252s
graphical.target reached after 1min 33.882s in userspace
输出systemd-analyze critical-analyze
:
[siddharth@brightprogrammer ~]$ systemd-analyze critical-chain
The time after the unit is active or started is printed after the "@" character.
graphical.target @1min 33.882s
└─gdm.service @1min 33.615s +265ms
└─systemd-user-sessions.service @1min 33.503s +110ms
└─network.target @1min 33.501s
└─wpa_supplicant.service @15.761s +638ms
└─basic.target @11.036s
└─sockets.target @11.036s
└─dbus.socket @11.036s
└─sysinit.target @11.028s
└─systemd-backlight@backlight:intel_backlight.service @14.008s >
└─system-systemd\x2dbacklight.slice @14.006s
└─system.slice @2.915s
└─-.slice @2.915s
输出systemd-analyze blame
:
[siddharth@brightprogrammer ~]$ systemd-analyze blame
11.692s [email protected]
11.692s [email protected]
6.472s lvm2-monitor.service
4.616s wicd.service
3.222s systemd-journal-flush.service
3.188s NetworkManager.service
2.719s bluetooth.service
2.711s systemd-logind.service
1.395s systemd-sysusers.service
1.216s systemd-udevd.service
1.213s ldconfig.service
981ms udisks2.service
971ms polkit.service
649ms [email protected]
638ms wpa_supplicant.service
600ms systemd-modules-load.service
526ms systemd-tmpfiles-setup.service
501ms systemd-tmpfiles-setup-dev.service
493ms upower.service
487ms systemd-udev-trigger.service
464ms systemd-journald.service
371ms systemd-journal-catalog-update.service
338ms systemd-sysctl.service
268ms colord.service
265ms gdm.service
260ms kmod-static-nodes.service
238ms dev-sda2.swap
236ms accounts-daemon.service
142ms systemd-random-seed.service
135ms systemd-backlight@backlight:intel_backlight.service
110ms systemd-user-sessions.service
91ms [email protected]
81ms systemd-update-utmp.service
54ms systemd-remount-fs.service
48ms sys-kernel-debug.mount
35ms systemd-tmpfiles-clean.service
28ms dev-hugepages.mount
26ms [email protected]
25ms sys-kernel-config.mount
16ms [email protected]
15ms dev-mqueue.mount
9ms rtkit-daemon.service
6ms systemd-update-done.service
4ms systemd-rfkill.service
3ms sys-fs-fuse-connections.mount
2ms tmp.mount
和 的输出:systemctl status [email protected]
dhcpcd@enp1s0f1
[siddharth@brightprogrammer ~]$ sudo systemctl status [email protected]
● [email protected] - dhcpcd on eth0
Loaded: loaded (/usr/lib/systemd/system/[email protected]; enabled; vendor pre>
Active: inactive (dead)
Mar 05 09:42:42 brightprogrammer systemd[1]: Dependency failed for dhcpcd on eth0.
Mar 05 09:42:42 brightprogrammer systemd[1]: [email protected]: Job [email protected]/start failed with result 'dependency'.
[siddharth@brightprogrammer ~]$ sudo systemctl status [email protected]
● [email protected] - dhcpcd on enp1s0f1
Loaded: loaded (/usr/lib/systemd/system/[email protected]; disabled; vendor pr>
Active: inactive (dead)
我最近禁用了 enp1s0f1。这可能是它被禁用的原因。
我还可以提供 的输出,journalctl -xe
但是非常大!我还怀疑我的和我的dhcpcd
之间存在某种混淆eth0
enp1s0f1
答案1
我想说,您所看到的问题很可能与[email protected]
您的系统上的配置有关。所以我的建议是禁用它,希望这足以使启动期间的超时消失:
$ sudo systemctl disable dhcpcd@eth0
我将仔细研究支持这一主张的证据。此处可以进行更多故障排除,我将建议更多步骤(如果您想进一步了解或将来解决类似问题)。
该问题的主要证据是输出消息,systemctl status dhcpcd@eth0
其中显示:
Mar 05 09:42:42 brightprogrammer systemd[1]: [email protected]: Job [email protected]/start failed with result 'dependency'.
结果“依赖”失败意味着,在这种情况下,它正在等待其他失败的东西。该服务将依赖于该设备eth0.device
,并且该设备不会出现,因此这可能是超时的原因。你可以看看systemctl status eth0.device
是否有其他东西出现,有可能会出现(但是,也有可能不会出现。)
就像您在问题中提到的那样,系统中eth0
的实际设备名称和实际设备名称之间可能存在混淆。 enp1s0f1
systemd(更具体地说是 udevd)将重命名网络接口,为它们提供一致的名称,这通常会在启动初期发生(有时甚至在 systemd 启动之前),因此 systemd 将不再真正看到该eth0
名称。
如果您希望将来在该接口上启用 DHCP,请dhcpcd@enp1s0f1
改为启用。
的输出systemd-analyze critical-chain
支持该服务超时的假设dhcpcd@eth0
,您可以从这两个步骤中看到这一点:
└─network.target @1min 33.501s
└─wpa_supplicant.service @15.761s +638ms
之后的时间@
是启动后的时钟时间。该wpa_supplicant
服务在 systemd 启动后 13 秒才启动,但network.target
仅在 1 分 33 秒时才达到(大约是您所说的 90 秒)。
您可能会dhcpcd@eth0
在这里更明确地看到,但该单元实际上进入“已加载”/“非活动”状态,而不是“失败”,因此这可能就是为什么它没有在这里(和在systemd-analyze blame
)中突出列出的原因,这将有帮助指出它是罪魁祸首。
最后,在解决 systemd 启动问题时,通常最好的一个步骤是首先查看裸输出systemctl status
,这将告诉您系统是否处于“降级”状态,这表明启动过程中出现了某些问题。您希望确保系统状态为“正在运行”,因此调查这些故障通常会发现超时等问题。
您可以通过查看 的输出从该点开始进行调查systemctl
,该输出将列出所有活动单元及其状态,如果您在那里看到问题,请通过调查特定单元(使用systemctl status <unit>
或journalctl -u <unit>
)进一步查看。命令systemctl --state=failed
也可用于仅显示失败的单元单位。
最后,查一下期刊确实很有利于建立关联。命令journalctl -b
显示自系统启动以来的日志,因此在启动过程中检查问题非常有用。如前所述,journalctl -u <unit>
对于调查单个单元的日志很有用。
希望这些技巧能够帮助您更深入地挖掘和了解系统中发生的情况。还希望禁用它dhcpcd@eth0
足以解决您遇到的启动延迟问题。
答案2
我最终通过为指定的配置文件(eth0)重新启用 systemd 单元解决了这个问题。
netctl reenable eth0
现在,重启后 90 秒的启动时间就会被清除。
答案3
问题是当您尚未配置网络(通常在全新安装后)但系统尝试启动整个网络内容时。在正确建立网络配置之前,只需禁用 systemd 用户会话和网络守护进程的依赖性。
来自:/usr/lib/systemd/system/systemd-user-sessions.service
部分:[单位]
行:之后=....
删除网络.target然后执行systemctl daemon-reload