Bugzilla – Bug 148274
Installation on external usbdrive fails
Last modified: 2006-02-16 09:30:40 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
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.
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.
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.