Bug 155857 - mkinitrd regression - boot fails to wait for USB root device
Summary: mkinitrd regression - boot fails to wait for USB root device
Status: RESOLVED FIXED
Alias: None
Product: SUSE Linux 10.1
Classification: openSUSE
Component: Basesystem (show other bugs)
Version: Beta 6
Hardware: All SuSE Linux 10.1
: P5 - None : Critical (vote)
Target Milestone: ---
Assignee: Hannes Reinecke
QA Contact: E-mail List
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-03-07 20:01 UTC by Stefan Seifert
Modified: 2006-03-10 13:42 UTC (History)
0 users

See Also:
Found By: Customer
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments
patch against mkinitrd to wait for root device on boot (716 bytes, patch)
2006-03-07 20:02 UTC, Stefan Seifert
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
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.