generator: order initrd fsck-root after local-fs-pre
authorMichael Marineau <michael.marineau@coreos.com>
Fri, 13 Nov 2015 02:10:57 +0000 (18:10 -0800)
committerMichael Marineau <michael.marineau@coreos.com>
Fri, 13 Nov 2015 02:35:27 +0000 (18:35 -0800)
The initrd version of systemd-fsck-root.service must wait for
local-fs-pre.target just like systemd-fsck@.service to prevent
modifications to the filesystem prior to resuming from hibernation.
As-is my laptop routinely fails to resume due to fsck errors. The rest
of the time it is probably silently corrupting the filesystem.

Unlike normal boot, in the initrd systemd-fsck-root.service has no
special significance so it needs to be kept in sync with
systemd-fsck@.service. The name systemd-fsck-root.service is only used
to preserve state across switch-root.

src/shared/generator.c

index cb4ebc6..b3c22ff 100644 (file)
@@ -64,7 +64,7 @@ static int write_fsck_sysroot_service(const char *dir, const char *what) {
                 "Description=File System Check on %2$s\n"
                 "DefaultDependencies=no\n"
                 "BindsTo=%3$s\n"
-                "After=%3$s\n"
+                "After=%3$s local-fs-pre.target\n"
                 "Before=shutdown.target\n"
                 "\n"
                 "[Service]\n"