Bug 115403

Summary: cannot boot from external usb harddrive
Product: [openSUSE] SUSE LINUX 10.0 Reporter: alex f <acid.punk>
Component: HotplugAssignee: Steffen Winterfeldt <snwint>
Status: RESOLVED DUPLICATE QA Contact: Klaus Kämpf <kkaempf>
Severity: Normal    
Priority: P5 - None CC: aj, jsrain, postadal
Version: Beta 4   
Target Milestone: ---   
Hardware: Other   
OS: All   
Whiteboard:
Found By: Other Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Attachments: tar -cfj logs.tar.bz2 /var/log/*

Description alex f 2005-09-06 12:38:57 UTC
I downloaded cd1 from suse 10 beta4 and burnt it to install it onto an external
usb harddisk. Installation worked well, I chose to install the bootloader on the
external disk (/dev/sda) as I didn't want the suse installation to touch my
internal harddisk at all. Sadly this doesn't seem to work, the bootloader does
come up and starts the kernel, but at some point booting stops as there are no
/dev/sda* files. It says something like "waiting for /dev/sda2 to appear ...
failed, dropping to shell". At this shell I cannot do much, but verify with
"echo /dev/*" that there is no /dev/sda*. Some lines upwards there are dozens of
the same error message related to udev failing in some main context or so. I'm
sorry that I cannot provide the exact error message, if this is needed I'll
reproduce and post again. Or any other Info that is needed.

The PC is a Toshiba Satellite M30X with 1,5 GHz Pentium-M.
Comment 1 Klaus Kämpf 2005-09-07 05:56:21 UTC
Sounds more like a hotplug thing. 
 
 
Comment 2 Klaus Kämpf 2005-09-07 05:56:52 UTC
Alex, please provide full logs  
Comment 3 Hannes Reinecke 2005-09-07 06:20:45 UTC
Hmm. I wasn't aware that booting from external USB was a done thing.

Anyway, to get it up and running you _have_ to make sure that the appropriate
modules are listed in /etc/sysconfig/kernel:INITRD_MODULES (or specified via the
-m switch when running mkinitrd by hand).

The following modules should be listed there:

[uoe]hci_hcd
usb_storage

and of course the appropriate filesystem module.

Klaus,aj: do we support booting from USB devices?
Comment 4 Klaus Kämpf 2005-09-07 06:54:28 UTC
Theoretically, yes ;-) 
I still have to find a system which supports this in its BIOS. 
Comment 5 alex f 2005-09-07 10:28:57 UTC
Which logs and how do I get them? I could only provide the log from the
installation I guess, but then I'd had to do the installation again. When
booting the installed system on the external disk up till the point where it
fails there is no /var and thus no log. I've handwritten down the error messages
though, so:

udev: main: action, subsystem oder devpath missing

udev: run_program: exec of program '/sbin/udev.mount.sh' failed

I get this multiple times till finally:

resume device /dev/sda1 not found  ignoring

Waiting for device /dev/sda2 to appear: .... not found -- exiting to /bin/sh

There are only these two partitions, sda1 is swap and sda2 is root. I can
imagine how the initrd is missing the modules listed in comment #3, but I failed
to create a new initrd. Both when booting from the install cd and from the
installed system I didn't find a mkinitrd or mk_initrd. When booted from the
install cd /etc/sysconfig/kernel is on a write-only fs and when booted from the
installed system there is no /etc/sysconfig
Comment 6 Hannes Reinecke 2005-09-07 11:18:56 UTC
Just to get this straight:

The installed system in /dev/sda2 did _not_ contain /sbin/mkinitrd?
Can you chroot into the installed system and check whether the package mkinitrd
is installed there?

Same goes for the directory /etc/sysconfig.
If _that_ is not present the installation is pretty much unuseable.
Comment 7 alex f 2005-09-07 14:52:53 UTC
Created attachment 49073 [details]
tar -cfj logs.tar.bz2 /var/log/*

Well since booting that installed system on sda2 doesn't succeed and I'm
dropped into a shell all I have there is the stuff from the initrd.

The hint to chroot worked. There I found mkinitrd and /etc/sysconfig and was
able to make a new initrd with the modules you listed. When trying to boot with
the new initrd, I discovered a new problem.

At some point the boot process freezes and I have to hard reset. Maybe this is
related to X11 trying to start up? I don't know. You can look at boot.msg in
the attached tarball. The last message before it freezes is:

Running /etc/init.d/boot.local
Comment 8 alex f 2005-09-12 18:46:18 UTC
It's the same with suse 10 rc1. The initrd is missing the *hci_hcd and
usb_storage modules, so booting from external usb disk fails.
Comment 9 Hannes Reinecke 2006-02-06 15:57:19 UTC
Nothing to do with the initrd. If the modules are not in /etc/sysconfig/kernel:INITRD_MODULES the initrd doesn't include them.

And mkinitrd certainly does not _write_ this line.
Steffen, who does?
Comment 10 Thomas Fehr 2006-02-06 15:59:59 UTC
AFAIK this is a duplicate of #66733 and should work with 10.1 beta#3.

*** This bug has been marked as a duplicate of 66733 ***
Comment 11 Andreas Klein 2006-02-06 16:21:55 UTC
(In reply to comment #0)
> I downloaded cd1 from suse 10 beta4 and burnt it to install it onto an external
> usb harddisk. Installation worked well, I chose to install the bootloader on the
> external disk (/dev/sda) as I didn't want the suse installation to touch my
> internal harddisk at all.

That's what I always did in https://bugzilla.novell.com/show_bug.cgi?id=66733.

> Sadly this doesn't seem to work, the bootloader does
> come up and starts the kernel, but at some point booting stops as there are no
> /dev/sda* files. It says something like "waiting for /dev/sda2 to appear ...
> failed, dropping to shell". 

That's just a timount problem. Wait a few seconds and type
exit
Booting will continue and everything is fine ( I was able to install all betas this way),
Comment 12 Petr Ostadal 2006-03-13 10:34:43 UTC
Ok I had same problem. The thing with  'exit' is bug or feature? (could we add some timeout and do it automatically? Or everyone have to serach this bugreport to findout this magic word ;) )