mirror of
https://github.com/systemd/systemd.git
synced 2024-11-24 02:33:36 +08:00
fsck-root: only run when requested in fstab
fsck-root is redundant in case an initrd is used, or in case the rootfs is never remounted 'rw', so the new default is the correct behavior for most users. For the rest, they should enable it in fstab.
This commit is contained in:
parent
d09ee17da2
commit
a7623afb7a
@ -4447,7 +4447,6 @@ SYSINIT_TARGET_WANTS += \
|
||||
systemd-update-utmp.service
|
||||
LOCAL_FS_TARGET_WANTS += \
|
||||
systemd-remount-fs.service \
|
||||
systemd-fsck-root.service \
|
||||
tmp.mount
|
||||
MULTI_USER_TARGET_WANTS += \
|
||||
getty.target \
|
||||
|
@ -63,7 +63,9 @@
|
||||
check. <filename>systemd-fsck-root.service</filename> is
|
||||
responsible for file system checks on the root
|
||||
file system. The root file system check is performed
|
||||
before the other file systems.</para>
|
||||
before the other file systems. Either service is enabled
|
||||
at boot if passno in <filename>/etc/fstab</filename> for
|
||||
the filesystem is set to a value greater than zero.</para>
|
||||
|
||||
<para><filename>systemd-fsck</filename> will
|
||||
forward file system checking progress to the
|
||||
|
@ -210,17 +210,29 @@ static int add_mount(
|
||||
post);
|
||||
|
||||
if (passno > 0) {
|
||||
_cleanup_free_ char *fsck = NULL;
|
||||
if (streq(where, "/")) {
|
||||
lnk = strjoin(arg_dest, "/", SPECIAL_LOCAL_FS_TARGET, ".wants/", "systemd-fsck-root.service", NULL);
|
||||
if (!lnk)
|
||||
return log_oom();
|
||||
|
||||
fsck = unit_name_from_path_instance("systemd-fsck", what, ".service");
|
||||
if (!fsck)
|
||||
return log_oom();
|
||||
mkdir_parents_label(lnk, 0755);
|
||||
if (symlink("systemd-fsck-root.service", lnk) < 0) {
|
||||
log_error("Failed to create symlink %s: %m", lnk);
|
||||
return -errno;
|
||||
}
|
||||
} else {
|
||||
_cleanup_free_ char *fsck = NULL;
|
||||
|
||||
fprintf(f,
|
||||
"Requires=%s\n"
|
||||
"After=%s\n",
|
||||
fsck,
|
||||
fsck);
|
||||
fsck = unit_name_from_path_instance("systemd-fsck", what, ".service");
|
||||
if (!fsck)
|
||||
return log_oom();
|
||||
|
||||
fprintf(f,
|
||||
"Requires=%s\n"
|
||||
"After=%s\n",
|
||||
fsck,
|
||||
fsck);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -248,6 +260,7 @@ static int add_mount(
|
||||
|
||||
if (!noauto) {
|
||||
if (post) {
|
||||
free(lnk);
|
||||
lnk = strjoin(arg_dest, "/", post, nofail || automount ? ".wants/" : ".requires/", name, NULL);
|
||||
if (!lnk)
|
||||
return log_oom();
|
||||
|
Loading…
Reference in New Issue
Block a user