X-Git-Url: https://git.grml.org/?p=grml-debootstrap.git;a=blobdiff_plain;f=grml-debootstrap;h=619d6519fa52eafcc6762963f493d832ad301a04;hp=2fa035a75d902af09b6e7bdaf9d986746f1e79e8;hb=60881cb3a1b8c77395e4945f9be7c6c596bc59c8;hpb=07c037920dbf2bcb34924a6844fa8db89066f418 diff --git a/grml-debootstrap b/grml-debootstrap index 2fa035a..619d651 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 @@ -954,6 +954,13 @@ prepare_vm() { dd if=/dev/zero bs=1 conv=notrunc count=64 seek=446 of="$TARGET" parted -s "${TARGET}" 'mkpart primary ext3 2M -1' + # if dm-mod isn't available then kpartx will fail with + # "Is device-mapper driver missing from kernel? [...]" + if ! kpartx -av $TARGET >/dev/null 2>&1 ; then + einfo "Device-mapper not ready yet, trying to load dm-mod module." + modprobe dm-mod ; eend $? + 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