Knoppix USB
Aus
Inhaltsverzeichnis |
Knoppix von einem USB-Stick booten
Allgemeine Beschreibung
Dies ist eine Übersetzung von http://rz-obrian.rz.uni-karlsruhe.de/knoppix-usb/
Warum ein Memory Stick
Normalerweise startet ein Betriebsystem von der Platte. Die weiteren Programme die der Benutzer für die Arbeit benutzt, werden meistens ebenfalls so gestartet. Mit der Linux-Distribution Knoppix ist es erstmalig möglich, ein vollwertiges System nur von der CD zu starten und laufen zu lassen. Officeprogramme, Grafik- und Musikprogramme befinden sich ebenfalls auf dieser CD.
Da heutzutage Memory Sticks recht leistungfsfähig sind und neuere Rechner von USB booten können hat KPH eine solche Linux-Distribution basisrend auf Knoppix erstellt. Sie nennt sich KPHUSB und benötigt einen USB-Stick, mit mindestens 1GB Speicher oder mehr, sowie einen Rechner, der von USB gebootet werden kann. Sie basiert auf Debian und Knoppix.
Was du brauchst:
Knoppix oder eine bereits verkleinerte Version USB Memory Stick Einen Computer, der von USB booten kann Einen kernel mit cloop Unterstützung syslinux
Alles vorbereiten:
Ich habe DamnSmall Linux benutzt (Es ist nur 51 MB groß und hat fluxbox), aber jede andere "verkleinerte" Version von Knoppix sollte es auch tun (wenn du genug Platz auf dem Memory Stick hast). Du kannst zudem deine eigene "verkleinerte" Version von Knoppix erstellen (siehe Knoppix Customing FAQ )
miniroot.gz modifizieren:
Als erstes musst du das boot Image (KNOPPIX/boot.img) verändern. Hierzu mountest du es (mount -o loop boot.img /mnt) und kopierst alles in ein Verzeichnis (z.B. ~/knoppix-usb/bootdisk). Nun musst du die linuxrc in miniroot.gz verändern und alle relevanten USB Module in modules/usb/ zur Verfügung stellen: Du benutzt gunzip um miniroot.gz zu entpacken und mountest es dann (mount -o loop miniroot /mnt). Öffne dann die linuxrc mit deinem Editor. Die relevanten usb Module müssen hier eingetragen werden, zudem muss sichergestellt werden, dass das System genug Zeit für das Laden hat, da diese Module einige Zeit benötigen, um deinen USB Memory Stick zu erkennen. Ich habe die relevanten Veränderungen vor die SCSI Module gestellt, um sicher zu gehen , dass mein Memory Stick /dev/sda1 sein wird:
- ERST usb-module laden
- Für USB 2.0 support (experimental) auskommentieren:
- 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
- Wartezeit
ash -c "sleep 4"
Nun stellst du sicher, dass das root-fs nach /cdrom gemountet wird: Ich habe die Sektion der linuxrc auskommentiert, in der eine CDROM gesucht wird und habe die folgenden Zeilen eingefügt:
- mount /dev/sda1 (memorystick to cdrom)
FOUND_KNOPPIX="/dev/sda1"
mount -t vfat /dev/sda1 /cdrom
Du kannst meine linuxrc hier bekommen.
Nun brauchen wir noch die USB Module (die nicht auf der miniroot sind). Hierzu mounte diekomrimierte Knoppix Datei (insmod cloop file= PATH/KNOPPIX && mount -i iso9660 /dev/cloop/cdrom) und kopiere die folgenden Dateien aus /cdrom/lib/modules/$KERNELVERSION/kernel/drivers/usb/ nach /mnt/modules/usb/:
ehci-hcd.o uhci.o usb-ohci.o usb-storage.o usb-uhci.o usbcore.o
Jetzt ist die Modifizierung von miniroot abgeschlossen. Unmounte es und komprimiere die Datei wieder (gzip).
Den Memory Stick vorbereiten:
Erstelle eine FAT - Partition auf dem Stick und formatiere sie mit mkfs.vfat Mounte den Memory Stick Kopiere die Dateien von ~/knoppix-usb/bootdisk/ auf den Memory Stick (Das schlieest deine veränderte miniroot.gz ein) Kopiere die anderen Dateien von deinem modifiziertem knoppix auf den Stick (am wichtigsten ist KNOPPIX/KNOPPIX) Die Struktur des Sticks sollte dann wie folgt aussehen:
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
Jetzt musst du den Memory Stick bootbar machen: Umountet es und führt "syslinux /dev/sda1" aus (oder /dev/sd?1, abhängig von eurem System).
Der eklige Teil: Booten
Wenn du Glück hast wird dein Computer sofort booten wenn du USB ZIP als boot device wählst. Ansonsten lies weiter... Du kannst die anderen USB Boot Optionen versuchen (Floppy, CD-ROM, Harddisk), wenn trotzdem nichts passiert, musst du evtl. die USB Keyboard Unterstüzung im BIOS aktivieren (auf einigen Motherboards mit AMI BIOS und VIA Chipsatz nötig, einschliesslich EPIA-m und Shuttle mv42n). Bei einigen fehlerhaften Boards (wie dem Epia-m) musst du den Memory Stick ohne Stromzufuhr anschliessen (die Stromzufuhr entfernen), sonst könnte das BIOS den Stick nicht erkennen.
Wenn dein BIOS vom Stick bootet, du aber nur Sequenzen von Einsen und Nullen siehst, kannst du einen alternativen Bootsektor von spblinux versuchen. Einfach nach /dev/sda packen und ausprobieren (dd if=spb2_mbr.sec of=/dev/sda). Vielen Dank an Christian Ostheimer für diese großartige Arbeit (Ich habe schon nicht mehr an das Booten von USB geglaubt, aber spblinux machte es möglich)
Du kannst mein modifiziertes DamnSmall Linux hier bekommen. __________________
KPHUSB fertig
Nachdem oben der allgemeine Weg beschrieben wurde - hier jetzt der ganz einfache Fall. Dies ist ein fertiger 1GB file. Nur auf den Stick kopieren und fertig! KPHUSB
A simple way to get Knoppix on the usb memory. Downbload the image and make a dd to the stick.