diff --git a/debian/chroot.umount b/debian/chroot.umount new file mode 100755 index 0000000..5bd38d8 --- /dev/null +++ b/debian/chroot.umount @@ -0,0 +1,88 @@ +#!/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