Execute blockdev to reread partition table; replace vol_id with blkid
authorMichael Prokop <mika@grml.org>
Wed, 28 Oct 2009 21:43:48 +0000 (22:43 +0100)
committerMichael Prokop <mika@grml.org>
Wed, 28 Oct 2009 23:52:55 +0000 (00:52 +0100)
grml-debootstrap

index bf62ded..2d79d19 100755 (executable)
@@ -662,9 +662,19 @@ mkfs() {
 
     if [ -n "$MKFS" ] ; then
        einfo "Running $MKFS on $TARGET"
-       $MKFS $TARGET
-       TARGET_UUID="$(vol_id -u $TARGET 2>/dev/null || echo '')"
-       eend $?
+       $MKFS $TARGET ; RC=$?
+
+       # make sure /dev/disk/by-uuid/... is up2date, otherwise grub
+       # will fail to detect the uuid in the chroot
+       blockdev --rereadpt "${TARGET%%[0-9]*}"
+       # give the system 2 seconds, otherwise we might run into
+       # race conditions :-/
+       sleep 2
+
+       eval $(blkid -o udev $TARGET 2>/dev/null)
+       [ -n "$ID_FS_UUID" ] && TARGET_UUID="$ID_FS_UUID" || TARGET_UUID=""
+
+       eend $RC
     fi
 
   fi