From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Stoiko Ivanov Date: Tue, 15 Sep 2020 19:07:24 +0200 Subject: [PATCH] Add systemd-unit for importing specific pools The unit can be instantiated with a specific poolname, which will get imported by scanning /dev/disk/by-id, irrespective of the existence and content of /etc/zfs/zpool.cache. the instance name is used unescaped (see systemd.unit(5)), since zpool names can contain characters which will be escaped by systemd. Signed-off-by: Stoiko Ivanov Signed-off-by: Thomas Lamprecht --- etc/Makefile.am | 1 + etc/systemd/system/50-zfs.preset | 1 + etc/systemd/system/zfs-import@.service.in | 16 ++++++++++++++++ 3 files changed, 18 insertions(+) create mode 100644 etc/systemd/system/zfs-import@.service.in diff --git a/etc/Makefile.am b/etc/Makefile.am index 7187762d3..de131dc87 100644 --- a/etc/Makefile.am +++ b/etc/Makefile.am @@ -54,6 +54,7 @@ dist_systemdpreset_DATA = \ systemdunit_DATA = \ %D%/systemd/system/zfs-import-cache.service \ %D%/systemd/system/zfs-import-scan.service \ + %D%/systemd/system/zfs-import@.service \ %D%/systemd/system/zfs-import.target \ %D%/systemd/system/zfs-mount.service \ %D%/systemd/system/zfs-scrub-monthly@.timer \ diff --git a/etc/systemd/system/50-zfs.preset b/etc/systemd/system/50-zfs.preset index e4056a92c..030611419 100644 --- a/etc/systemd/system/50-zfs.preset +++ b/etc/systemd/system/50-zfs.preset @@ -1,6 +1,7 @@ # ZFS is enabled by default enable zfs-import-cache.service disable zfs-import-scan.service +enable zfs-import@.service enable zfs-import.target enable zfs-mount.service enable zfs-share.service diff --git a/etc/systemd/system/zfs-import@.service.in b/etc/systemd/system/zfs-import@.service.in new file mode 100644 index 000000000..9b4ee9371 --- /dev/null +++ b/etc/systemd/system/zfs-import@.service.in @@ -0,0 +1,16 @@ +[Unit] +Description=Import ZFS pool %i +Documentation=man:zpool(8) +DefaultDependencies=no +After=systemd-udev-settle.service +After=cryptsetup.target +After=multipathd.target +Before=zfs-import.target + +[Service] +Type=oneshot +RemainAfterExit=yes +ExecStart=@sbindir@/zpool import -N -d /dev/disk/by-id -o cachefile=none %I + +[Install] +WantedBy=zfs-import.target