对initramfs systemd服务的反思 – 如何?

背景

  • 我正在运行ArchLinux,使用systemd二进制文件启动必要的服务,作为initramfs(root fs解密,挂载等)的一部分。
  • 我想研究什么是系统单元作为这个阶段的一部分,什么时候开始。
  • systemd-analyze plot仅显示了切换根后发生的所有单元的时间图。
  • 交换机根单元(根据定义,initrd引导序列中的最后一个单元)指出:

     [Service] # ... ExecStart=/usr/bin/systemctl --no-block --force switch-root /sysroot # ... 
  • 在switch-root系统命令的systemctl手册页有这样的说:

    switch-root ROOT [INIT]

    切换到另一个根目录并在其下执行新的系统pipe理器进程。 这适用于初始RAM磁盘(“initrd”),并且将从initrd的系统pipe理器进程(又名“init”进程)转换到从实际主机卷加载的主系统pipe理器进程。 这个调用有两个参数:要成为新根目录的目录,以及在其下面的新系统pipe理器二进制文件的path,以便作为PID 1执行。如果后者被省略或者为空string,则会自动searchsystemd二进制文件并用作init。 如果省略系统pipe理器path,等于空string或与systemd二进制文件的path相同,initrd的系统pipe理器进程的状态被传递给主系统pipe理器,这允许稍后检查所涉及的服务的状态在initrd引导阶段。

    然后在initrds的问题上是安静的… … –

启动后,如何反思上面推断的initrd引导阶段所涉及的服务的状态,或者发现甚至运行了哪些单元(如某些是dynamic生成的)?