[Malvern] [Fwd: Boot KNOPPIX from an USB Memory Stick.htm]

Andrew Ballantine andrewballantine at btconnect.com
Thu Jan 15 21:12:07 GMT 2004


Guys,

I really enjoyed our meeting yesterday.
Greg and phil expressed an interest in some of the things you can do
with KNOPPIX. Here is the first.

Regards,

Andrew Ballantine

 
 

________________________________________________________________________

Boot KNOPPIX from an USB Memory Stick

What you'll need:

      * Knoppix or an already stripped down version
      * USB Memory Stick 
      * Computer capable of booting from USB 
      * kernel with cloop-support 
      * syslinux 



Preparing everything:

I used Damn Small Linux for this (it's only 51MB and has fluxbox ;-),
but every other stripped down Knoppix version should do (if you have
enough space on your memory stick).
You can also strip down your own version of knoppix (see the Knoppix
Customising FAQ).




Modifying miniroot.gz:

First you need to modify the boot-image (KNOPPIX/boot.img). Mount it
(mount -o loop boot.img /mnt) and copy everything in a directory (e.g.
~/knoppix-usb/bootdisk). You need to modify linuxrc in miniroot.gz and
put the relevant usb modules in modules/usb/. 

Now use gunzip to uncompress miniroot.gz and then mount it (mount -o
loop miniroot /mnt). Open linuxrc with your editor. You need to load the
relevant usb-modules and make sure to sleep some time, because the
modules need some time to recognize your USB Memory stick. I put the
relevant parts before the scsi modules are loaded to make sure, that my
USB Memory Stick will be /dev/sda: 

# load usb-modules first (so that memory-stick becomes /dev/sda1)
# uncomment for USB 2.0 support (experimental)
#insmod -f /modules/usb/ehci-hcd.o
insmod -f /modules/usb/usbcore.o
insmod -f /modules/usb/usb-uhci.o
insmod -f /modules/usb/uhci.o
insmod -f /modules/usb/usb-ohci.o
insmod -f /modules/usb/usb-storage.o
# need to sleep because it takes some time to register things
ash -c "sleep 4"


Now you need to make sure, that your root-fs is mounted to /cdrom: I
commented out the section in linuxrc where a CDROM is searched and put
the following lines in: 

# mount /dev/sda1 (memorystick to cdrom)
FOUND_KNOPPIX="/dev/sda1"
mount -t vfat /dev/sda1 /cdrom

You can get my modified linuxrc here

Now we still need the usb modules (that aren't on the miniroot). Mount
the compressed KNOPPIX file (insmod cloop file=PATH/KNOPPIX && mount -t
iso9660 /dev/cloop /cdrom) and copy the following files under
/cdrom/lib/modules/$KERNELVERSION/kernel/drivers/usb/ to
/mnt/modules/usb/:
ehci-hcd.o uhci.o usb-ohci.o usb-storage.o usb-uhci.o usbcore.o
Now you're finished modifying miniroot. Umount it and gzip the file
again. 



Preparing the Memory Stick

Create a fat-partition on your stick and format it with mkfs.vfat
Mount the memory stick
Copy the files from ~/knoppix-usb/bootdisk/ on the memory stick (that
should include your modified miniroot.gz)
Copy the other files from your modified knoppix to the memory stick (the
most important is KNOPPIX/KNOPPIX)
The layout on your Memory Stick should look like this: 

sh-2.05b# ls -lR
.:
total 1576
-rw-r--r--    1 root     root           54 Apr 27 12:48 autorun.bat
-rw-r--r--    1 root     root           47 Apr 27 12:48 autorun.inf
-rw-r--r--    1 root     root          180 Apr 27 12:48 boot.msg
-rw-r--r--    1 root     root         1759 Apr 27 12:48 f2
-rw-r--r--    1 root     root          256 Apr 27 12:48 german.kbd
dr-xr--r--    2 root     root         4096 Apr 27 12:48 knoppix
-rw-r--r--    1 root     root         3262 Apr 27 12:48 knoppix.ico
-r--r--r--    1 root     root         7836 Apr 27 12:51 ldlinux.sys
-rw-r--r--    1 root     root        34395 Apr 27 12:48 logo.16
-rw-r--r--    1 root     root       607866 Apr 27 14:03 miniroot.gz
-rw-r--r--    1 root     root         2402 Apr 27 12:48 syslinux.cfg
-rw-r--r--    1 root     root       921602 Apr 27 12:48 vmlinuz

./knoppix:
total 50820
-rw-r--r--    1 root     root         2048 Apr 27 12:48 boot.cat
-rw-r--r--    1 root     root      1474560 Apr 27 12:48 boot.img
-rw-r--r--    1 root     root     50553629 Apr 27 04:48 knoppix
-rw-r--r--    1 root     root           27 Apr 27 12:48 mkfloppy.bat

Now you need to get the Memory Stick bootable: umount it and run
'syslinux /dev/sda1' (or /dev/sd?1 depending on your system). 



The ugly part: booting

If you're lucky your computer will boot out of the box when you select
USB ZIP as a bootdevice. Otherwise read on... 


      * You can try the other USB Boot Options (Floppy, CD-ROM,
        Harddisk), if still nothing happens you might have to enable USB
        Keyboard Support in your BIOS (needed on some motherboards with
        AMI BIOS and a Via chipset, including Epia-m and Shuttle mv42n).
      * On some broken boards (like my Epia-M...) you need to plug the
        memory stick in without any power (remove your power plug),
        otherwise the BIOS might not recognize the memory stick. 
      * If your BIOS boots from the Memory Stick, but you can see only
        sequences of ones and zeroes, you can try an alternative
        bootsector from spblinux. As the site is sometimes down you can
        download the bootsector here(Version 1.01). Just put this one on
        /dev/sda and try it out (dd if=spb2_mbr.sec of=/dev/sda). Many
        thanks to Christian Ostheimer for his great work (I didn't
        believe anymore in booting from USB, but his spblinux made it
        possible ;-) 

You can get my modified Damn Small Linux here (52 MB)

Comments to: Matthias M|ller 
________________________________________________________________________
Last update: Sun Jun 1 20:45:48 CEST 2003 

*****************************************************************
This email has been checked by the altohiway e-Sweeper Service
*****************************************************************
-- 
Andrew Ballantine <andrewballantine at btconnect.com>
Ballantine Projects Ltd
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.lug.org.uk/pipermail/malvern/attachments/20040115/2e876d71/attachment.html


More information about the Malvern mailing list