Check for existence of debootstrap binary after command line processing
[grml-debootstrap.git] / grml-debootstrap
index 103946c..4957e8f 100755 (executable)
@@ -335,10 +335,6 @@ stage() {
 }
 # }}}
 
-# make sure we have what we need {{{
-check4progs "${DEBOOTSTRAP}" || bailout 1
-# }}}
-
 # source main configuration file {{{
 if [ -r /etc/debootstrap/config ] ; then
   # shellcheck disable=SC1091
@@ -626,6 +622,8 @@ fi
 # }}}
 
 # make sure we have what we need {{{
+check4progs "${DEBOOTSTRAP}" || bailout 1
+
 if [ -n "$VIRTUAL" ] ; then
   check4progs kpartx parted qemu-img || bailout 1
 fi
@@ -1515,6 +1513,15 @@ if [[ -z "${GRUB}" ]] || ! dd if="${GRUB}" bs=512 count=1 2>/dev/null | cat -v |
   rm -f "${MNTPOINT}/tmp/core.img"
 fi
 
+  # workaround for Debian bug #918590 with lvm + udev:
+  # WARNING: Device /dev/... not initialized in udev database even after waiting 10000000 microseconds
+  if [ -d /run/udev ] ; then
+    einfo "Setting up bind-mount /run/udev"
+    mkdir -p "${MNTPOINT}"/run/udev
+    mount --bind /run/udev "${MNTPOINT}"/run/udev
+    eend $?
+  fi
+
   einfo "Updating grub configuration file."
   chroot "${MNTPOINT}" update-grub
 
@@ -1534,6 +1541,14 @@ fi
     sed -i "s;root=[^ ]\\+;root=UUID=$TARGET_UUID;" "${MNTPOINT}"/boot/grub/grub.cfg
   fi
 
+  # workaround for Debian bug #918590 with lvm + udev:
+  # WARNING: Device /dev/... not initialized in udev database even after waiting 10000000 microseconds
+  if mountpoint "${MNTPOINT}"/run/udev &>/dev/null ; then
+    einfo "Unmounting bind-mount /run/udev"
+    umount "${MNTPOINT}"/run/udev
+    eend $?
+  fi
+
   umount "${MNTPOINT}"/proc
   umount "${MNTPOINT}"/sys
   umount "${MNTPOINT}"/dev/pts