Via GRUB 2 von USB booten

Normalerweise wählt man das Boot-Laufwerk über das BIOS aus, also ob anstelle von der Festplatte vom USB-Stick oder von DVD gebootet werden soll. Leider ist bei meinem Netbook die Fn-Taste kaputt gegangen, sodass ich die zum Aufruf des Bootmenüs benötigte Tastenkombination nicht mehr drücken konnte und somit immer von der Festplatte gebootet wurde.

Das funktionierte zwar, war aber ungünstig, da ich die durch diverse Tests beschädigte Lubuntu-Installation durch elementary OS, ebenfalls zum Testen, ersetzen wollte. Die ersten Google-Suchen führten zu Forenposts, in denen zwar genau das Problem erfragt wurde (wie boote ich via GRUB von USB / CD), die Antwort lautete aber ausschließlich „mach es nicht umständlich, wähle das Laufwerk im BIOS aus“ – das brachte mich also nicht weiter.
Ich war mir ziemlich sicher, dass es via GRUB gehen müsste, hatte aber bisher in der Richtung keine Erfahrung und recherchierte weiter, ob ich im laufenden System die GRUB-Konfiguration durch ein eigenes Skript ergänzen müsse, aber es stellte sich heraus, dass es direkt über die GRUB-Shell geht.

Booten via GRUB-Shell

Es geht sehr einfach – wenn man weiß, wie es geht – von der GRUB-Shell aus. Diese erreicht man, wenn man im GRUB-Menü die Taste c drückt. Wenn man auch normalerweise das GRUB-Menü nicht sieht, muss man nach dem BIOS-Logo, bevor der eigentliche Bootvorgang losgeht, die Umschalt-Taste gedrückt halten.

Mit folgenden Befehlen konnte ich mein Netbook problemlos überreden, von USB zu starten:

set root='(hd1,1)‘
chainloader +1
boot

Das war’s schon! Nun wird der Bootloader, also das Bootmenü des USB-Sticks ausgeführt. Wichtig hierbei ist, dass der erste Befehl an das eigene System angepasst werden muss. Die erste Zahl hinter hd bezeichnet das Laufwerk und die zweite die Partition auf diesem Laufwerk. Da ich nur 1 internes Laufwerk, also meine Festplatte, habe, wäre hd0 die interne Festplatte gewesen und hd1 bezeichnet somit den USB-Stick. Wenn man noch eine weitere Festplatte, SSD oder ein DVD-Laufwerk hat, kann der USB-Stick eine andere Bezeichnung erhalten! Die zweite Zahl gibt die Partition auf dem entsprechenden Laufwerk an.

Der erste Befehl kann, auch wenn er eine falsche Angabe enthält, ohne Fehlermeldung angenommen werden. Die Meldung, dass GRUB2 keinen Bootloader findet, erhält man nach Eingabe der zweiten Befehlszeile. Dann muss man den ersten Befehl anpassen (bei mir war es testweise ein (hd1,0) und dann eben (hd1,1)) und fährt nochmals mit der zweiten Zeile chainloader +1 fort, solange, bis es keine Fehlermeldung auf die Eingabe gibt. Dann kann man diesen Bootloader schließlich mit boot booten.

Auch ältere Systeme von USB booten

Zugegeben, wenn ich die Möglichkeit an anderen Geräten habe, werde ich immer den Weg über das BIOS-Boot-Menü vorziehen, aber gerade wenn man eventuell an älteren System arbeiten muss / will, deren BIOS nicht die Möglichkeit bietet von USB zu starten, kann dieser Trick ziemlich hilfreich sein.

Ich hatte diesen Fall vor ein paar Monaten und erinnerte mich, dass es früher, als das Booten von USB noch eine recht neue Sache war, für diese Fälle spezielle Boot-CDs gab, die dann von USB weiter gebootet haben. So etwas hatte ich in dem Zusammenhang auch gesucht, aber sehr wenig gefunden und diese Projekte waren ziemlich ins Schlafen geraten. Umso erfreulicher, dass ich diesen Weg für die Zukunft im Hinterkopf behalten kann.

Via GRUB2 Live-ISO starten

Eine weitere interessante Möglichkeit ist mir in diesem Zusammenhang auch aufgefallen, nämlich die Möglichkeit ein ISO-Abbild eines Live-Systems (z.B. der Ubuntu-DVD oder jeder anderen Linux-Live-CD) direkt von GRUB2 booten zu lassen.

