Building LFS/BLFS on USB.

Michael Shell list1 at michaelshell.org
Thu Apr 5 11:53:07 PDT 2007


On Thu, 5 Apr 2007 18:46:44 +0200
"Tijnema !" <tijnema at gmail.com> wrote:

> Somehow i even needed to mount /dev/sda to get the first(and only)
> partition on my USB stick.


It's just like a hard drive. You've got to run fdisk on it:

fdisk /dev/sda

and create a single ext2 primary partition. Then, after formatting
it:

mke2fs -v -L volume_label /dev/sda1

you can access it as /dev/sda1. The LS120/Zip drives were
the same way - sometimes people would just format the whole
disk (/dev/hdc), other times they would partition it (/dec/hdc1).

On more modern machines, the BIOS supports booting directly
to USB. However, this may require a USB drive that provides
"USB-ZIP" or "USB-HDD" boot support. Only about 30% of flash
drives have such support:

http://arstechnica.com/reviews/hardware/flash2005.ars/2

also note: http://syslinux.zytor.com/usbkey.php


If your BIOS allows you to boot directly to your USB drive, then
that would be the way to go.

If booting from BIOS requires such features as seems to be the
case, that is so bogus. IMHO, they never did properly address the
BIOS boot architecture. In my opinion, every motherboard should
have come with an internal non-volatile memory (which today could
be a slot for an SD card) right from the earliest days when 1MB
flash became affordable - the contents of which can be saved/loaded
and used as a device to hold a boot loader. That is, every motherboard
needs to have a standardized boot device we can always count on, which
is large enough to hold the needed boot loader .... I know, I know,
it's called a hard drive, but these guys can get into trouble
and need to be externally "rescued". Sigh. I just don't like the
situation where we have all of these devices that the BIOS doesn't
directly support, and have no easy way to jettison the BIOS entirely
with a full OS (Linux) which can then be used as a platform to
boot all the other OSes.

I think the LinuxBIOS project is a good approach:
http://linuxbios.org/
however, there is always the issue of whether a given motherboard
is supported.

However, I've never done a case where a small kernel is booted
from a floppy (or CD for that matter) so as to gain access to
the needed USB drivers, and then a second, larger, kernel is
invoked from the USB drive. I don't know the ways this can be
done. One is via kexec, but it looks tricky:

http://www-128.ibm.com/developerworks/linux/library/l-kexec.html

It would be nice if someone could could go over the various
approaches to booting a larger kernel (on a USB drive) from a
small initial kernel (on a floppy or CD).


  Mike Shell



More information about the blfs-support mailing list