auf Facebook teilen auf Google+ teilen auf LinkedIn teilen auf Pinterest teilen twittern
Werbehinweise
» Startseite » Software » Linux » Linux Bootdisk erstellen 

Linux Bootdisketten erstellen

Unter Windows bzw. MS-DOS eine Bootdiskette zu erstellen ist denkbar einfach. Die Option -s beim Formatieren überträgt anschließend die notwendigen Daten einfach auf die Diskette – und schon ist die Bootdisk fertig.

Unter Linux ist das ein kleines Bischen komplizierter – aber wirklich nur ein kleines Bischen.

Bevor man eine Bootdiskette erstellt, sollte man unbedingt die Diskette zuvor überprüfen. Das kann man mit dem Befehl badblocks erledigen:

 /sbin/badblocks -vs /dev/fd0 1440 # HD Diskette (1,44 MB) 

bzw.

 /sbin/badblocks -vs /dev/fd0 720 # DD Diskette (720 kB) 

Der hash »#« und der von mir danach angegebenen Text ist natürlich nicht einzugeben.

badblocks überprüft eine Diskette nach defekten Sektoren und gibt im verbose-Modus Meldungen aus. Die Angabe der Blöcke ist bei Debian erforderlich. Bei anderen Distributionen (SuSE, RedHat, Mandrake, etc.) ist diese Angabe nicht zwingend erforderlich.

Mit dem Schalter -s kann man sich zusätzlich den Fortschritt anzeigen lassen.

Bootdisk ohne LILO

Nachdem man die Diskette überprüft hat, kann man eine Bootdiskette erstellen. Zunächst die Variante einer Bootdisk, die für einen speziellen Rechner zugeschnitten wird.

Die Diskette, die zur Bootdiskette werden soll, muß nicht formatiert sein. Es wird der Kernel direkt auf die Diskette geschrieben, es wird also ein sogenanntes »raw device« erstellt. Der Aufruf lautet:

 dd if=<kernel> of=<ziel> 

Hierbei steht if für »input file« und of für »output file«. Bevor man mit Enter den Befehl ausführen läßt, sollte man also tunlichst die Syntax nochmal anschauen. Ein Datenverlust ist bei Fehlbedienung nicht auszuschließen.

Die Kernel (meist sind es mehrere) findet man im Verzeichnis /boot. Wer selbst schon Kernel erzeugt hat, wird dies ohnehin schon wissen. Die Kernel können eigentlich beliebig benannt werden, allerdings hält man sich meistens an die folgende Bezeichnung: vmlinuz-<kernelnummer>-<komentar>. Es wird also die Kernelnummer angegeben, evtl. folgt anschließend noch ein kleiner Kommentar wie »router« oder »neu1«.

Beispiel:

 dd if=/boot/vmlinuz-2.4.18 of=/dev/fd0 

Jetzt wird der Kernel auf das Floppylaufwerk übertragen.
Der erste Block des Kernels entpackt beim Bootvorgang die weiteren Blöcke (dauert meist länger).

Der Kernel befindet sich jetzt auf der Diskette, aber einige für den Start relevanten Angaben fehlen noch. Im Kernel-Image sind an bestimmten Stellen Standardwerte gespeichert, welche mit dem kleinen Hilfsprogramm rdev editiert werden müssen. rdev ist auf den meisten Systemen installiert und somit sollte der folgende Aufruf eigentlich kein Problem darstellen:

 rdev <ziellaufwerk> <rootpartition> 

Auch hierfür ein kleines Beispiel:

 rdev /dev/fd0 /dev/hdb1 

Die Partition, die vom Kernel nach »/« gemountet werden soll, ist bei dem oben angegebenen Beispiel /dev/hdb1, also die erste primäre Partition auf der zweiten IDE-Festplatte.

Es muß noch ein zweiter Wert mit rdev gesetzt werden:

 rdev -R /dev/fd0 1 

