4.3. Dateien vorbereiten für das Booten von einem USB-Memory-Stick

Es gibt zwei mögliche Installationsmethoden, wenn Sie von USB-Stick booten. Die erste ist, den USB-Stick nur zum Booten des Installers zu verwenden und die eigentliche Installation komplett über Netzwerk durchzuführen. Die zweite Möglichkeit ist, zusätzlich ein CD-Image auf den Stick zu kopieren und dieses als Paketquelle zu nutzen, eventuell in Kombination mit einem Spiegel-Server.

Um den USB-Stick vorzubereiten, benötigen Sie ein System, auf dem GNU/Linux bereits läuft und das USB unterstützt. Auf aktuellen GNU/Linux-Systemen sollte der USB-Stick automatisch erkannt werden, sobald Sie ihn einstecken. Falls nicht, sollten Sie sicherstellen, dass das usb-storage-Kernelmodul geladen ist. Beim Einstecken wird dem USB-Stick ein Gerät namens /dev/sdX zugewiesen, wobei „X“ ein Buchstabe im Bereich zwischen a und z ist. Es sollte Ihnen möglich sein zu erkennen, welches Gerät dem Stick zugewiesen wurde, indem Sie den Befehl dmesg ausführen, nachdem der USB-Stick eingesteckt wurde. Um den Stick zu beschreiben, müssen Sie eventuell noch mit dem entsprechenden Schalter am Stick den Schreibschutz deaktivieren.

Warnung

Die in diesem Abschnitt beschriebenen Methoden werden alle Daten zerstören, die sich bereits auf dem Gerät befinden! Versichern Sie sich, dass Sie den korrekten Gerätenamen (nämlich den Ihres USB-Sticks) verwenden. Wenn Sie einen falschen Namen verwenden, könnte dies dazu führen, dass Sie z.B. alle Daten auf Ihrer Festplatte verlieren!

Um einen USB-Stick vorzubereiten, der lediglich den Installer bootet, welcher dann wiederum die Installation komplett per Netzwerk fortführt, müssen Sie das mini.iso-Image aus dem netboot-Verzeichnis herunterladen (Abschnitt 4.2.1, „Wo Sie die Installations-Images finden“ gibt nähere Informationen, wo Sie dies finden können) und direkt auf den USB-Stick schreiben; dadurch wird der bisherige Inhalt des Sticks überschrieben. Diese Methode funktioniert auch mit sehr kleinen USB-Sticks, schon ein paar Megabyte reichen aus.

Auf einem vorhandenen GNU/Linux-System kann die mini.iso-Datei z.B. mit folgenden Befehlen auf den USB-Stick geschrieben werden:

# cat mini.iso > /dev/sdX
# sync

Um Firmware auf einen USB-Stick zu schreiben, der auf diese Art vorbereitet wurde, beschaffen Sie sich die nötigen Firmware-Dateien. Weitere Informationen finden Sie unter Abschnitt 6.4, „Fehlende Firmware nachladen“. Entfernen Sie nun den Stick und stecken Sie erneut ein; es sollten nun zwei Partitionen darauf sichtbar sein. Sie sollten die zweite der beiden Partitionen in Ihr Dateisystem einbinden und die Firmware darauf entpacken:

# mount /dev/sdX2 /mnt
# cd /mnt
# tar zxvf /ihr/pfad/zu/firmware.tar.gz
# cd /
# umount

Um einen USB-Stick vorzubereiten, der Pakete aus einem auf dem Stick enthaltenen CD-Image installiert, verwenden Sie die Installer-Images aus dem hd-media-Verzeichnis. Sie können sowohl den „einfachen“ wie auch den „flexiblen Weg“ benutzen, um das Image auf den Stick zu kopieren. Für diese Installationsmethode müssen Sie auch ein CD-Image herunterladen. Das Installations-Image und das CD-Image müssen auf der gleichen debian-installer-Version basieren. Falls die Versionen nicht übereinstimmen, werden wahrscheinlich während der Installation Fehler[4] auftreten.

Beachten Sie, dass der USB-Stick mindestens 256 MB groß sein sollte (kleinere Setups sind möglich, wenn Sie gemäß Abschnitt 4.3.2, „Die Dateien kopieren – der flexible Weg“ vorgehen).

4.3.1. Die Dateien kopieren – der einfache Weg

Es gibt ein „Alles-in-einem“-Image hd-media/boot.img.gz, das alle Dateien des Installers enthält (inklusive Kernel) sowie den Bootloader syslinux mit der zugehörigen Konfigurationsdatei.

Bedenken Sie, dass diese Methode, obwohl sie bequem ist, einen gravierenden Nachteil hat: die logische Größe des Sticks ist begrenzt auf 256MB, auch wenn die Kapazität des USB-Sticks eigentlich größer ist. Falls Sie den Stick jemals wieder für einen anderen Zweck verwenden und die volle Kapazität zurückbekommen möchten, müssen Sie ihn neu paritionieren und die Dateisysteme neu erstellen. Ein zweiter großer Nachteil ist, dass Sie nicht ein Komplett-CD-Image auf den Stick kopieren können, sondern nur die kleineren Businesscard- oder Netinst-CD-Images.

Um dieses Image zu verwenden, extrahieren Sie es einfach direkt auf Ihren USB-Stick:

# zcat boot.img.gz > /dev/sdX

