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
 |