diff options
author | Harald Hoyer <harald@redhat.com> | 2013-03-04 19:01:05 +0100 |
---|---|---|
committer | Harald Hoyer <harald@redhat.com> | 2013-03-13 08:11:17 +0100 |
commit | 700e07ffd53083114e91bb4ba646ed26d0463f67 (patch) | |
tree | 85ccb2c53db4c88bd931f873e7c547143a110e4c /units | |
parent | 783162123dbac43d5b7a3fab9d4f11dcf86d06e1 (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.in | 4 | ||||
-rw-r--r-- | units/initrd-fs.target | 13 | ||||
-rw-r--r-- | units/initrd-parse-etc.service.in | 6 | ||||
-rw-r--r-- | units/initrd-switch-root.target | 4 | ||||
-rw-r--r-- | units/root-fs.target | 11 |
5 files changed, 31 insertions, 7 deletions
diff --git a/units/initrd-cleanup.service.in b/units/initrd-cleanup.service.in index e926a1eec2..5bef090e08 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 0000000000..6ba1758e45 --- /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 1a2711ac62..44fee7bd34 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 f706d29ba6..cf646c4ef9 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 0000000000..13515341eb --- /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 |