Execute kpartx in sync mode to avoid race conditions
[grml-debootstrap.git] / grml-debootstrap
index b967baa..5313e25 100755 (executable)
@@ -1036,7 +1036,7 @@ prepare_vm() {
     fi
   fi
 
-  DEVINFO=$(kpartx -av "$TARGET") # 'add map loop1p1 (253:0): 0 6289408 linear /dev/loop1 2048'
+  DEVINFO=$(kpartx -asv "$TARGET") # 'add map loop1p1 (253:0): 0 6289408 linear /dev/loop1 2048'
   if [ -z "${DEVINFO}" ] ; then
     eerror "Error setting up loopback device." ; eend 1
     bailout 1
@@ -1089,18 +1089,16 @@ finalize_vm() {
   fi
   chroot "${MNTPOINT}" update-grub
 
+  case "$RELEASE" in
+    lenny|squeeze|wheezy)
+      einfo "Adjusting grub.cfg for successful boot sequence."
+      sed -i "s;root=[^ ]\+;root=UUID=$TARGET_UUID;" "${MNTPOINT}"/boot/grub/grub.cfg
+      ;;
+  esac
+
   umount "${MNTPOINT}"/proc
   umount "${MNTPOINT}"/sys
   umount "${MNTPOINT}"/dev
-
-  einfo "Adjusting grub.cfg for successful boot sequence."
-  if [ "$FIXED_DISK_IDENTIFIERS" = "yes" ]; then
-    sed -i "s;root=[^ ]\+;root=UUID=$DISK_IDENTIFIER;" /boot/grub/grub.cfg
-  else
-    sed -i "s;set root=.*;set root='(hd0,msdos1)';" "${MNTPOINT}"/boot/grub/grub.cfg
-    sed -i "s;root=[^ ]\+;root=/dev/sda1;" "${MNTPOINT}"/boot/grub/grub.cfg
-  fi
-
   umount "${MNTPOINT}"
   kpartx -d "${ORIG_TARGET}" >/dev/null
 }