scripts/debian/chroot.umount

89 lines
2.3 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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