[ -x "$MNTPOINT"/bin/umount ] && chroot "$MNTPOINT" umount -a >/dev/null 2>&1
- # ugly, but make sure we really don't leave anything (/proc /proc is intended)
- for ARG in /sys /proc /proc ; do
+ # ugly, but make sure we really don't leave anything (/proc /proc and
+ # /dev /dev are intended, trying to work around timing issues, see #657023)
+ for ARG in /sys /proc /proc /dev /dev ; do
[ -x "$MNTPOINT"/bin/umount ] && chroot "$MNTPOINT" umount $ARG >/dev/null 2>&1
umount "$MNTPOINT"/$ARG >/dev/null 2>&1
done
- umount "$MNTPOINT"/dev >/dev/null 2>&1
if [ -n "$ISODIR" ] ; then
[ -d "$MNTPOINT/$ISODIR" ] && umount "$MNTPOINT/$ISODIR" >/dev/null 2>&1
modprobe dm-mod ; eend $?
fi
+ # make sure loop module is present
+ if ! losetup -f >/dev/null 2>&1; then
+ einfo "Can not find a usable loop device, retrying after loading loop module."
+ modprobe loop
+ if losetup -f >/dev/null 2>&1; then
+ einfo "Found a usable loop device now, continuing."
+ else
+ eerror "Error finding usable loop device" ; eend 1
+ bailout 1
+ fi
+ fi
+
DEVINFO=$(kpartx -av $TARGET) # 'add map loop1p1 (253:0): 0 6289408 linear /dev/loop1 2048'
if [ -z "${DEVINFO}" ] ; then
eerror "Error setting up loopback device." ; eend 1