使用 systemctl switch-root 将默认目标传递给 systemd

使用 systemctl switch-root 将默认目标传递给 systemd

systemd提供通过以下方式设置默认目标的可能性:

  • 内核参数systemd.unit=
  • 争论--unit=UNIT
  • 或者通过设置一个链接,例如/usr/lib/systemd/system/default.target在 rootfs 中。

systemd可以在 initramfs 中使用,通过 initrd-switch-root.target 隔离切换到 rootfs(关联)。内核为这种情况提供了两个参数(systemd.unit=,rd.systemd.unit=),但我不知道它们在这种情况下如何工作。

是否可以systemd在 rootfs 切换之后在 initramfs 阶段设置默认目标,而systemd在 initramfs 和 rootfs 中使用?如果是的话我该怎么做?

背景:我通过套接字连接在 initramfs 阶段检索数据。根据该数据,我想告诉systemd它在切换到 rootfs 后应直接前往哪个目标(运行级别)。

答案1

回答我自己的问题:systemd提供参数 --unit=UNIT ( systemd --help),因此调用:

exec switch_root /mnt/root /sbin/init --unit=${target}

符合我的要求。

相关内容