fstab-generator: enable fsck for block device mounts specified in systemd.mount-extra=

Like we do for root= or so.

Another possible option is adding support of fifth (sixth?) field in
systemd.mount-extra=. But that may be overkill, hence let's do that
later if someone request that.

Fixes fsck part of issue #28541.
This commit is contained in:
Yu Watanabe 2023-07-28 06:07:17 +09:00
parent 905a56d5c4
commit 239cce3870
11 changed files with 54 additions and 1 deletions

View file

@ -888,6 +888,9 @@ static int parse_fstab_one(
if (is_swap)
return add_swap(source, what, options, flags);
if (passno < 0)
passno = is_device_path(what);
assert(where_original); /* 'where' is not necessary for swap entry. */
if (!is_path(where_original)) {
@ -1302,7 +1305,7 @@ static int add_mounts_from_cmdline(void) {
m->where,
m->fstype,
m->options,
/* passno = */ 0,
/* passno = */ -1,
/* prefix_sysroot = */ !m->for_initrd && in_initrd(),
/* accept_root = */ true,
/* use_swap_enabled = */ false);

View file

@ -4,6 +4,8 @@
Documentation=man:fstab(5) man:systemd-fstab-generator(8)
SourcePath=/proc/cmdline
Before=local-fs.target
Requires=systemd-fsck@dev-sdx6.service
After=systemd-fsck@dev-sdx6.service
After=blockdev@dev-sdx6.target
[Mount]

View file

@ -4,6 +4,8 @@
Documentation=man:fstab(5) man:systemd-fstab-generator(8)
SourcePath=/proc/cmdline
Before=local-fs.target
Requires=systemd-fsck@dev-sdx7.service
After=systemd-fsck@dev-sdx7.service
After=blockdev@dev-sdx7.target
[Mount]

View file

@ -4,6 +4,8 @@
Documentation=man:fstab(5) man:systemd-fstab-generator(8)
SourcePath=/proc/cmdline
Before=local-fs.target
Wants=systemd-fsck@dev-sdx5.service
After=systemd-fsck@dev-sdx5.service
After=blockdev@dev-sdx5.target
[Mount]

View file

@ -4,6 +4,8 @@
Documentation=man:fstab(5) man:systemd-fstab-generator(8)
SourcePath=/proc/cmdline
Before=local-fs.target
Requires=systemd-fsck@dev-sdx3.service
After=systemd-fsck@dev-sdx3.service
After=blockdev@dev-sdx3.target
[Mount]

View file

@ -4,6 +4,8 @@
Documentation=man:fstab(5) man:systemd-fstab-generator(8)
SourcePath=/proc/cmdline
Before=local-fs.target
Requires=systemd-fsck@dev-sdx2.service
After=systemd-fsck@dev-sdx2.service
After=blockdev@dev-sdx2.target
[Mount]

View file

@ -4,6 +4,8 @@
Documentation=man:fstab(5) man:systemd-fstab-generator(8)
SourcePath=/proc/cmdline
Before=initrd-fs.target
Requires=systemd-fsck@dev-sdx6.service
After=systemd-fsck@dev-sdx6.service
After=blockdev@dev-sdx6.target
[Mount]

View file

@ -4,6 +4,8 @@
Documentation=man:fstab(5) man:systemd-fstab-generator(8)
SourcePath=/proc/cmdline
Before=initrd-root-fs.target
Requires=systemd-fsck-root.service
After=systemd-fsck-root.service
After=blockdev@dev-sdx1.target
[Mount]

View file

@ -0,0 +1,17 @@
# Automatically generated by systemd-fstab-generator
[Unit]
Description=File System Check on /dev/sdx1
Documentation=man:systemd-fsck-root.service(8)
DefaultDependencies=no
BindsTo=dev-sdx1.device
Conflicts=shutdown.target
After=initrd-root-device.target local-fs-pre.target dev-sdx1.device
Before=shutdown.target
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/lib/systemd/systemd-fsck /dev/sdx1
TimeoutSec=infinity

View file

@ -0,0 +1,17 @@
# Automatically generated by systemd-fstab-generator
[Unit]
Description=File System Check on /dev/sdx5
Documentation=man:systemd-fsck-usr.service(8)
DefaultDependencies=no
BindsTo=dev-sdx5.device
Conflicts=shutdown.target
After=local-fs-pre.target dev-sdx5.device
Before=shutdown.target
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/lib/systemd/systemd-fsck /dev/sdx5
TimeoutSec=infinity

View file

@ -4,6 +4,8 @@
Documentation=man:fstab(5) man:systemd-fstab-generator(8)
SourcePath=/proc/cmdline
Before=initrd-usr-fs.target
Requires=systemd-fsck-usr.service
After=systemd-fsck-usr.service
After=blockdev@dev-sdx5.target
[Mount]