67 lines
2.3 KiB
Diff
67 lines
2.3 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Stoiko Ivanov <s.ivanov@proxmox.com>
|
|
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 <s.ivanov@proxmox.com>
|
|
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
|
---
|
|
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
|