在 Ubuntu 20.04 Server 中启动网络接口的详细过程是什么?

在 Ubuntu 20.04 Server 中启动网络接口的详细过程是什么?

在 Ubuntu 20.04 中调出界面的具体过程是怎样的?

即哪个进程管理这个?(是 systemd-networkd 吗?)它基于什么配置数据?

注意:我不是问 netplan 配置,netplan 只是一个抽象层,它将 netplan 配置转换为适合特定后端使用的配置 - 我对该特定后端的底层功能以及它经历的过程更感兴趣。

(编辑后重新聚焦问题,以明确表明我对 netplan 配置抽象层下面发生的事情感兴趣)。

答案1

在启动过程的早期netplan-生成二进制文件作为systemd 生成器。二进制文件可以在 处查看(符号链接)/lib/systemd/system-generators/netplan

二进制文件使用 netplan 配置为或netplan-generate创建配置。例如,在 处创建文件。systemd-networkdNetworkManagersystemd-networkd/run/systemd/network/10-netplan-SOMETHING.network

systemd-networkd.service在引导过程的后期,systemd 会为或启动服务NetworkManager.service。该服务根据其配置(刚刚由 netplan 创建)配置网络。

答案2

当系统启动并且内核/sbin/init为 PID执行时,它实际上将通过符号链接1执行 。详情请参阅。/lib/systemd/systemdman 1 systemd

在 的早期启动过程中systemd,所有生成器都将被执行,这可能会在所有配置文件加载之前自动生成新的配置文件。man 7 systemd.generator有关此过程的详细信息,请参阅。

然后,( PID systemd1) 将查找default.target默认情况下从/lib/systemd/system/default.target到 的符号链接graphical.target。(您应该使用 进行查询,systemctl get-default并使用 设置新目标systemctl set-default。)

一旦知道默认目标,systemd(PID 1)就会递归地寻找该目标的依赖项。

如果你想知道某个特定目标或服务是如何启动的,请尝试例如systemd-analyze critical-chain network.targetsystemd-analyze dumpnetplan通过生成器初始化/lib/systemd/system-generators/netplan,它还包含有关 NetworkManager 的硬编码信息。

我不太清楚如何在软件 RAID 设备上systemd使用文件系统根目录的系统进行引导(例如从中的 RAID 5 设备引导)。我假设用于构建 RAID 阵列,但我找不到有关其实际工作原理的详细信息。显然,根文件系统的具体位置和安装方式是实现细节,将在尝试读取配置文件或启动网络之前发生,因此对于原始问题而言并不重要。/md/dev/md0initrd

相关内容