[syslinux] Boot from CD -> system + data on USB storage

Luciano Miguel Ferreira Rocha strange at nsk.no-ip.org
Wed Nov 17 14:49:17 PST 2004


On Fri, Nov 12, 2004 at 04:35:10PM +0100, Marc Haisenko wrote:
> On Friday 12 November 2004 10:48, you wrote:
> > Hi,
> > I am looking for a solution to boot MY system on any PC.
> >
> > To store most of the system and all of my data I want to use an USB
> > storage (in my case an external USB harddisk (2.0 capable)).
> > Since booting off an USB device is not an universal thing I would prefer
> > to have a boot disk with a minimal system - just enough to load most
> > (all?) of the system from the attached USB device.
> >
> > Is this an easy thing - are there ready to use solutions out there?
> >
> > Thanks in advance.
> 
> Problem is the USB part...  ISOLINUX does not know a thing about USB, AFAIK, 
> as it would require some drivers to do so (the BIOS does some tricks to boot 
> from USB, IIRC).
> 
> You could do the following: have ISOLINUX, a kernel and an initrd on the CD 
> and the rest of the system on USB. The kernel could either have USB support 
> built in or have initrd load the modules. The initrd then searches all SCSI 
> partitions for your root partition (e.g. by having a file "this_is_my_root" 
> on that partition, and the initrd searches for a partition that has this file 
> on it). When you've found the partition you set the device number 
> in /proc/sys/kernel/real-root-dev.

The initrd created by RedHat Linux or Fedora Core searches the root
filesystem by label, so it is only needed to define an unique label to
the root filesystem.

> I've written such an linuxrc in assembler that does just this for IDE. It 
> probes all IDE partitions until it finds one that has a "/sbin/init" on it 
> and then sets real-root-dev accordingly. I've attached the source. You 
> need /dev/console and /dev/hd* to be in the initrd as well and an empty 
> directory /proc.  My source is surely not very efficient but you should be 
> able to adapt it easily (you only need to change the strings at the top of 
> the source).

Not to other archs ;)

> Problem is that if you want to upgrade your kernel you have to burn another 
> CD.

True, so a cd-rw would be the best choice. I tried kexec and loadlin but
the booted kernel didn't like the initialization of usb hardware by the
previous one or the DOS USB drivers.

Regards,
Luciano Rocha




More information about the Syslinux mailing list