]> gitweb.fluxo.info Git - hydra.git/commitdiff
Adds LVM support into mount-media
authorSilvio Rhatto <rhatto@riseup.net>
Fri, 14 Oct 2016 05:27:27 +0000 (02:27 -0300)
committerSilvio Rhatto <rhatto@riseup.net>
Fri, 14 Oct 2016 05:27:27 +0000 (02:27 -0300)
doc/todo.rst
share/hydractl/mount-media

index d263db93d5bfdb582701964b42a253c130741768..62256b433bf798c89f8c2d0c7acb731391385bea 100644 (file)
@@ -1,7 +1,6 @@
 TODO
 ====
 
-* mount-media: lvm support.
 * import-keys: do not use ssh if host is localhost.
 * import-certs: concat.pem; cert.pem and cert.crt symlinks; restart services.
 * compile: automatic definitions for per-node backup::users.
index d6adf70c34d918b5254d7e7d58fb642bb6a0f586..6916439040cfef8e0c477ac1762091f10b03e989 100755 (executable)
@@ -7,6 +7,7 @@
 MEDIA="$1"
 VOLUME="$2"
 BASENAME="`basename $0`"
+MAPPING="$MEDIA"
 MOUNTPOINT="/media/$MEDIA"
 
 # Check media config
@@ -21,8 +22,16 @@ if [ -z "$VOLUME" ]; then
   VOLUME="sdb1"
 fi
 
-# Disk config
+# Disk and device config
 DISK="`echo ${VOLUME} | sed -e s/[0-9]\$//g`"
+DEVICE="/dev/$DISK"
+
+# Check if LVM
+if $sudo lvdisplay /dev/$MEDIA/root &> /dev/null; then
+  LVM="yes"
+  DEVICE="/dev/$MEDIA/root"
+  MAPPING="$MAPPING-root"
+fi
 
 # Set sudo config
 if [ "`whoami`" != 'root' ]; then
@@ -30,22 +39,32 @@ if [ "`whoami`" != 'root' ]; then
 fi
 
 if [ "$BASENAME" == "mount-media" ]; then
-  echo "Checking drive health status..."
-  $sudo smartctl -H /dev/$DISK
+  if [ -e "$DEVICE" ]; then
+    echo "Checking drive health status..."
+    $sudo smartctl -H /dev/$DISK
 
-  echo "Disabling STANDBY on drive..."
-  $sudo sdparm --clear STANDBY -6 /dev/$DISK
+    echo "Disabling STANDBY on drive..."
+    $sudo sdparm --clear STANDBY -6 /dev/$DISK
+  fi
+
+  if [ "$LVM" == "yes" ]; then
+    $sudo vgchange -a y $VOLUME
+  fi
 
   echo "Initializing crypto layer..."
-  $sudo cryptsetup luksOpen /dev/$VOLUME $MEDIA && \
+  $sudo cryptsetup luksOpen $DEVICE $MAPPING && \
 
   echo "Checking filesystem..."
-  $sudo fsck -v -y /dev/mapper/$MEDIA && \
+  $sudo fsck -v -y /dev/mapper/$MAPPING && \
 
   echo "Mounting volume at $MOUNTPOINT..."
   $sudo mkdir -p $MOUNTPOINT
-  $sudo mount /dev/mapper/$MEDIA $MOUNTPOINT
+  $sudo mount /dev/mapper/$MAPPING $MOUNTPOINT
 elif [ "$BASENAME" == "umount-media" ]; then
   $sudo umount $MOUNTPOINT && \
-  $sudo cryptsetup luksClose $MEDIA
+  $sudo cryptsetup luksClose $MAPPING
+
+  if [ "$LVM" == "yes" ]; then
+    $sudo vgchange -a n $VOLUME
+  fi
 fi