Dieser Aufruf sorgt dafür, dass das System zunächst im sog. »single user mode« gestartet werden soll.
In diesem Modus finden notwendige Prüfungen statt, anschließend geht der Bootvorgang weiter. Dies bedeutet, dass der Wechsel in den »default runlevel« (angegeben in /etc/inittab) stattfindet. rdev steht übrigens für »root device«

Vorteile:

  • sehr einfach zu erzeugen
  • vmlinz bootet so rascher als per Bootdisk mit Lilo

Nachteile:

  • keine Auswahlmöglichkeit (kein Bootmanager)
  • es kann nur dieser eine Kernel gebootet werden
  • es ist explizit eine Partition als »/« festgelegt. Man kann die Diskette also nur bei jenen Systemen verwenden, die »/« auf der gleichen Partition liegen haben.

So, die Bootdiskette ist jetzt fertig. Noch mal kurz der Ablauf:

1. Diskette überprüfen
2. Kernel übertragen
3. Festlegen, welche Partition als »/« gemountet werden soll
4. System soll im »single user mode« gebootet werden

Diese Diskette kann natürlich nur dann funktionieren, wenn /dev/hdb1 auch wirklich »/« entspricht. Ansonsten funktioniert es nicht. Die Diskette würde auf meinem Rechner beispielsweise funktionieren – allerdings nicht auf einem Rechner, bei dem die erste primäre Partition der ersten IDE-Festplatte oder gar eine Partition auf einer SCSI-Platte »/« ist.

Bootdisk mit LILO

Im Gegensatz zum ersten Variante muß bei einer Bootdisk mit LILO drauf erstmal das Medium formatiert werden. Der folgende Aufruf formatiert die Diskette im ersten Floppylaufwerk im Format »minix«.

 mkfs minix -c /dev/fd0 1440 

Der Schalter -c steht für »check«, der Datenträger wird also vor dem Formatieren überprüft.

Falls das Dateiformat »minix« nicht unterstützt werden sollte formatiert

 mke2fs /dev/fd0 

die Diskette im ersten Floppylaufwerk im Format »ext2«.

Anschließend wird die formatierte Diskette gemountet:

 mount -t minix /dev/fd0 /floppy 

bzw.

 mount -t ext2 /dev/fd0 /floppy 

Der mountpoint kann beliebig gewählt werden, man muß dann allerdings im weiteren Verlauf dieser Anleitung den von mir verwendeten Mountpoint /floppy durch den eigenen Mountpoint ersetzen.

Eventuell befindet sich bereits ein Eintrag in der /etc/fstab und man kann die Floppy auch bequem über mount /floppy ohne weitere Parameter mounten.

Welche Dateien müssen auf die Diskette?

 /boot/boot.b
/boot/map /boot/chain.b /etc/lilo.conf /etc/lilo.msg (nur eventuell) /boot/vmlinuz (Achtung: Der Name der Datei kann bzw. wird differieren. es handelt sich dabei um den Kernel.)

Und natürlich ein Kernel, welcher gestartet werden soll. Kernel sind für gewöhnlich in /boot zu finden. Weitere Angaben zu den Kernel-Dateien siehe oben bei der Bootdisk ohne LILO.

Was sind das nun für Dateien?

boot.b => Maschinencode
map => enthält ein Verzeichnis der Kernel-Root-Devices
chain.b => Pseudo-MBR für Nicht-Linux-Systeme
lilo.conf => LILO-Konfigurationsdatei
lilo.msg => eventuell vorhandene Message-Datei (wird beim Start von LILO aufgerufen und am Bildschirm angezeigt)

Die Datei mbr.b (1. LILO Stufe) ist nicht für eine Bootdiskette notwendig.

Die vermutlich einfachste Möglichkeit, die Daten auf die Diskette zu bekommen ist:

 cd /boot cp -vi boot.b map chain.b /etc/lilo.* /floppy cp -vi vmlinuz /floppy 

Dann spart man sich die Angabe von /boot vor den ganzen Dateien beim Kopieren.

