X-Git-Url: https://git.grml.org/?p=grml-debootstrap.git;a=blobdiff_plain;f=grml-debootstrap;h=a30deb99e076cea72d64bf280c355060bd12ee0a;hp=7a3728f374302282beb36106b6b880886bfd1e10;hb=6ea6382b45fac9c24ede56d758adfd720be773cd;hpb=f48891f86b25f3f2563097cfe1f50ddcd3d4c91c diff --git a/grml-debootstrap b/grml-debootstrap index 7a3728f..a30deb9 100755 --- a/grml-debootstrap +++ b/grml-debootstrap @@ -199,12 +199,12 @@ cleanup() { [ -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 @@ -961,6 +961,18 @@ prepare_vm() { 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