Bug 148274

Summary: Installation on external usbdrive fails
Product: [openSUSE] SUSE Linux 10.1 Reporter: Richard S <webmaster>
Component: InstallationAssignee: Hannes Reinecke <hare>
Status: RESOLVED INVALID QA Contact: Klaus Kämpf <kkaempf>
Severity: Major    
Priority: P5 - None    
Version: Beta 3   
Target Milestone: ---   
Hardware: x86-64   
OS: SUSE Other   
Whiteboard:
Found By: Beta-Customer Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Attachments: Improved mkinitrd

Description Richard S 2006-02-05 14:00:01 UTC
I tried to install 10.1 Beta 3 on and external USB drive unfortunately there seems to be no way to add an option to grub or the initrd in order to have some delay before the system tries to boot from root partition.

Ubuntu/Debian has got an option to tell mkinitrd to add a delay to the initrd:

/etc/mkinitrd/mkinitrd.conf

DELAY=10

Since there is no delay, the boot process stops shortly before the usb module is loaded. I have uploaded a screenshot that illustrates the problem.

http://www.desipro.de/linux/Suse.jpg
Comment 1 Richard S 2006-02-06 11:41:38 UTC
Correcting my statement above, of course the boot process stops after loading the usb host und storage modules, but the problem is, that the initialization of the drive takes some seconds.

As a workaround I thought I mount the initrd and modify the linuxrc script adding some delay(sleep5 after loading usb_storage), unfortunately it looks like the initrd has changed in 10 and 10.1 and it seems like I cannot decrompress and mount the initrd. I tried with:

gunzip -c initrd-KERNELVERSION > initrd.ext2
mount -t ext2 -o loop initrd.ext2 /tmp/img

mount tells me that there is no valid fs specified.

Comment 2 Richard S 2006-02-06 22:54:42 UTC
Created attachment 66644 [details]
Improved mkinitrd

Since I had some time today I took a closer look at the problem and fixed it.
I modified mkinitrd of Suse 10.1 Beta 3 so mkinitrd can add some delay to the init script. It introduces a new commandline switch "-U" , if mkinitrd is called with "-U" flag the script will add sleep 10 after modprobe usb_storage. This fixes the problem that usbdrives aren't initialized before the init process tries to continue from root device. 
To make this convenient for the user it would be a good idea to add a checkbox to grub installer dialog that switches on -U for mkinitrd.
Comment 3 Hannes Reinecke 2006-02-16 09:30:40 UTC
Well, actually you can already pass the kernel commandline option 
'udev_timeout=XX' to the initrd; this will set the internal timeout for the root device to the specified value.