Anschließend ist die auf die Floppy kopierte lilo.conf editieren. Die originale lilo.conf braucht man nicht zu bearbeiten – im Gegenteil. Bearbeitet man diese und führt lilo aus, hat man evtl. den LILO auf der Festplatte »verkonfiguriert«.

Zurück zur lilo.conf auf der Floppy: Der erste Eintrag muß vom Pfad her von der Festplatte auf fd0, dem ersten Floppy im System, geändert werden.

Die weiteren Änderungen sind den Kommentaren der folgenden Beispiel-lilo.conf zu entnehmen.
Achtung: Den Mountpoint der Floppy anpassen wenn er nicht /floppy sein sollte.

 # /etc/lilo.conf - See: `lilo(' and `lilo.conf(5)', # lba32 boot = /dev/fd0 # geändert auf erstes Floppy im System message = /floppy/lilo.msg # Achtung: der Pfad muß zur gemounteten # Floppy gehen install = /floppy/boot.b # neuer Eintrag map = /floppy/map # neuer Eintrag prompt #delay = 50 # neu (wartet 5 Sekunden) vga=normal image = /floppy/vmlinuz-2.2.17.ws # geändert auf Floppy, der Name des # Kernels kann bzw. wird sich # unterscheiden. root = /dev/hda5 label = ws_floppy read-only alias = 0 # append = "ether=0,0,eth1" 

Nachdem man die Änderungen an der sich auf der Floppy befindlichen lilo.conf gespeichert hat, ruft man folgenden Befehl auf:

 /sbin/lilo -C /floppy/lilo.conf 

Jetzt wird LILO auf der Floppy installiert. Es werden dabei die Daten verwendet, die in der /floppy/lilo.conf stehen.

Nun zu den Vorteilen und natürlich auch den Nachteilen einer solchen Bootdisk:

Vorteile:

  • Auswahlmenu
  • weitere Kernel oder andere Kernel können auf die Diskette gepackt werden.
  • weiter Software kann hinzugefügt werden, z.B. kleiner FTP-Server, DNS-Server, etc.

Nachteil:

  • Bootvorgang dauert extrem lange

Bootdisk mit loadlin

Als dritte und letzte Variante einer Diskette, mit der man ein Linux-System booten kann, kommt eine Bootdisk mit loadlin zum Zuge.

loadlin ist bei den meisten Distributionen auf einem der CDs oder der DVD zu finden. Man kann loadlin aber auch aus dem Web beziehen: http://elserv.ffm.fgan.de/~lermen/.

Mit loadlin kann man von einer DOS-Bootdiskette (natürlich auch von Win9x-Bootdisketten) ein bereits installiertes Linux starten. Es muß lediglich ein Kernel mit auf der Floppy oder zumindest nach dem Booten von der Floppy erreichbar sein.

Der Aufruf von loadlin gestaltet sich denkbar einfach:

Beispiel:

 loadlin <kernel> root=/dev/hdb1 

Natürlich hat sich bei diesem Aufruf ein Kernel auf der DOS-Diskette zu befinden. Der Name des Kernels wird in der oben angegebenen Zeile eingefügt. Achtung: Da es sich um eine DOS-Diskette handelt: Immer an die 8+3-Norm für Dateinamen denken. Man sollte seinem Kernel also einen Namen geben, der nicht länger als acht Zeichen ist.

Vorteile:

  • unter DOS, WfW, 9x installier- und ausführbar (nicht unter NT, W2K oder XP)
  • sehr einfach zu erstellen (DOS-Bootdisk erforderlich)
  • genauso einfach in der Handhabung
  • geringer Platzbedarf
  • auf der Diskette können noch weitere Tools untergebracht werden
  • falls Lilo nicht installiert werden kann
  • 1024-Zylinder-Grenze ist egal

Nachteile:

  • Man benötigt eine DOS-Bootdiskette

 
 
Das Generieren dieser Seite dauerte genau 0.06783 Sekunden.