Schritt für Schritt

USB-Stick und SD-Karte bootfähig machen

19.08.2015 von David Wolski
DVDs verlieren zunehmend an Bedeutung seit Netbooks und Ultrabooks kein optisches Laufwerk mehr mitbringen. Kein Problem: Linux und Windows booten auch schnell und zuverlässig von USB-Sticks und SD-Karten.

Vorbei sind die Zeiten, als dicke CD/DVD-Spindeln die Schreibtische von Betriebssystem-Bastlern und Linux-Anwendern mit Sinn für Experimente zierten. An deren Stelle sind bunte Sammlungen von USB-Sticks in allen Formen und Größen getreten. Und jeder, der das Elend verbrannter Rohlinge und spontan unlesbarer Scheiben kennt, wird den optischen Medien kaum eine Träne nachweinen. Ein DVD-Laufwerk füllt zwar oft noch im Desktop-PC einen Einschub, aber superflache Notebooks haben schon keines mehr. Stattdessen erfordern diese Geräte, Live-Systeme und die Installationsmedien von Distributionen per USB-Stick oder über Speicherkarte zu starten. Ein weitere Vorteil von Live-Systemen, die vom Stick booten ist, dass darauf dann auch Daten gespeichert und Einstellungen dauerhaft gemacht werden können, ganz im Gegensatz zu Live-DVDs.

Und so geht's: Alles, was man dafür braucht ist die passende ISO-Datei zur gewünschten Distribution, um aus dem Image eigene USB-Medien oder Speicherkarten zu erstellen. Der Start gelingt mit erstellten Bootmedien nicht nur schneller, sondern ist auch zuverlässiger – sofern Sie bei der Übertragung eines Systems auf einen bootfähigen Datenträger die richtigen Werkzeuge nutzen.

Hybride Images auf DVDs und USB-Sticks

Ganz am Anfang eines Dateisystems nach ISO-9660 steht die ungenutzte „System Area“, die einen VBR und eine Partitionstabelle aufnehmen kann.

Die verbreiteten Linux-Distributionen liefern ihre Installationsmedien in Form von ISO-Dateien aus, die sowohl fit für das Brennen auf optische Medien sind als auch von USB-Laufwerken starten können. Möglich ist dies, wenn die Entwickler einer Distribution die ISO-Datei mit zwei unterschiedlichen Bootsektoren ausstatten: Ein VBR (Volume Boot Record) sorgt für den Start von USB-Sticks und Speicherkarten, während ein Bootsektor nach dem „El-Torito“-Standard auf optischen Medien funktioniert. ISO-Dateien, die sowohl von CD/DVD wie von Flash-Medien (USB, SD-Karte) booten, werden als „hybrid“ bezeichnet und müssen damit nicht mal mit dem Standard ISO-9660 für Dateisysteme auf optischen Medien brechen. Denn in weiser Voraussicht bietet der schon 1986 verabschiedete Standard ISO-9660 zusätzlichen Platz für fremde Bootsektoren. Diese werden in der „System Area“ untergebracht, für welche die ersten 16 Sektoren zu 2048 Byte am Anfang des ISO-Dateisystems reserviert sind. Optische Laufwerke ignorieren diesen Bereich, der mehr als genügend Platz bietet für einen VBR und sogar für eine Guid Partition Table (GPT) für das Booten über Uefi-Boot. Das Tool, mit dem Distributionsentwickler in diesen Bereich schreiben, ist das Multitalent Isolinux. Im entsprechenden Wiki finden Sie eine Dokumenation für die Vorgehensweise der nachträglichen Manipulation einer ISO-Datei.

Unetbootin: Das Boot-Tool für Windows und Linux

Installationsmedien von Linux-Systemen lagen nicht immer als hybride Images vor. Diese Praxis ist erst ein paar Jahre alt. Ubuntu liefert beispielsweise erst seit der Version 11.10 von 2011 alle regulären ISO-Dateien mit dem doppelten Bootsektor für CD/ DVDs und USB aus. Das Motiv oder gar die Notwendigkeit, das System von USB-Stick zu booten, besteht aber schon länger. Und deshalb trat 2007 das Open-Source-Programm Unetbootin auf den Plan, das Images für CD/DVD entpackt, eine neue Startumgebung für USB-Sticks und Speicherkarten ergänzt und dann gleich auf das gewünschte Medium schreibt. Die Idee dazu stammt von Geza Kovacs, heute Doktorand der Informatik in Stanford, der das Programm bis heute hin und wieder pflegt. Unetbootin ist aber so einfach gehalten, dass ein Informatikstudium dafür sicher nicht notwendig ist.

Über Jahre war Unetbootin erste Wahl: Das Programm für Linux, Windows und Mac-OS versucht mit einer eigenen Bootumgebung, ISO-Dateien ohne hybriden Bootsektor auf USB-Sticks zu entpacken.

Der Start des portablen Programms ist unkompliziert: Sowohl die Linuxals auch die Windows-Version von Unetbootin sind Binaries, die Sie ohne Installation ausführen können. Unter Linux muss zum Start nur der Packer 7-Zip installiert sein, den Sie in Ubuntu und Varianten beispielsweise mit dem Kommando

