Bug 155857

Summary: mkinitrd regression - boot fails to wait for USB root device
Product: [openSUSE] SUSE Linux 10.1 Reporter: Stefan Seifert <nine>
Component: BasesystemAssignee: Hannes Reinecke <hare>
Status: RESOLVED FIXED QA Contact: E-mail List <qa-bugs>
Severity: Critical    
Priority: P5 - None    
Version: Beta 6   
Target Milestone: ---   
Hardware: All   
OS: SuSE Linux 10.1   
Whiteboard:
Found By: Customer Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Attachments: patch against mkinitrd to wait for root device on boot

Description Stefan Seifert 2006-03-07 20:01:27 UTC
SUSE 10.0 waited for the root device to appear, which was important if the root device was an USB hard disc, as they take a few seconds to come up.
In SUSE 10.1 mkinitrd was changed to omit this and so the system is unable to boot after updating.

Interestingly the function to wait was just renamed from udev_wait_for_device to udev_check_for_device and is still there, unused. After modifying it to accept a full device path instead of a device file name and using it my system boots again for an otherwise pretty smooth upgrade.
Comment 1 Stefan Seifert 2006-03-07 20:02:47 UTC
Created attachment 71632 [details]
patch against mkinitrd to wait for root device on boot
Comment 2 Hannes Reinecke 2006-03-09 08:15:49 UTC
Can you add 'udev_timeout=20' to the kernel commandline and see whether it boots okay?
Comment 3 Stefan Seifert 2006-03-09 08:24:02 UTC
Of course I can try it in about 11 hours, when I'm at home. But I seriously doubt that it would help, because even with the default timeout of 10 seconds, no one's waiting for these USB events to finish because they happen after the last wait call and before trying to mount the root device.
It works perfectly with the additional udev_check_for_device call, which only has to wait for about one second.
Comment 4 Stefan Seifert 2006-03-10 07:30:00 UTC
I can confirm now, that udev_timeout=20 does not change anything. The corresponding messages are:

Waiting for udev to settle: usb 2-7.2: new high speed USB device using ehci_hcd and address 5
usb 2-7.2: new device found, idVendor=0424, idPRoduct=223a
... (some more lines about my USB hard disk followed by my USB mouse)
. ok
Loading jbd
Loading ext3
Waiting for udev to settle: . ok
not found -- exiting to /bin/sh
$   Vendor: ST380021 Model: A           Rev: 0811
Type: DorectAccess                  AMSO SCSO revosopm_ ßßSCSO devoce sda_ 1563ß1488 512-byte hdwr sectors (80026 MB)
....

As told, the USB device comes up right after the check for the root device happens. The attached patch fixes this problem.
Comment 5 Hannes Reinecke 2006-03-10 13:42:47 UTC
Ok, you got me persuaded. New mkinitrd package submitted, will be on Beta8.