summaryrefslogtreecommitdiff
path: root/units
diff options
context:
space:
mode:
authorHarald Hoyer <harald@redhat.com>2013-03-04 19:01:05 +0100
committerHarald Hoyer <harald@redhat.com>2013-03-13 08:11:17 +0100
commit700e07ffd53083114e91bb4ba646ed26d0463f67 (patch)
tree85ccb2c53db4c88bd931f873e7c547143a110e4c /units
parent783162123dbac43d5b7a3fab9d4f11dcf86d06e1 (diff)
add initrd-fs.target and root-fs.target
Instead of using local-fs*.target in the initrd, use root-fs.target for sysroot.mount and initrd-fs.target for /sysroot/usr and friends. Using local-fs.target would mean to carry over the activated local-fs.target to the isolated initrd-switch-root.target and thus in the real root. Having local-fs.target already active after deserialization causes ordering problems with the real root services and targets. We better isolate to targets for initrd-switch-root.target, which are only available in the initrd.
Diffstat (limited to 'units')
-rw-r--r--units/initrd-cleanup.service.in4
-rw-r--r--units/initrd-fs.target13
-rw-r--r--units/initrd-parse-etc.service.in6
-rw-r--r--units/initrd-switch-root.target4
-rw-r--r--units/root-fs.target11
5 files changed, 31 insertions, 7 deletions
diff --git a/units/initrd-cleanup.service.in b/units/initrd-cleanup.service.in
index e926a1eec..5bef090e0 100644
--- a/units/initrd-cleanup.service.in
+++ b/units/initrd-cleanup.service.in
@@ -10,8 +10,8 @@ Description=Cleaning Up and Shutting Down Daemons
DefaultDependencies=no
ConditionPathExists=/etc/initrd-release
OnFailure=emergency.target
-Requires=local-fs.target swap.target
-After=local-fs.target swap.target
+Wants=root-fs.target initrd-fs.target
+After=root-fs.target initrd-fs.target
[Service]
Type=oneshot
diff --git a/units/initrd-fs.target b/units/initrd-fs.target
new file mode 100644
index 000000000..6ba1758e4
--- /dev/null
+++ b/units/initrd-fs.target
@@ -0,0 +1,13 @@
+# This file is part of systemd.
+#
+# systemd is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation; either version 2.1 of the License, or
+# (at your option) any later version.
+
+[Unit]
+Description=Initrd File Systems
+Documentation=man:systemd.special(7)
+OnFailure=emergency.target
+OnFailureIsolate=yes
+ConditionPathExists=/etc/initrd-release
diff --git a/units/initrd-parse-etc.service.in b/units/initrd-parse-etc.service.in
index 1a2711ac6..44fee7bd3 100644
--- a/units/initrd-parse-etc.service.in
+++ b/units/initrd-parse-etc.service.in
@@ -8,13 +8,13 @@
[Unit]
Description=Reload Configuration from the Real Root
DefaultDependencies=no
-Requires=local-fs.target swap.target
-After=local-fs.target swap.target
+Requires=root-fs.target
+After=root-fs.target
OnFailure=emergency.target
ConditionPathExists=/etc/initrd-release
[Service]
Type=oneshot
ExecStartPre=@rootbindir@/systemctl daemon-reload
-ExecStart=@rootbindir@/systemctl start local-fs.target
+ExecStart=@rootbindir@/systemctl start initrd-fs.target
ExecStart=@rootbindir@/systemctl --no-block start initrd-cleanup.service
diff --git a/units/initrd-switch-root.target b/units/initrd-switch-root.target
index f706d29ba..cf646c4ef 100644
--- a/units/initrd-switch-root.target
+++ b/units/initrd-switch-root.target
@@ -12,5 +12,5 @@ DefaultDependencies=no
Requires=initrd-switch-root.service
Before=initrd-switch-root.service
AllowIsolate=yes
-Wants=initrd-udevadm-cleanup-db.service local-fs.target swap.target systemd-journald.service
-After=initrd-udevadm-cleanup-db.service local-fs.target swap.target emergency.service emergency.target
+Wants=initrd-udevadm-cleanup-db.service root-fs.target initrd-fs.target systemd-journald.service
+After=initrd-udevadm-cleanup-db.service root-fs.target initrd-fs.target emergency.service emergency.target
diff --git a/units/root-fs.target b/units/root-fs.target
new file mode 100644
index 000000000..13515341e
--- /dev/null
+++ b/units/root-fs.target
@@ -0,0 +1,11 @@
+# This file is part of systemd.
+#
+# systemd is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation; either version 2.1 of the License, or
+# (at your option) any later version.
+
+[Unit]
+Description=Initrd Root File System
+Documentation=man:systemd.special(7)
+ConditionPathExists=/etc/initrd-release