sudo apt-get install p7zip-full

nachinstallieren können. Unetbootin fragt beim Start nach root-Rechten, da es im Low-Level-Modus auf ein Ziellaufwerk zugreift. Unter Windows müssen Sie daher die Abfrage der Benutzerkontensteuerung bestätigen. Das Tool unterstützt eine Reihe von Distributionen aus dem Ubuntu-Umkreis und auch ältere Versionen anderer Linux-Systeme, die im Menü „Distributionen“ als Download zur Auswahl stehen. Wenn Sie das ISO-Image bereits vorliegen haben, können Sie den oberen Teil des Fensters aber ignorieren. Unetbootin kann über „Abbild“ auch auf eine bereits vorliegende ISO-Datei zugreifen, diese auf das ausgewählte Laufwerk packen und versuchen, dieses dann bootfähig zu machen. Was trivial aussieht, ist im Hintergrund doch deutlich aufwendiger:

1. Mit Hilfe von 7-Zip entpackt Unetbootin die Verzeichnisse und Dateien der ISO-Datei auf das ausgewählte Ziellaufwerk, das bereits mit FAT32 formatiert und eingehängt sein muss.

2. Anhand einer Heuristik sucht Unetbootin unter den Dateien den Linux-Kernel und die initiale Ramdisk (Initrd) und verschiebt diese in die neuen Verzeichnisse „ubnkern“ (Kernel) und „ubninit“ (Initrd).

3.Anschließend untersucht das Programm die vorhandenen Bootmenüs in den Dateien „syslinux.cfg“, „isolinux.cfg“, „extlinux.conf“ und „menu.lst“, um aus den gefundenen Einträgen ein neues eigenes Bootmenü auf der Basis von Isolinux zu bauen.

4. Unetbootin installiert den Bootloader Syslinux auf dem Ziellaufwerk und macht diesen über das Boot-Flag bootfähig.

Der so erzeugte Datenträger hat ein anderes Bootmenü als die originale ISO-Datei, und es gibt deshalb deutliche Unterschiede im Aussehen und bei den Namen der Booteinträge.

Windows: Images direkt schreiben

Ist (noch) kein Linux-Rechner für die Übertragung einer ISO-Datei verfügbar, dann verwenden Sie unter Windows für dieselbe Aufgabe den Win 32 Disk Imager. Dessen Bedienung ist weitgehend selbsterklärend.

Sie wählen nur die Quelldatei („Image File“) und geben das („Device“) an. Voreingestellt ist zwar im Datei-Browser die Dateierweiterung IMG, aber nach einer Umstellung auf „*.*“ funktionieren genauso auch ISO-Dateien. Die Schaltfläche „Write“ startet den Schreibvorgang.

Wenn Unetbootin versagt

In der Kommandozeile zeigt der Befehl lsblk einen übersichtliche Baumstruktur aller blockorientierten Geräte (Laufwerke) an.

Unetbootin ist clever und bequem, aber nicht universell. Was Unetbootin tut, war ursprünglich als Workaround gedacht, ein Image ohne hybriden Bootsektor auf einen bootfähigen USB-Stick bringen. Dieser Weg funktioniert bei Ubuntu & Co sowie vielen anderen Live-Systemen bis heute erstaunlich gut. Aber leider nicht immer. Unetbootin schafft es nur, ein funktionierendes Bootmenü auf den Stick bekommen, wenn die Analyse der originalen Bootmenüs geklappt hat. Distributionen, bei denen Unetbootin erfahrungsgemäß versagt, sind Open Suse, Knoppix, Porteus, und bei Fedora ist es stets Glücksspiel, ob das erstelle Medium anschließend mit Bios und Uefi korrekt startet. Distributionsentwickler sind deshalb davon abgekommen, Unetbootin zu empfehlen. Wozu auch? Wenn das Image sowieso hybrid ist, dann braucht es den Aufwand nicht, den Unetbootin betreibt.

Das Kommandozeilenwerkzeug dd schreibt den Inhalt von angegebenen Dateien Byte für Byte auf das Zielgerät. Für hybride Image-Dateien genügt das.

Ein Image unter Linux manuell übertragen

Fortgeschrittene Anwender können hybride ISO-Dateien von Linux-Distributionen und Live-Systemen mit dem Kommandozeilen-Tool dd auf einen USB-Stick oder eine Speicherkarte transferieren. Die Download-Seiten der Linux-Distributionen geben in der Regel einen Hinweis, wenn ein Image hybrid ist. Die meisten verbreiteten Distributionen wie Debian, Ubuntu, Linux Mint, Fedora, Open Suse, Arch und deren Abkömmlinge sind längst auf diesem Stand. Bei der manuellen, stets zuverlässigen Methode müssen Sie nur penibel aufpassen, dass Sie bei Ihren Kommandos das richtige Medium zum Beschreiben angeben und nicht versehentlich eine Partition auf der Festplatte überschreiben.