Im ubuntuusers-Wiki ist eine Anleitung unter Von ISO-Dateien mittels loopback booten beschrieben. Ich habe die Schritte ebenfalls durchgeführt und es hat auch auf Anhieb funktioniert, es erschien ein neuer Menüpunkt im GRUB2-Menü und dieser startete die entsprechend angegebene ISO-Datei – leider natürlich mit dem Nachteil, dass ich von dieser logischerweise nicht installieren konnte, da der Installer das Laufwerk, auf das installiert werden soll, während der Installation aushängen möchte, was aber gerade nicht geht, da das Live-System von diesem Laufwerk aus gestartet ist und läuft.

Ansonsten ist mir für die Möglichkeit, ein Live-ISO im Bootmenü abzulegen, kein sinnvolles Szenario eingefallen, denn so würde man einem potenziell unerwünschten Nutzer sehr viele Möglichkeiten eröffnen, andererseits kann es im Zusammenhang mit z.B. CloneZilla auf einem Testsystem Sicherungsvorgänge deutlich erleichtern.

10 Gedanken zu „Via GRUB 2 von USB booten

  1. Gordian Beitragsautor

    Ah, ja ich glaube Plop ist die entsprechende Boot-CD!

    Aber leider hätte mich das auch nicht weiter gebracht, denn wie gesagt, das Problem hatte ich an meinem Netbook und da habe ich kein optisches Laufwerk – es ging also nur von Festplatte zu booten.

    Antworten
  2. Gerald

    Wenn der USB-Stick komplett bootfähig ist (also selbst einen Bootloader enthält), reicht auch:

    set root ='(hd1)‘
    chainloader +1

    und das ist bei dir der Fall, sonst könntest du diesen im BIOS nicht zum Booten bewegen. Das ist zudem universeller, da es mit jedem USB-Stick funktioniert, und nicht nur mit solchen, die zufällig auf der ersten Partition ihr /boot-Verzeichnis haben.

    Es gibt übrigens noch einen Grund, so etwas zu machen (für mich auch): Wenn man verhindern will, dass man (ohne Passwort) ins BIOS kommt, und trotzdem von USB (oder einer Rettungspartiton) booten will, kann man auch diesen Boot-Eintrag im GRUB passwortschützen. Man erspart sich also BIOS-Passwort einzugeben, mühsames Herumspringen im BIOS-Menü, bzw. zu warten, bis das BIOS den USB-Stick als bootfähig erkennt, was bei manchen eine halbe Ewigkeit dauert.

    Übrigens: noch ein „schmutziger“ Trick, dazu muss das BIOS aber mitspielen. Moderne BIOSen arbeiten oft ähnlich wie Linux, also nach dem Prinzip „sehen wir zuerst mal nach, was das überhaupt ist“, und booten auch ein CD/DVD-Image, das „brutal“ mit z.B. dd if=/dev/dvd of=/dev/sdb auf USB-Stick kopiert wurde. 🙂 Damit erspart man sich für Installationen oder Rettungen unetbootin oder andere Werkzeuge.

    Laufende Linux-Systeme wählen beim Einhängen sowieso automatisch das richtige Dateisystem; denen ist es auch egal. Windows-User hingegen bringt man mit sowas an den Rand des Wahnsinns! 🙂

    Antworten
  3. Tag gerade noch gerettet

    Ich möchte mich hiermit einfach mal ganz unglaublich viel für deinen Artikel bedanken! Mein Tag ist dank booten aus GRUB2 gerettet :)))

    Antworten
  4. Detlef

    Das ich mal über solch einen Artikel auf einer Seite stolpere, hätte ich nicht gedacht, zumal diese schon etwas älter sind, aber manchmal findet mann auch die Nadel im Heuhaufen, wo man nicht vermutet, das dort Heu liegt! Ich denke der Artikel ich sehr interessand, werd ich mal ausprobieren, und ich überlege gerade, ob ich mir ein Windows-User an der Seite haben sollte,Grins 🙂

    Antworten
  5. MK2015

    Dem Dank moechte ich mich hiermit herzlich anschliessen. Wusste nicht mal dass das mit Grub moeglich ist. Hat mir hier auf einem alten Laptop ohne BIOS Unterstuetzung fuer USB Boot gerade viel Arbeit und Kopfschmerzen erspart.

    Der Plop.at Bootmanager ist mir zwar bekannt, war aber gerade nicht zur Hand. Und ohne laufendes System, kein Internet, kein Download, kein Plop, kein USB Boot. Ein Teufelskreis. Dachte ich.

    Aber jetzt laueft ja alles. Dafuer vielen dank 🙂

    Antworten
  6. Benedikt

    Hilfe!!!!!

    Ich habe den oben genannten Befehl bei meinem macbook im terminal des elementary os eingegeben!
    Jetzt startet wenn ich das macbook anmache nur noch gnu grub….
    In das MacOS komme ich nur noch mittels start+alt

    Kann mir vl jemand helfen wie ich den standart boot ohne grub wieder hinbekomme?
    Vielen Dank

    Antworten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.