Comment 4 for bug 244926

Revision history for this message
Scott James Remnant (Canonical) (canonical-scott) wrote :

diff -Nru /tmp/eAxeH4D1AR/initramfs-tools-0.85eubuntu36/scripts/local /tmp/QfAijt3GjD/initramfs-tools-0.85eubuntu39.2/scripts/local
--- initramfs-tools-0.85eubuntu36/scripts/local 2008-04-09 15:18:14.000000000 +0100
+++ initramfs-tools-0.85eubuntu39.2/scripts/local 2008-07-02 16:44:28.000000000 +0100
@@ -9,7 +9,7 @@

  # If the root device hasn't shown up yet, give it a little while
  # to deal with removable devices
- if [ ! -e "${ROOT}" ] || ! /lib/udev/vol_id "${ROOT}" >/dev/null 2>&1; then
+ if [ ! -e "${ROOT}" ] || ! /lib/udev/vol_id "${ROOT}" >/dev/null 2>&1 || ! /sbin/udevadm settle; then
   log_begin_msg "Waiting for root file system..."

   # Default delay is 180s
@@ -23,7 +23,7 @@
   fi

   slumber=$(( ${slumber} * 10 ))
- while [ ! -e "${ROOT}" ] || ! /lib/udev/vol_id "${ROOT}" >/dev/null 2>&1; do
+ while [ ! -e "${ROOT}" ] || ! /lib/udev/vol_id "${ROOT}" >/dev/null 2>&1 || ! /sbin/udevadm settle; do
    /bin/sleep 0.1
    slumber=$(( ${slumber} - 1 ))
    [ ${slumber} -gt 0 ] || break
@@ -40,7 +40,7 @@
  fi

  # We've given up, but we'll let the user fix matters if they can
- while [ ! -e "${ROOT}" ] || ! /lib/udev/vol_id "${ROOT}" >/dev/null 2>&1; do
+ while [ ! -e "${ROOT}" ] || ! /lib/udev/vol_id "${ROOT}" >/dev/null 2>&1 || ! /sbin/udevadm settle; do
   echo " Check root= bootarg cat /proc/cmdline"
   echo " or missing modules, devices: cat /proc/modules ls /dev"
   panic -r "ALERT! ${ROOT} does not exist. Dropping to a shell!"