trouble booting -current from an USB hard disk (kernel 3.10.14)
I installed Slackware-current dated Thu Oct 3 02:07:13 UTC 2013 on an external USB hard disk.
But it fails to boot. / being an ext4 partition I made an initrd with modules ext4 and usb-storage included, and edited /boot/initrd-tree/wait-for-boot to include 30 instead if 1. When booting it waits 30 seconds but still can't mount / (designated by LABEL=slack in lilo.conf and fstab). After the message from init: "ERROR: No /sbin/init found on rootdev (or not mounted). [...]", cat /proc/partitions doesn't show USB hard disk's partitions, only those on /dev/sda (laptop's internal hard disk). I built another kernel with ext4 and usb-storage built-in to avoid using an initrd, with "rootedelay=20" in lilo.conf. The kernel says it will wait 20 seconds but after this delay I get a kernel panic. During that time I can unplug and plug in again the USB HDD and I'm sure that it had enough time to settle though. Any clue appreciated. |
Quote:
|
Quote:
|
I have an 500GB USB Harddisk, which I use as Universal Boot From Every Lame Computer Linux, who in reality, is an standard Slackware (today) current, who use a standard generic smp kernel and an initrd generated with:
Code:
KVERSION=3.10.14-smp BUT, the interesting thing is there: the real USB driver now, on the current kernels, is not ehci-hcd but the ehci-pci. PS. No, I do not have to use the i486 kernel in no computer. And yes, I consider the i486 kernel as historical remnant, like any human have an tail remnant. |
Didier Spaier,
try to add ums_realtek and usb_storage to KMODULES. |
Quote:
Yes, full steam ahead towards more complexity... :( |
Success
Long story short:
Code:
su Thanks to philanc, bormant and Darth Vader. Hope this helps some in a similar situation. |
Didier
Certainly helped me in Slackware 14.1! On Slackware 13.1, 13.37 and probably a few before that I just added rootdelay=10 to the kernel. This allowed me to boot a external USB hard drive. I missed out on 14.0 and jumped straight into 14.1 and the rootdelay trick failed to work even though it was still working for 13.37. I then realized that perhaps now I needed an initrd. I played around with building an initrd with modules ehci-hcd, ohci-hcd, uhci-hcd and usb-storage and got all sorts of bizarre problems whilst booting. Then I fell upon this thread with your solution, worked a treat for me. So thanks again and to philanc, bormant and Darth Vader. Alex |
any info about a filename I can edit manually?
Quote:
KMODULES="usb-storage:xhci-hcd:ehci-hcd:ehci-pci:ohci-hcd:usbhid:mbcache:jbd2:ext4" ?? Thanks for the help everyone, it helps me as well, gave you points for the info as a vote... Cheers, Dumdadum |
If you ran mkinitrd then the modules you included are by default in /boot/initrd-tree/lib/modules.
The line Code:
KMODULES="usb-storage:xhci-hcd:ehci-hcd:ehci-pci:ohci-hcd:usbhid:mbcache:jbd2:ext4" Code:
man mkinitrd |
Quote:
Cheers, Dumdadum |
Quote:
|
Re initrd - I believe we have been through this many times and it still crops up.
1) If you boot an external/usb-disk using label= or uuid=, you _do need_ an initrd 2) When you first have an initrd, you can easily use the generic kernel. The huge kernel will still work fine, but it will come up with some error messages (about module allready loaded) which may be disconcerting to some 3) If you know beforehand which device your external/usb-disk will be, you should not need an initrd - however, unless you boot from the same machine with exactly the same hardware each time, this will probably not be the case (especially these days when parallel-running scripts are getting more popular) So, _my_ preference (and I stress the word _my_ - other people may have other experiences) would be: a) Make an initrd and boot using label= or uuid= b) Edit /etc/fstab to also use label= or uuid= Just my 2c-worth |
All times are GMT -5. The time now is 09:31 PM. |