From 45406a5c987a2e4510dbb5df06c93ed302228fc0 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 23 Dec 2009 22:27:18 +0100 Subject: Making unmount routines a bit more robust. --- functions/exit.sh | 17 +++++++++++++---- helpers/lh_chroot_devpts | 4 +++- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/functions/exit.sh b/functions/exit.sh index 928fd6e..f29dbf7 100755 --- a/functions/exit.sh +++ b/functions/exit.sh @@ -20,10 +20,19 @@ Exit () # Always exit true in case we are not able to unmount # (e.g. due to running processes in chroot from user customizations) Echo_message "Begin unmounting filesystems..." - for DIRECTORY in $(awk -v dir="${PWD}/chroot/" '$2 ~ dir { print $2 }' /proc/mounts | sort -r) - do - umount ${DIRECTORY} > /dev/null 2>&1 || true - done + + if [ -e /proc/mounts ] + then + for DIRECTORY in $(awk -v dir="${PWD}/chroot/" '$2 ~ dir { print $2 }' /proc/mounts | sort -r) + do + umount ${DIRECTORY} > /dev/null 2>&1 || true + done + else + for DIRECTORY in /dev/pts /dev /proc /selinux /sys + do + umount -f chroot/${DIRECTORY} > /dev/null 2>&1 || true + done + fi return ${VALUE} } diff --git a/helpers/lh_chroot_devpts b/helpers/lh_chroot_devpts index 75edab2..9248595 100755 --- a/helpers/lh_chroot_devpts +++ b/helpers/lh_chroot_devpts @@ -67,9 +67,11 @@ case "${1}" in # Unmounting /dev/pts if [ "${LH_USE_FAKEROOT}" != "true" ] then - if Find_files chroot/dev/pts/* + if grep -qs "$(pwd)/chroot/dev/pts" /proc/mounts || Find_files chroot/dev/pts/* then ${LH_ROOT_COMMAND} umount chroot/dev/pts + else + ${LH_ROOT_COMMAND} umount -f chroot/dev/pts > /dev/null 2>&1 || true fi fi -- cgit v1.0