Add script to umount chroot related devices
This commit is contained in:
parent
459c9fb8aa
commit
69c1c68661
|
@ -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
|
Loading…
Reference in New Issue