Das CD basierte KNOPPIX Life System (von Klaus Knopper) ist eine feine Möglichkeit zu sehen wie weit die Kernel Unterstützung für neue Hardware inzwischen gediehen ist, um Wartungsarbeiten an einem (Windows-)System auszuführen oder um einige der auf der CD enthaltenen Programme auszuprobieren. Also gibt es eine Reihe guter Gründe um KNOPPIX so auf die Festplattte zu bringen dass man es bei Bedarf schnell zum Laufen bekommt.
Dieser ab KNOPPIX 5.1 zutreffende Text entstand weil es zwar viele Anleitungen im Internet gibt wie man KNOPPIX auf Festplatte bringt (installiert), aber diese sind oft zu umständlich oder beziehen sich auf ältere Versionen. Es geht hier nicht um eine volle Installation mit eigener KNOPPIX-Partition sondernd schlicht darum wie man das KNOPPIX Life System schnell und einfach von einer Festplatte bootet.
KNOPPIX verwendet ein komprimiertes Dateisystem und startet normalerweise von CD einen Kernel der darauf zugreift. Ziel ist es hier die Dateien der CD so auf die Festplatte zu bringen dass man die CD nicht mehr braucht. Die Daten stehen dabei in einem Gast-Dateisystem von Windwos (NTFS oder FAT) oder von Linux. Zum Booten nehmen wir den GRUB Bootloader (Grub GNU Project) oder SYSLINUX (von H. Peter Anvin).
Was Wechselmedien betrifft wird hier nur auf USB-Festplatten eingegangen, aber die Informationen sollten auch auf USB-Sticks und IEEE1394 Geräte zutreffen. Achtung: wenn das Medium keine normale Partition Tabelle hat (USB-Stick als Super Floppy formattiert) sind Modifikationen nötig, auf die hier aber nicht eingegangen wird.
In allen Fällen wird von der CD genau das
Verzeichnis KNOPPIX
in das Gast-Dateisystem kopiert.
Dabei solte das Zielverzeichnis unbedingt KNOPPIX
(in
Grossbuchstaben!) heissen. Wichtig darin ist vor Allem die rund 600
MByte grosse Datei Namens KNOPPIX
(die das eigentliche
komprimierte KNOPPIX System enthält).
Im CD Verzeichnis /boot/isolinux
befindet sich ein Teil der Bootmechanik. Die wichtigen Dateien
für uns sind:
linux # der KNOPPIX Kernel der vom Bootloader geladen werden soll minirt.gz # RAM-Disk mit Treibern und dem Bootscript
Diese beiden Dateien werden Sie später in das
Gast-Dateisystem kopieren - das eigentliche boot
Verzeichnis oder den Rest der CD brauchen wir nicht. Je nach Typ
des Gast-Dateisystems werden wir den GRUB Bootloader oder SYSLINUX
einrichten. Ausser bei Verwendung von SYSLINUX zum Booten von einer
FAT formattierten USB Platte kopieren Sie die beiden Bootdateien
jeweils nach /KNOPPIX
auf der Zielpartition.
Hinweis: um beim
Ausprobieren Zeit zu sparen können Sie die simple virtuelle
Maschine qemu (von Fabrice Bellard) z.B.
aus dem Debian Archiv einsetzen. Ein Aufruf zum Testen einer USB
Installation ist dann z.B.: qemu /dev/sdb1
. Qemu
benötigt keinerlei Konfiguration und ist schnell installiert
oder später wieder entsorgt. Achtung
Falle: rufen Sie ein umount für die
Platte auf bevor Sie auf diese über qemu
zugreifen!.
Hier wird ein Standard GRUB als Bootloader
eingesetzt (GRUB sollte bereits installiert sein, wenn nicht kann
dies von der KNOPPIX CD über grub-install
geschehen).
Sie kopieren von der CD das KNOPPIX
Verzeichnis in das Wurzelverzeichnis (/
) der
Zielpartition. Auch die Boot-Dateien linux
und
minirt.gz
kopieren wir direkt in dieses neu angelegte
Verzeichnis. In unsere bestehende GRUB Konfiguration
(menu.lst
) fügen wir folgende Auswahl ein:
# Achtung: (hd0,1) ist nur ein Beispiel, setzen Sie Ihre Partition ein!
title Knoppix booten
root (hd0,1)
kernel /knoppix/linux ramdisk_size=100000 init=/etc/init lang=de quiet noprompt noeject
initrd /knoppix/minirt.gz
boot
Weiter unten im Text werden als Beispiele noch
einige Boot Optionen genannt, die Sie an die kernel
Zeile anfügen könnten.
Hinweis:
GRUB braucht nur den MBR einer
Platte und überschreibt nicht den Bootsektor der Partition.
Die Aufgabe den Bootloader zu finden übernimmt das
Helferprogramm /boot/grub/xxx_stage1_5
. Die Position
der entsprechenden Datei wird von grub-install
ermittelt und in den MBR gepatched.
Es beginnt gleich mit einer Verzweigung: wenn Windows sowieso über GRUB gestartet wird findet besser Variante 1 Anwendung (siehe oben). Hier hingegen geht es um den Fall dass Windows über seinen eigenen Bootloader aus dem Bootsektor der Windows Partition gestartet wird und dass dieser NTLDR dann auch unser KNOPPIX zu Auswahl anbieten soll.
Um alternativ zu Windows KNOPPIX starten zu können setzen wir eine spezielle GRUB Version aus dem Projekt grub4dos ein (die entgegen einer grämeligen Bemerkung in der kryptischen Dokumentation auch unter Windows XP ... Windows 2003 mit NTFS läuft). Ein Zip-Archiv mit der nötigen Datei kann unter folgender URL geladen werden: grub4dos.sourceforge.net
Aus diesem Archiv können wir unter Windows
einfach die Datei grldr
in das Wurzelverzeichnis der
Windows Boot Partition extrahieren. Sie müssen jetzt noch zwei
Änderungen vornehmen (1) die Windows Datei
boot.ini
editieren und (2) für
GRLDR die Datei menu.lst
erstellen:
Normalerweise ist boot.ini
eine
versteckte Datei, die wir zu einer normalen Datei machen sollten
bevor wir sie editieren können (aus dem Explorer z.B.). Sie
fügen eine Zeile ein die GRUB aufruft (beim
nächsten Boot wird Windows NTLDR dann ein
Auswahlmenü anzeigen, von wo aus wahlweise Windows oder
KNOPPIX gebootet werden kann):
; boot.ini - dies ist nur ein Beispiel ... VORSICHT ...
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows 2003" /noexecute=optout /fastdetect
c:\grldr="Grub Loader for KNOPPIX"
GRLDR selber kann auch ein
Menü anzeigen, soll das aber bei uns nicht. In unserem
einfachen Fall sieht die im Wurzelverzeichnis von Windows stehende
menu.lst
Datei von GRUB dann so
aus:
timeout 2 hiddenmenu title KNOPPIX root (hd0,0) kernel /KNOPPIX/linux ramdisk_size=100000 init=/etc/init lang=de quiet noprompt noeject initrd /KNOPPIX/minirt.gz boot
Wenn wir KNOPPIX wie unter Grundlagen beschrieben wurde auf die Windows Partition kopiert haben können wir den Rechner neu starten, der Windows Bootloader führt dann in ein Menü und wenn wir dort KNOPPIX wählen wird unser GRUB bemüht um KNOPPIX zu booten.
Weitere Bootoptionen können an die
kernel
Zeile angehängt werden, z.B für die
Bildschirmauflösung:
vga=791 screen=1280x1024
oder (um den Rechner mit dem Ein-/Ausschalter herunterfahren zu
können):
apm=power-off
Achtung Falle: Im
Gast-Dateisystem müssen die Dateinamen des KNOPPIX
Verzeichnisses und der des komprimierten KNOPPIX Images gross
geschrieben sein, also: KNOPPIX/KNOPPIX
. Dies ist
für Filesysteme mit voller Gross/Kleinschreibsemantik wie
NTFS sehr wichtig. Auf einem FAT
Filesystem würde die Grosskleinschreibung (des Verzeichnisses)
z.B. ignoriert. Auch ntldr ignoriert
Gross/Kleinschreibung.
Hinweis: Der Code im Windows MBR sucht die Partition Tabelle (die auch im MBR steht) nach einer als aktiv gekennzeichneten Partition ab und lädt von dieser Partition die ersten 512 Byte die wiederrum Code enthalten um den NTLDR Bootloader zu finden.
Es sei vorweg gesagt dass ich diesen Schritt mit
meiner Hardware nicht richtig testen konnnte weil der KNOPPIX
Kernel (2.6.19) zwar korrekt von meiner USB-Festplatte bootet, aber
dann ebendiese Festplatte normalerweise nicht sieht. Immerhin, im
Prinzip geht es (wie man auch mit qemu
ausprobieren
kann), und das auf zwei Wegen:
Achtung Falle: GRUB wird bei seiner Installation den MBR (Master Boot Record) der Festplatte überschreiben. Sichern Sie ggf. vorher den MBR mit dem dd Programm (die Bytes 440 bis 511 enthalten übrigens die Partition Tabelle):
# dies ist nur ein Beispiel, setzen Sie Ihren Plattennamen ein!
sudo dd if=/dev/sdb of=mbr_save bs=440 count=1
Für den Linux-Kenner ist die Verwendung von
GRUB am einfachsten und stellt auch den
allgemeinsten Fall dar. Wenn die USB Platte unter einem gebooteten
KNOPPIX /dev/sdb
heisst, sagt man z.B einfach:
# dies ist nur ein Beispiel, setzen Sie Ihren Plattennamen ein!
sudo mount /media/sdb1 -o remount,rw
sudo grub-install --root-directory /media/sdb1 /dev/sdb
Unter /media/sdb1
erzeugt man eine
einfache menu.lst
Datei und installiert KNOPPIX wie
oben unter Grundlagen beschrieben:
timeout 5 hiddenmenu title KNOPPIX root (hd1,0) kernel /KNOPPIX/linux ramdisk_size=100000 init=/etc/init lang=de quiet noprompt noeject initrd /KNOPPIX/minirt.gz boot
Beim meinem Rechner kann ich beim Booten die F8 Taste drücken, erhalte von BIOS ein Boot Menü in dem auch die Weschselplatte steht und kann von hier den GRUB der Wechselplatte starten.
Falls die Platte mit einer FAT Variante formattiert wurde kann SYSLINUX eingesetzt werden. Während GRUB fett ist und eigentlich immer funktioniert, ist SYSLINUX schlank und funktioniert manchmal. Die Platte braucht einen intakten MBR denn SYSLINUX selber installiert keinen. Haben Sie Ihren Boot Record gesichert (siehe 3.1)? Eventuell können Sie dann sagen:
# dies ist nur ein Beispiel, setzen Sie Ihren Plattennamen ein!
sudo if=mbr_save of=/dev/sdb bs=440 count=1
Mounten Sie nun (im Beispiel)
/dev/sdb1
und erzeugen Sie im Wurzelverzeichnis der
Partition ein Verzeichnis für die Bootmechanik. Leider kann
SYSLINUX beim Booten nur auf das /
(Root-) Verzeichnis oder auf syslinux
zugreifen. Sie
kopieren also den KNOPPIX Kernel und die RAM-Disk nach
syslinux
:
sudo su # mit Superuser Rechten ... # nur ein Beispiel, setzen Sie Ihre CD- und Plattennamen ein! mount /dev/sdb1 /media/sdb1 mkdir /media/sdb1/syslinux cd ihre_knoppix_cd/boot cp linux minirt.gz /media/sdb1/syslinux umount /dev/sdb1 ^D
Der SYSLINUX Bootloader ist nun einfach z.B. von der KNOPPIX CD zu installieren:
# dies ist nur ein Beispiel, setzen Sie Ihren Plattennamen ein!
sudo syslinux -d syslinux /media/sdb1
Und Sie erstellen letztlich eine Konfiguration
für SYSLINUX (in
syslinux/syslinux.cfg
):
LABEL knoppix KERNEL linux APPEND ramdisk_size=100000 init=/etc/init lang=de quiet noprompt noeject initrd=minirt.gz
Das war's. Viel Spass.