[[Vorlage (archiviert)]] {{{#!vorlage Hinweis Dieser Artikel beschreibt die Vorgehensweise unter [:Archiv/GRUB:] (GRUB Legacy). Ab Ubuntu 9.10 wird der Nachfolger [:GRUB_2:] (siehe dort) verwendet. }}} [[Inhaltsverzeichnis(1)]] Die GRUB-Konsole – richtiger: GRUB-CLI (Command Line Interface) – ist ein wichtiges Modul, um den Rechner starten zu können. Das GRUB-Auswahlmenü wird z.B. in dieser Konsole dargestellt und die entsprechenden Steuerbefehle werden aus der [:Archiv/menu.lst:] eingelesen und ausgewertet. Man kann mittels dieser Konsole hinterlegte Befehle temporär bearbeiten (editieren) und damit ein nicht startbares System zum Hochfahren bewegen. {{{#!vorlage Hinweis Der Bootloader GRUB agiert normalerweise losgelöst vom eigentlichen Betriebssystem. Daraus erklären sich die eigenen, GRUB-internen Bezeichnungen der gefundenen Datenträger und Partitionen: GRUB bezeichnet den ersten gefundenen Datenträger mit dem Namen '''(hd0)''' während der Linux-Kernel eigene Suchalgorithmen benutzt und Datenträger nach dem Schema '''/dev/sdX''' bezeichnet. }}} = Konsole-Modi = [[Bild(minibash.png, 240, align=right)]] Es gibt verschiedene Möglichkeiten, um auf eine GRUB-Konsole zu gelangen: * Durch GRUB selbst (vor oder nach dem Auswahlmenü), weil GRUB seine Daten nicht findet bzw. diese fehlerhaft sind und Hilfe anfordert: {{{ Error: no such disk grub rescue>}}} Mögliche Ursache: '''/boot''' kann nicht adressiert oder gefunden werden oder ein älteres BIOS (137GB-Limit) verursacht den Fehler: {{{ Error: No such device: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Press any key to continue.. grub> _}}} Mögliche Ursache: fehlerhafter Eintrag in der Steuerdatei. Temporär kann auch `/dev/sdXY` verwendet werden. [[Bild(grub.png, 240, align=right)]] * Durch Eingabe von [[Vorlage(Tasten c)]] im Auswahlmenü, um in den Konsole-Modus zu schalten, das System zu untersuchen etc. * Durch Eingabe von [[Vorlage(Tasten e)]] im Auswahlmenü, um die entsprechende Steuerdatei ('''grub.cfg''' oder '''menu.lst''') temporär zu bearbeiten. * Expertenmodus: Durch Aufruf eines GRUB-Emulators in einem [:Terminal:], wobei die Darstellung der Ergebnisse von Punkt 1–3 abweichen können. = Hilfreiche Befehle = * `help` - Liste aller verfügbaren Befehle. `help ` liefert weitergehende Informationen/die Syntax zum entsprechenden Befehl. * [[Vorlage(Tasten Tab)]]-Vervollständigung - Bei Teileingabe eines Befehls und anschließendem [[Vorlage(Tasten Tab)]] werden Auswahlmöglichkeiten angezeigt, z.B. zu `ls`: {{{grub> ls (hd Possible disks are: hd0 hd1 grub> ls (hd }}} * `ls` - Listen von Datenträger, Partitionen und Verzeichnisinhalten. {{{#!vorlage Befehl ls ls -la /dev/disk/by-id ls -la /dev/disk/by-uuid ls -la /dev/disk/by-label }}} In den Beispielen werden Informationen über bekannte Platten, [:UUID:]s und [:Labels:] abgefragt. * `set` - GRUB kennt Variablen. Um diese mit Werten zu füllen, wird der Befehl `set ` benutzt, z.B.: {{{#!vorlage Befehl set root=(hd0,1)}}} setzt den ersten Datenträger sowie dessen erste Partition als Root, alle weiteren Befehle ohne `(hdx,y)` beziehen sich auf dieses `root`. * `pager` - {{{#!vorlage Befehl set pager=1}}} bewirkt ein zeilenweises Anzeigen (analog 'less'), mit [[Vorlage(Tasten Enter)]] bestätigen. Sinnvoll z.B. bei `cat`. Anschließend wieder mit `set pager=0` zurücksetzen! * `cat` - Inhaltsanzeige von einfachen Textdateien: {{{#!vorlage Befehl cat /boot/grub/grub.cfg cat /etc/lsb-release cat /boot/grub/device.map }}} Auch andere Textdateien sind zulässig, z.B. '''/meine_Hilfe.txt'''. * `search` - Suchen nach z.B. der '''grub.cfg''': {{{#!vorlage Befehl search -f /grub/grub.cfg}}} * `quit` oder[[Vorlage(Tasten Esc)]] - Die Konsole verlassen * `halt` - Den Rechner ausschalten * `boot` bzw. '''`reboot`''' - Booten mit evtl. Veränderungen bzw. Neustart des Systems Sofern weitere Steuerkommandos, Optionen oder Tasten zur Verfügung stehen, z.B. [[Vorlage(Tasten up+down)]], werden diese im unteren Bildschirmbereich angezeigt. = Systemstart = In den Beispielen werden die Bezeichnungen '''/dev/sdXY''' und '''(hdX,Y)''' benutzt. Diese müssen auf die eigenen Gegebenheiten abgestellt werden. GRUB Legacy beginnt bei '''(hdX,Y)''' immer bei `0` zu zählen (auch bei Partitionen). 1. Start mit Symlinks: {{{#!vorlage Befehl set root=(hdX,Y) linux vmlinuz root=/dev/sdXY ro quiet splash initrd initrd.img boot }}} `vmlinuz` und `initrd.img` sind Symlinks im Verzeichnis '''/''', die auf den aktuellen Kernel bzw. die Ramdisk verweisen. Diese eigentlichen Dateien sind unter '''/boot/''' z.B. als '''vmlinuz-x.x.xx-xx-generic''' bzw. '''initrd.img-x.x.xx-xx-generic''' abgelegt. 1. Start mit Kernelangabe:{{{#!vorlage Befehl set root=(hdX,Y) linux /boot/vmlinuz-2.6.31-14-generic root=/dev/sdXY ro quiet splash initrd /boot/initrd.img-2.6.31-14-generic boot }}} Hierbei wurde gezielt der Kernel 2.6.31-14-generic aus '''/boot''' auf '''/dev/sdXY''' ausgewählt. 1. Start mit Chainloader: {{{#!vorlage Befehl set root=(hdX,Y) chainloader +1 boot }}} Aufruf eines weiteren Bootloaders, `chainloader +1` verweist dabei auf den 1. Sektor von '''(hdX,Y)''', wo der andere Bootloader liegen sollte. 1. Start mit anderer Steuerdatei: {{{#!vorlage Befehl set root=(hd0,1) configfile /boot/grub/menu.lst }}} Einlesen und Auswerten einer eigenen Steuerdatei ('''.lst''') oder einer Sicherung. Der Befehl `boot` entfällt, da Bestandteil der Konfigurationsdatei. = Editieren der Steuerdatei = [[Bild(tasten.png, 300, align=right)]] {{{#!vorlage Hinweis Da beim Start des Bootloaders noch kein deutsches Tastaturlayout vorhanden ist, ergeben sich Abweichungen, die in nebenstehender Abbildung rot hervorgehoben wurden. }}} Mit [[Vorlage(Tasten E)]] im GRUB-Auswahlmenü gelangt man in den Edit-Modus. Hier kann die aktuell geladene Steuerdatei temporär bearbeitet werden. Dies kann sehr hilfreich sein, wenn man z.B. [:Booten:Bootoptionen] oder sonstige Kernelmodifikationen ausprobieren möchte. Bei GRUB Legacy wird zur Kernelmanipulation die Zeile `kernel` bearbeitet, um die Veränderungen vorzunehmen. Als Beispiel wird hier eine '''menu.lst''' von GRUB Legacy bearbeitet, die Fehler aufweist. 1. Um bei diesem Fehler fortfahren zu können, muss man eine beliebige Taste drücken, um das GRUB-Auswahlmenü zu erhalten. {{{ Ubuntu, kernel 2.6.28-14-generic Ubuntu, [mark]linux[/mark] 2.6.28-14-generic (recovery mode) Ubuntu, memtest86+ Chainload into GRUB 2 }}} 1. Mit [[Vorlage(Tasten, up + down)]] den Eintrag auswählen (Zeile wird markiert) und mit [[Vorlage(Tasten, e)]] zum Bearbeiten aktivieren. Am unteren Bildschirmrand wird man auf weitere Optionen und Tastenkombinationen hingewiesen, die zur Bearbeitung hilfreich sind. 1. Fehlerhaften Eintrag suchen [[Vorlage(Tasten, up + down)]] {{{[mark]linux[/mark] 2.6.28-14-generic (recovery mode) }}}, erneut mit [[Vorlage(Tasten, e)]] zum Bearbeiten auswählen. 1. Überschreiben des fehlerhaften `linux` mit der korrekten Bezeichnung `kernel`{{{#!vorlage Befehl kernel }}} und den Vorgang mit [[Vorlage(Tasten, enter)]] bestätigen. 1. Mit [[Vorlage(Tasten, b)]] den geänderten Eintrag starten. Nach diesem Schema lassen sich alle Zeilen in einer Steuerdatei temporär bearbeiten. Da diese Änderungen nur für den Startvorgang modifiziert wurden, müssen sie anschließend – sofern gewünscht – in der entsprechenden Steuerdatei '''/boot/grub/menu.lst''' mit einem [:Editor:] und Root-Rechten permanent gemacht werden. Einzelheiten sind den entsprechenden Artikeln zu entnehmen. = Befehlsübersicht = ||<-2 rowclass="titel":> Befehlsübersicht || || Befehl || Beschreibung || || `blocklist` || Ausgabe der Blocklist-Notation einer Datei: `blocklist file`, siehe auch [http://www.gnu.org/software/grub/manual/html_node/Block-list-syntax.html#Block-list-syntax hier] {en} || || `boot` || Bootet das System oder den Chainloader, der vorher geladen wurde || || `cat` || Datei-Inhalt anzeigen: `cat `. Hilfreich, um die Root-partition zu finden: `cat /boot/grub/grub.cfg` || || `chainloader` || Laden eines anderen Bootloaders: `chainloader [--force] `, z.B. `chainloader (hd0,1)+1` (''--force'' wird genutzt, um das Ende des Bootsektors ''0xaa55'' zu überlesen).|| || `cmp` || Vergleicht zwei Dateien: `cmp `. Bei unterschiedlicher Größe, Ausgabe i.d.F.: 0x1234 [foo], 0x4321 [bar] || || `color` || Farben: "black, blue, green, cyan, red, magenta, brown,light-gray, dark-gray, light-blue, light-green, light-cyan, light-red, light-magenta, yellow, white" || || `configfile` || Laden einer anderen Steuerdatei, z.B `configfile (hd0,2)/boot/grub/menu.lst` || || `default` || Setzen des Default-Starteintrags: `default ` || || `device`|| Erklärt das angegebene Laufwerk als aktuelles BIOS-Laufwerk: `device (fd0) /floppy-image` / `device (hd0) /dev/sd0` || || `fallback`|| Wenn der Standardeintrag einen Fehler hat, gehe zu: `fallback `, siehe auch `default` || || `find`|| Suche nach Dateien: `find ` || || `geometry` || Information über das Laufwerk: `geometry drive [cylinder head sector [total_sector]]` || || `halt` || Rechner anhalten: `halt [--no-apm]`. Ohne Option wird das BIOS-APM aufgerufen. || || `help` || Hilfefunktion der "buildin-commands" : `help --all [pattern ...]` || || `hexdump` || Hexdump: `hexdump [ -s offset ] [-n length] { | (mem) }`, z.B. MBR anzeigen: `hexdump (hd0)0+1`|| || `hiddenmenu`|| Kein Auswahlmenü anzeigen. || || `hide` || Partition verstecken: `hide partition`, hilfreich bei DOS und Windows mit mehreren Primär-Partitionen. Siehe auch [http://www.gnu.org/software/grub/manual/html_node/DOS_002fWindows.html#DOS_002fWindows hier] {en} || || `initrd` || Laden der initialen "Ramdisk" und setzen der entsprechenden Parameter: `initrd ...` || || `kernel` || Laden des entsprechenden Kernels mit seinen Parametern: `kernel [--type=type] [--no-mem-option] ...` || || `lock` || Recovery-Kernel sperren, siehe auch `passwort` und [:Archiv/GRUB#Recovery-Modus:].|| || `makeactive` || Setze die aktive Partition als GRUB's root device. Der Befehl ist auf primäre Partitionen begrenzt.|| || `map` || Mapping für DOS/Windows: `map to_drive from_drive` || || `md5crypt` || Teil der Passwortverschlüsselung || || `pager` || Zeilenweise Ausgabe der Auflistung: `pager [flag]` Flag= off / on oder 0 / 1|| || `parttype` || Wechsel des Partitionstyps: `parttype part type`; "type"= neuer Partitionstyp und muss im Bereich "0-0xff" liegen || || `passwort` || Passwort|| || `reboot` || System neu starten || || `root` || Setzen des Root-Device || || `terminal` || Gibt aus, was für ein Terminal genutzt wird, z.B.: ''Available terminal(s): gfxterm console Current terminal: gfxterm '' || || `title` || Auswahl-Titel im Auswahlmenü|| || `unhide` || Sichtbarmachen einer versteckten Partition: `unhide partition` , siehe auch `hide` || || `vbeprobe` || Liste des kompatiblen VESA-BIOS-extension-video-mode || = Links = * [:Archiv/GRUB:] {Übersicht} Übersichtsartikel # tag: System, Installation, Bootloader, Server