#!/bin/sh # Vars {{{ [ -z "${DEBUG}" ] && readonly DEBUG=0 ## Export DEBUG for sub-script export DEBUG ## Define the hard drive to use if [ -b '/dev/sda' ]; then hdd="/dev/sda" else printf '%b\n' "Please check the hard drive to use" exit 0 fi ## Try to guess the VG name by using the last VG detected vgname=$(vgdisplay --short | tail -n 1 | sed 's/.*"\(.*\)" .*/\1/') # }}} debug_message() { # {{{ local_message="${1}" ## Print message if DEBUG is enable (=0) [ "${DEBUG}" -eq "0" ] && printf '\e[1;35m%-6b\e[m\n' "DEBUG − ${PROGNAME}: ${local_message}" return 0 } # }}} # Umount filesystems {{{ mountpoint -q /target/boot && umount -- /target/boot mountpoint -q /target/home && umount -- /target/home mountpoint -q /target/opt && umount -- /target/opt mountpoint -q /target/srv && umount -- /target/srv mountpoint -q /target/tmp && umount -- /target/tmp mountpoint -q /target/usr && umount -- /target/usr mountpoint -q /target/var && umount -- /target/var mountpoint -q /target/srv/backup && umount -- /target/srv/backup mountpoint -q /target/var/lib/vz && umount -- /target/var/lib/vz swapoff /dev/mapper/"${vgname}"-swap > /dev/null 2>&1 mountpoint -q /target/dev && umount /target/dev mountpoint -q /target/dev/pts && umount /target/dev/pts mountpoint -q /target/proc && umount /target/proc mountpoint -q /target/sys && umount /target/sys mountpoint -q /target/run/lvm && umount /target/run/lvm mountpoint -q /target/run/udev && umount /target/run/udev mountpoint -q /target && umount -- /target # }}} ## Disable LVM {{{ ### Disable LVM devices vgchange --activate n --quiet > /dev/null ## }}} ## Is LUKS {{{ if blkid | grep -q -- "${hdd}.*crypto_LUKS"; then debug_message "is_luks − \ Luks seems available on ${hdd} device." manage_luks=0 luks_pv_name=$(basename "${hdd}"2_crypt) else manage_luks=1 debug_message "is_luks − \ No Luks system on ${hdd} device." fi ## }}} ## Close LUKS device {{{ if [ "${manage_luks}" -eq 0 ]; then ### If the volume is opened if [ -h /dev/mapper/"${luks_pv_name}" ]; then debug_message "close_luks − \ Try to close Luks on ${luks_pv_name} − ${hdd}2" ### Close LUKS device cryptsetup luksClose "${luks_pv_name}" || exit 2 fi fi ## }}} exit 0