Hängen Sie danach den USB-Memory-Stick ins Dateisystem ein (mount /dev/sdX /mnt), der jetzt ein FAT-Dateisystem enthält, und kopieren ein Debian-„netinst“- oder „businesscard“-ISO-Image dorthin. Hängen Sie den Stick aus dem Dateisystem aus (umount /mnt) – das war's.

4.3.2. Die Dateien kopieren – der flexible Weg

Wenn Sie flexibler sein oder einfach nur wissen möchten, was passiert, sollten Sie die folgende Methode nutzen, um die Dateien auf den Stick zu befördern. Ein Vorteil dieser Methode ist, dass Sie – falls die Kapazität Ihres USB-Sticks dafür ausreicht – die Möglichkeit haben, ein Komplett-CD-ISO-Image darauf zu kopieren.

4.3.2.1. Den USB-Stick partitionieren

Wir werden hier erläutern, wie Sie den Memory-Stick einrichten, so dass nur die erste Partition genutzt wird statt des kompletten USB-Speichers.

Anmerkung

Da die meisten USB-Sticks mit einer einzelnen FAT16-Partition vorkonfiguriert geliefert werden, müssen Sie den Stick möglicherweise nicht neu partitionieren oder formatieren. Falls es trotzdem nötig ist, nutzen Sie cfdisk oder ein anderes Partitionierungswerkzeug, um eine FAT16-Partition zu erzeugen[5], und erstellen dann ein Dateisystem, indem Sie Folgendes eingeben:

# mkdosfs /dev/sdX1

Achten Sie darauf, dass Sie den richtigen Gerätenamen für den USB-Stick verwenden. Das Programm mkdosfs ist im Debian-Paket dosfstools enthalten.

Um den Kernel starten zu können, nachdem vom USB-Stick gebootet wurde, werden wir einen Bootloader auf dem Stick ablegen. Obwohl jeder Bootloader (wie z.B. lilo) funktionieren sollte, wird empfohlen, syslinux zu verwenden, da er eine FAT16-Partition benutzt und über eine Textdatei konfiguriert werden kann. Jedes Betriebssystem, das das FAT-Dateisystem unterstützt, kann verwendet werden, um die Konfiguration des Bootloaders zu verändern.

Um syslinux auf die FAT16-Partition des USB-Sticks zu befördern, installieren Sie die Pakete syslinux und mtools auf Ihrem System und führen dann aus:

# syslinux /dev/sdX1

Hier nochmals die Warnung, den richtigen Gerätenamen zu verwenden. Die Partition darf nicht ins Dateisystem eingebunden sein, wenn syslinux ausgeführt wird. Durch diese Prozedur wird ein Boot-Sektor auf die Partition geschrieben und die Datei ldlinux.sys erstellt, die den Bootloader-Code enthält.

4.3.2.2. Ein Installer-Image auf den Stick kopieren

Hängen Sie die Partition ins Dateisystem ein (mount /dev/sdX1 /mnt) und kopieren Sie die folgenden Installer-Image-Dateien auf den Stick:

  • vmlinuz oder linux (Kernel-Binär-Datei)

  • initrd.gz (Initial-RAM-Disk-Image)

Sie können wählen zwischen dem regulären und dem grafischen Installer. Letzteren finden Sie im gtk-Unterverzeichnis. Wenn Sie die Dateien umbenennen möchten, beachten Sie, dass syslinux nur Dateinamen im DOS-(8.3)Format verarbeiten kann.

Als nächstes sollten Sie eine Konfigurationsdatei syslinux.cfg erstellen, die mindestens die folgenden zwei Zeilen enthält (verwenden Sie als Name für die Kernel-Binärdatei „linux“, wenn Sie ein netboot-Image benutzen):

default vmlinuz
append initrd=initrd.gz

Falls Sie den grafischen Installer verwenden möchten, sollten Sie vga=788 zur zweiten Zeile hinzufügen.

Wenn Sie ein hd-media-Image benutzt haben, sollten Sie jetzt ein noch ein Debian-ISO-Image [6] auf den Stick kopieren. Danach hängen Sie die Partition aus dem Dateisystem wieder aus (umount /mnt).

4.3.3. Vom USB-Stick booten

Warnung

Falls Ihr System nicht vom USB-Speichermedium bootet, könnte die Ursache ein defekter Master-Boot-Record (MBR) auf dem Medium sein. Um dies zu beheben, nutzen Sie folgenden install-mbr-Befehl aus dem Paket mbr:

# install-mbr /dev/sdX



[4] Die höchstwahrscheinlich angezeigte Fehlermeldung wird sein, dass keine Kernel-Module gefunden werden können. Dies bedeutet, dass sich die Version der Kernel-Modul-udeb-Dateien auf dem CD-Image von der Version des laufenden Kernels unterscheidet.

[5] Vergessen Sie nicht, die „bootable“-Markierung (Boot-Flag) zu setzen.

[6] Sie können dafür ein Businesscard-, Netinst- oder ein Komplett-CD-Image verwenden (siehe Abschnitt 4.1, „Offizielle Debian GNU/Linux-CD-ROMs“). Stellen Sie sicher, dass das Image Ihrer Wahl auf den Stick passt. Beachten Sie, dass das „netboot mini.iso“-Image für diesen Zweck nicht geeignet ist.