the filesystem should actually be checked based on the time since
last check, number of mounts, unclean unmount, etc.</para>
- <para>If a file system check fails for a service without
- <option>nofail</option>, emergency mode is activated, by isolating
- to <filename>emergency.target</filename>.</para>
+ <para><filename>systemd-fsck-root.service</filename> will activate
+ <filename>reboot.target</filename> if <filename>/sbin/fsck</filename>
+ returns the "System should reboot" condition, or
+ <filename>emergency.target</filename> if <filename>/sbin/fsck</filename>
+ returns the "Filesystem errors left uncorrected" condition.</para>
+
+ <para><filename>systemd-fsck@.service</filename> will fail if
+ <filename>/sbin/fsck</filename> returns with either "System should reboot"
+ or "Filesystem errors left uncorrected" conditions. For filesystems
+ listed in <filename>/etc/fstab</filename> without <literal>nofail</literal>
+ or <literal>noauto</literal> options, <literal>local-fs.target</literal>
+ will then activate <filename>emergency.target</filename>.</para>
</refsect1>
<refsect1>
return;
}
- log_info("Running request %s/start/replace", target);
+ log_info("Running request %s/start/%s", target, mode);
/* Start these units only if we can replace base.target with it */
r = sd_bus_call_method(bus,
/* System should be rebooted. */
start_target(SPECIAL_REBOOT_TARGET, "replace-irreversibly");
return -EINVAL;
- } else if (exit_status & (FSCK_SYSTEM_SHOULD_REBOOT | FSCK_ERRORS_LEFT_UNCORRECTED))
- /* Some other problem */
- start_target(SPECIAL_EMERGENCY_TARGET, "replace");
- else
+ } else if (!(exit_status & (FSCK_SYSTEM_SHOULD_REBOOT | FSCK_ERRORS_LEFT_UNCORRECTED)))
log_warning("Ignoring error.");
}
Conflicts=shutdown.target
Before=local-fs.target shutdown.target
ConditionPathIsReadWrite=!/
+OnFailure=emergency.target
+OnFailureJobMode=replace-irreversibly
[Service]
Type=oneshot