1.Stecken Sie Ihren USB-Stick an den Rechner an, und öffnen Sie ein Terminal-Fenster. USB-Laufwerke und SD-Karten bekommen nach dem Einhängen im Linux-System zwar einen wiederkehrenden gleichlautenden Mount-Punkt, der sich nach der Datenträgerbezeichnung richtet, jedoch keine feste Gerätekennung. Ist „/dev/ sdb“ bereits vergeben, bekommt ein USB-Stick beispielsweise „/dev/sdc“ zugewiesen, ist dieses schon belegt, „/dev/sdc“ und so fort.

2. Den schnellsten Weg, die Kennung eines Laufwerks zu ermitteln, bietet der Kommandozeilenbefehl lsblk. Rufen Sie den Befehl am besten mit dem Parameter „-p“, also folgendermaßen lsblk -p auf.

3.Vergessen Sie vor dem Schreiben mit dd auf einen Wechseldatenträger nicht, vorher auch dessen Partitionen auszuhängen:

sudo umount /dev/sd[X]?

wobei „[X]“ der Platzhalter für die Gerätebezeichnung ist, beispielsweise „/dev/sdf“. Das angehängte Fragezeichen bewirkt, dass alle Partitionen dieses Geräts ausgehängt werden.

4. Um das Image auf den Stick zu übertragen, geben Sie in einem Terminal-Fenster folgenden dd-Befehl mit angepassten Pfaden ein. Setzen Sie dabei nach „if=“ den Pfad und Namen der ISO-Datei ein (Input File) und nach „of=“ den Gerätenamen des USB-Sticks beziehungsweise der Speicherkarte (Output File):

sudo dd bs=1M if=/pfad/datei.iso of=/dev/sd[x]

Es handelt sich um einen Low-Level-Zugriff auf das Ziellaufwerk, der root-Rechte oder vorangestelltes „sudo“ verlangt. Der Ablauf des Befehls dauert eine Weile, und die Konsole gibt in dieser Zeit keine Rückmeldung. Warten Sie einfach ab, bis die Eingabeaufforderung wieder erscheint, dann können Sie den USB-Stick abziehen und verwenden.

Die Werkzeuge der Linux-Distributionen

Das Programm versteht sich nur auf ISO-Dateien von Ubuntu und seinen Varianten. Dafür gibt es aber die Möglichkeit, einen Bereich für Benutzerdaten zu reservieren.

Neben dem Klassiker dd gibt es auch grafische Tools für die zuverlässige Übertragung von Images.

Ubuntu: In allen Ubuntu-Varianten gibt es den „Startmedienersteller“. Das Tool ist vorinstalliert, steht aber auch als Paket „usb-creator-gtk“ und für Kubuntu als „usb-creator-kde“ in den Paketquellen bereit. Es funktioniert nur mit Ubuntu-Images und nicht mit anderen Distributionen. Im gestarteten Programm wählen Sie oben entweder eine ISO-Datei von Ubuntu aus oder auch eine eingelegte Ubuntu-DVD. Unter dem zu verwendenden Datenträger, der mit FAT32 vorformatiert sein muss, können Sie noch festlegen, ob es neben dem Live-System noch permanenten Speicherplatz geben soll.

Linux Mint: Hier ist das Programm mit dem Namen „USB-Abbilderstellung“ mit von der Partie. Es benutzt unter der (deutschsprachigen) Oberfläche das nackte dd und erstellt eine Byte-für-Byte-Kopie eines ISO-Images auf dem Ziellaufwerk. Deshalb eignet es sich nicht nur für die Images von Linux Mint, sondern generell für alle hybriden ISO-Dateien.

Open Suse: Für die Übertragung von ISOs nutzen Sie in Open Suse am besten den Imagewriter, der sich über den Paketmanager nachinstallieren lässt – entweder grafisch über die Paketverwaltung von Yast oder mit dem Paketmanager Zypper

sudo zypper in imagewriter

im Terminal. Auch der Imagewriter arbeitet im Inneren wie dd und beherrscht deshalb auch alle hybriden Images. Die englischsprachige Oberfläche ist extrem einfach: Ziehen Sie mit der Maus einfach die gewünschte ISO-Datei auf das Programmfenster, und wählen Sie dann das Ziellaufwerk im Feld „Insert a USB device“.

Fedora liefert ein eigenes Tool, das Ideen von Unetbootin aufgreift. Es arbeitet wahlweise mit dd im Hintergrund oder einem einfachen Kopierbefehl.

Fedora: In den Paketquellen findet sich das Tool Liveusb-Creator, das Sie in Fedora mit

sudo yum install liveusb-creator

installieren. Sie müssen das Programm manuell im Terminal mit sudo starten:

sudo -H liveusb-creator

Das englischsprachige Tool übernimmt Elemente von Unetbootin und bietet rechts oben über „Download Fedora“ die Möglichkeit, ein Image herunterzuladen und dann auf das Ziel („Target Device“) zu übertragen. Davon abgesehen kann das Programm aber auch ein vorhandenes ISO-Image verarbeiten.

Zur Übertragung gibt es dd („Overwrite Device“) oder einen Kopierbefehl („Non-Destructive“), der das Ziellaufwerk nicht komplett überschreibt, das aber dann schon formatiert sein muss.

(PC-Welt/ad)