[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