OK, so if the sleep 15 works, then the problem is that the system isn't waiting until all of the USB buses and devices are enumerated until continuing. This is nominally the job of /etc/init.d/udev, which is run out of /etc/rcS.d as /etc/rcS.d/S10udev. This init script runs "/sbin/udevadm trigger" and "/sbin/udevadm settle" which is supposed to wait for all of the devices nodes to be created before continuing --- and I've wasted many an hour trying to debug udev problems on laptops where it hangs forever on "/sbin/udevadm settle", to the point that I have a very _low_ opinion of udev, its utility, and certainly its robustness. In your case, the problem is "/sbin/udevadm settle" isn't waiting long enough for your USB disk to be created, and so the root filesystem is checked out of /etc/rcS.d/S20checkroot.sh, and the rest of the filesystems are checked out of /etc/rcS.d/S30checkfs.sh --- and so the "sleep 15" in checkfs.sh works around the problem. (Note: I am giving you the sequence of events out of Ubuntu Hardy; I have not tried messing with Ubuntu Interpid, and I don't know if any changes in Upstart vs. sysvinit may have changed the order in which things run.)
However, to be fair --- this is a hard problem for udev to solve, since USB by definition is designed to be hot-pluggable, and so USB devices can appear at any time. Hence, there is no guarantee when the USB hub is done enumerating, and so there isn't a good external event that would tell "/sbin/udevadm settle" that it's OK to continue. I'm not sure, but I'm guessing that it's something probably added a delay to the USB hub initialization sequence (maybe to work around some bug where a hardware device needed some settling time after the hub is powered up), and this caused the USB enumeration code to not notice your USB disk until some number of seconds later. This is only a theory, and I don't know whether or not the delay was added in user space or the kernel --- but one thing is clear; this isn't an e2fsprogs bug, but rather a bug in either the kernel or in udev, or one of udev's supporting scripts. -- fsck dies on boot with XFS USB drive https://bugs.launchpad.net/bugs/276045 You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs