89 lines
2.3 KiB
Bash
Executable File
89 lines
2.3 KiB
Bash
Executable File
#!/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
|