aboutsummaryrefslogtreecommitdiffstats
path: root/roles/host/templates/usr_local_etc_rc.d_zpool_gpt_labels.j2
diff options
context:
space:
mode:
Diffstat (limited to 'roles/host/templates/usr_local_etc_rc.d_zpool_gpt_labels.j2')
-rw-r--r--roles/host/templates/usr_local_etc_rc.d_zpool_gpt_labels.j233
1 files changed, 33 insertions, 0 deletions
diff --git a/roles/host/templates/usr_local_etc_rc.d_zpool_gpt_labels.j2 b/roles/host/templates/usr_local_etc_rc.d_zpool_gpt_labels.j2
new file mode 100644
index 0000000..36bc715
--- /dev/null
+++ b/roles/host/templates/usr_local_etc_rc.d_zpool_gpt_labels.j2
@@ -0,0 +1,33 @@
+#!/bin/sh
+
+# PROVIDE: zpool_gpt_labels
+# REQUIRE: zfs
+# BEFORE: LOGIN
+# KEYWORD: nojail
+
+. /etc/rc.subr
+
+name="zpool_gpt_labels"
+rcvar="zpool_gpt_labels_enable"
+start_cmd="zpool_gpt_labels_start"
+
+zpool_gpt_labels_start() {
+ logger "Setting zpool vdev paths to GPT labels"
+ local zpool_status="$(zpool status)"
+ for i in 0 1 2 3; do
+ local raw="nda${i}p4.eli"
+ local path="/dev/gpt/zfs${i}.eli"
+ case "$zpool_status" in
+ *"$raw"*)
+ zpool set "path=${path}" zroot "${raw}"
+ logger "Setting ${raw} -> ${path}"
+ ;;
+ *)
+ logger "Skipping ${raw}..."
+ ;;
+ esac
+ done
+}
+
+load_rc_config $name
+run_rc_command "$1"