D&C GLug - Home Page

[ Date Index ] [ Thread Index ] [ <= Previous by date / thread ] [ Next by date / thread => ]

Re: [LUG] Newbie introduction and request for help

 

On Tue, 05 Apr 2005 23:40:51 +0100
Julian Hall wrote:

Martinus Scriblerus wrote:

Hi.

The drive is connected by a USB 2.0 port.

Hi Martin,

I'd hazard a guess this is probably a BIOS issue rather than Linux.  
Does your BIOS allow booting from a USB device, and if so is it 
enabled?  I could be totally wrong, but I'd make sure the hardware can 
do what you want before worrying about whether the software can drive it.

Kind regards,

Julian

You can actually get external harddrives to boot Linux even without BIOS support... 
but it's not always easy!  You have to play around with the black art that is 
"initial ram disks" (initrd.gz) so that the USB/Firewire/Whatever modules are loaded 
first.  I have played with this a time-or-two, but I've never got it to work - 
mainly because it was only a curiosity for me and I've not needed to get it to work, 
so I haven't tried that hard with it.

Basically, what I learnt was that in order to boot a Linux distro that requires 
modules to be loaded before hand, you need an initrd.  Think of it like this.  You 
kernel has support for IDE/SCSI, but you have / on an USB drive.  You kernel doesn't 
directly support USB, it'd need to load the USB modules to read it... but the USB 
modules needed to read USB drives are stored on an USB harddrive.  Chicken and egg.  
So, what you do is you create an initial ram disk that contains a small kernel and 
the necessary modules to be able to find the proper kernel - so it'd contain all the 
usual support (but not as modules, presumably) plus support for USB harddrives.  
Once you've created it you save it in your /boot (or your common /boot if going 
Neil's way - which is no bad thing since it can actually simplify matters).  You 
then edit your bootloader's config file and add an entry for "Distro 3" (you get the 
idea) pointing to the USB harddrive, but with an entry for *initrd = /boot/distr
o3.initrd.gz*.

It takes some fiddlology, but there's no reason that it shouldn't work.  However, it 
will be a local setting thing only.  If you take the harddrive to another computer, 
it won't boot on that one.  For that you do need USB booting BIOS (or a boot 
floppy... but that's another story :D).

Grant.
-- 
Artificial intelligence is no match for nuratal stidutipy.

--
The Mailing List for the Devon & Cornwall LUG
Mail majordomo@xxxxxxxxxxxxx with "unsubscribe list" in the
message body to unsubscribe. FAQ: www.dcglug.org.uk/linux_adm/list-faq.html