diff options
Diffstat (limited to 'mount-data/files')
| -rwxr-xr-x | mount-data/files/init | 58 | 
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() { +	: +}  | 
