summaryrefslogtreecommitdiff
path: root/mount-data/files/init
diff options
context:
space:
mode:
Diffstat (limited to 'mount-data/files/init')
-rwxr-xr-xmount-data/files/init58
1 files changed, 58 insertions, 0 deletions
diff --git a/mount-data/files/init b/mount-data/files/init
new file mode 100755
index 0000000..035f82f
--- /dev/null
+++ b/mount-data/files/init
@@ -0,0 +1,58 @@
+#!/bin/sh /etc/rc.common
+
+START=36
+STOP=90
+
+UUID_A="3472bef9-cbae-48bd-873e-fd4858a0b72f"
+UUID_B="ad73f0bf-3cc5-4aee-842f-992db6a642e3"
+UUID="f71f2b6c-fc49-4a9b-91b3-7eaab853a02d"
+
+is_open() {
+ [ -b "/dev/mapper/data_$1" ]
+}
+
+open() {
+ cryptsetup open --key-file /etc/keys/sd "UUID=$2" "data_$1"
+}
+
+close() {
+ cryptsetup close "data_$1"
+}
+
+is_mounted() {
+ findmnt >/dev/null "$1"
+}
+
+mount_btrfs() {
+ mount -o subvol="$1" "UUID=$UUID" "$2"
+}
+
+umount_drive() {
+ umount -lf "UUID=$UUID"
+}
+
+
+status() {
+ is_mounted "/data" && is_mounted "/srv"
+}
+
+start() {
+ is_open a || open a "$UUID_A"
+ is_open b || open b "$UUID_B"
+ is_mounted "/data" || mount @data /data
+ is_mounted "/srv" || mount @srv /srv
+}
+
+stop() {
+ unmount_drive
+ close a
+ close b
+}
+
+restart() {
+ :
+}
+
+reload() {
+ :
+}