Linux Bibel online ~ GRUN Bootloader

Creative Commons Lizenzvertrag
Dieses Werk ist lizenziert unter einer Creative Commons Namensnennung - Nicht-kommerziell - Weitergabe unter gleichen Bedingungen 3.0 Österreich Lizenz.

Change language by Google translator: ...

Jedes Betriebssystem benötigt einen Bootloader der dieses beim Einschalten des Rechners startet, Microsoft Windows, UNIX (auch MAC)) und Linux. Unter Linux ist dies bei den meisten Distributionen der so genannte GRUB - Grand Unified Bootloader, dieser vermag es nicht nur Linux zu starten sondern auch Microsoft Windows-Systeme, Linux-Einsteiger sollten nun bei der Installation auch den Bootloader GRUB zur Installation auf die erste Festplatte ("/dev/sda") wählen - es ist zwar auch möglich Linux-Systeme über den Bootloader von Windows zu starten - doch die Einrichtung dieser Art ist nicht wirklich trivial, GRUB erledigt dies automatisch.

In diesem Beitrag werden wir nun mehr über diesen Bootloader erfahren.

GRUB konfigurieren

Unter normalen Umständen ist beispielsweise unter UEFI-Systemen überhaupt nichts zu tun, auch auf Rechnern auf denen nur eine einzige Linux-Distribution läuft ist es nicht nötig etwas an der Konfiguration zu ändern. Interessant wird es aber natürlich dann wenn etwa mehrere Systeme auf dem Rechner installiert sind und man etwa das nach einer gewissen Zeit automatisch startende System ändern will, oder die Zeit die der Bootloader wartet bis er dieses startet ... Wir werden uns solche Geschichten nun etwas näher ansehen.

Als erstes gilt einmal - am Bootloader kann nur der Nutzer root - also der Administrator des Systems an der Konfiguration arbeiten, der normale Nutzer hat hier keine Rechte. Die zentrale Konfigurationsdatei des Bootloaders findet sich im System-Verzeichnis unter "/etc/default/grub". Hier hätten wir eine solche unveränderte Datei unter Debian Stretch:

GRUB - Der Bootloader unter Linux

GRUB - Der Bootloader unter Linux - /etc/default/grub

Hier noch einmal in Text-Form:

# If you change this file, run 'update-grub' afterwards to update # /boot/grub/grub.cfg. # For full documentation of the options in this file, see: # info -f grub -n 'Simple configuration' GRUB_DEFAULT=0 GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian` GRUB_CMDLINE_LINUX_DEFAULT="quiet" GRUB_CMDLINE_LINUX="" # Uncomment to enable BadRAM filtering, modify to suit your needs # This works with Linux (no patch required) and with any kernel that obtains # the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...) #GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef" # Uncomment to disable graphical terminal (grub-pc only) #GRUB_TERMINAL=console # The resolution used on graphical terminal # note that you can use only modes which your graphic card supports via VBE # you can see them in real GRUB with the command `vbeinfo' #GRUB_GFXMODE=640x480 # Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux #GRUB_DISABLE_LINUX_UUID=true # Uncomment to disable generation of recovery mode menu entries #GRUB_DISABLE_RECOVERY="true" # Uncomment to get a beep at grub start #GRUB_INIT_TUNE="480 440 1"

Zeit für Autostart ändern

Wir wollen es nicht übertreiben darum werde ich hier nur die wichtigsten Einstellungen beschreiben - die meisten Dinge hier sind für den Nutzer selbst ziemlich unwichtig. Wollen wir uns gleich zu Beginn einmal die Zeile:

GRUB_TIMEOUT=5

ansehen, mit dieser Zeile wird konfiguriert wie lange GRUB wartet bis er das automatisch konfigurierte System automatisch startet, die hier stehende "5" präsentiert für fünf Sekunden die Auswahl. Dies bedeutet der Bootloader zeigt für fünf Sekunden das Menü in dem man mit den Pfeiltasten (rauf / runter) auswählen kann welches System gestartet wird, nutzt man die Pfeil-Tasten wird der Countdown abgebrochen und der Start erfolgt erst mit der Eingabe-Taste. Man gibt hier also ganz einfach die Sekunden an die GRUB warten soll damit das vorkonfigurierte System automatisch startet.

Wichtig: Wir lernen gleich noch etwas - damit die Einstellungen nach dem speichern der Datei auch übernommen werden muss auf dem Terminal als Administrator der Befehl:

update-grub

ausgeführt werden, erst dann sind neu vor genommen Änderungen aktiv. Dieser Befehl gilt für alle Einstellungen rund um den Bootloader, nicht nur in dieser Datei.

Boot-Informationen anzeigen

Eine weitere nette Zeile die gerade für Nutzer interessant ist die wissen wollen was beim Start passiert ist die Zeile:

GRUB_CMDLINE_LINUX_DEFAULT="quiet"

Entfernt man hier die Option "quiet" komplett zeigt das System jede Aktion die der Kernel sowie Systemd während des Starts vor nimmt, dies ist besonders dann interessant wenn es Probleme gibt - dies funktioniert jedoch nur unter Debian tatsächlich so einfach denn Ubuntu und darauf basierende Systeme fügen hier noch viel weitere Optionen und weitere Zeilen ein damit das System einen hübschen grafischen Start bietet - dummerweise ändern sich diese Einstellungen auch mit jedem neuen Release darum werde ich hier auch auf die Beschreibung verzichten.

Automatisch startendes System wählen

Hat man mehrere Systeme, etwa Windows und Linux auf einem Rechner installiert startet das System zuerst das den Bootloader GRUB zuletzt installiert hat, dies lässt sich natürlich problemlos ändern. Dafür verantwortlich ist die Zeile:

GRUB_DEFAULT=0

Wichtig ist es hier gleich einmal zu verstehen das GRUB nicht bei "1" zu zählen beginnt sondern bei "0". Ehrlich gesagt könnte man beginnen die Dateien unter "/etc/grub.d" zu editieren - doch der Weg ist viel einfacher. Wichtig wenn man weitere Systeme installiert ist das man ein System wählt und mit diesem dann alle anderen Systeme konfiguriert, sonst kommt man schnell durcheinander - Windows sollte sowieso als erstes installiert werden wenn es sich um einen Rechner mit BIOS und nicht mit UEFI handelt - ansonsten überschreibt der Bootloader von Windows den von Linux ohne auch nur zu fragen. Statt jedoch den Bootloader jedes einzelnen Systems in den MBR zu installieren geht nur ein einziger tatsächlich in diesen, alle anderen Nachfragen nach den MBR werden mit "Nein" beantwortet.

Von diesem System aus öffnet man nun alle Partitionen mit einem Dateimanager als Administrator auf der / den Festplatten um diese einzuhängen - vor allem geht es um die System-Partitionen auf denen die Kernel installiert sind. Ist dies geschehen startet man auf dem Terminal - natürlich als Administrator die Befehle:

grub-mkconfig update-grub

Durch den ersten Befehl erkennt der Bootloader alle Kernel (auch den von Windows) und fügt diese in das Bootmenü ein, der zweite sichert wie oben schon beschrieben die Konfiguration. Nun startet man den Rechner neu und sieht sich die einzelnen Systeme der Reihe nach im Menü an - Windows liegt normalerweise an unterster - also an letzter Stelle, nehmen wir einmal an das Menü sieht so aus:

Debian Debian Recovery Memtest Ubuntu Open SuSE Windows 10

Dann wäre "Debian" die Position "0" und "Windows" die Position "6", um nun beispielsweise Windows automatisch zu starten ändert man die Zeile ganz einfach zu:

GRUB_DEFAULT=6

um und sichert die Konfiguration durch:

update-grub

GRUB retten

Besonders wenn man etwa Microsoft Windows nach Linux auf eine Festplatte installiert überschreibt dieses System auf einem reinen BIOS-System (nicht UEFI) den Linux-Bootloader ohne auch nur zu fragen, es gibt aber auch Meldungen beim Update von Windows 7, 8.X oder 10 bei dem dieses den Linux-Bootloader ganz einfach durch seinen eigenen ungefragt überschreibt. In einem solchen Fall ist es natürlich nicht nötig das Linux-System erneut zu installieren.

Am einfachsten gelingt dies unter direkt auf Debian basierenden Systemen (nicht Ubuntu, Kubuntu, Linux Mint, ...), legen Sie einfach noch einmal das Medium zur Installation ein oder schließen dieses an - statt die Installation auszuwählen wählen Sie den Rettungsmodus und aktivieren dort die Restauration des Bootloaders - Sie müssen nur noch wissen auf welcher Partition der Bootloader liegt - der Rettungsmodus schreibt die Konfiguration wieder in den MBR.

Unter allen Systemen funktioniert dies mit einem speziellem Live-System namens Super GRUB Disk die Sie unter Super GRUB Disk finden (12MB). Sie brennen das System auf eine CD oder schreiben das Image auf einen USB-Stick. Starten Sie den Rechner von diesem Live-System, dieses zeigt alle installierten Systeme, wählen Sie das gewünschte System - dieses wird nun durch dieses Live-System gestartet. Aus dem nun laufenden System können Sie den Bootloader nun neu in den MBR installieren was als Administrator auf dem Terminal durch die Befehle:

grub-setup /dev/sdX update-grub

gelingt, wobei Sie natürlich wieder das "X" durch die jeweilige Festplatte - meist "a" ersetzen.

Etwas umständlicher ist die erneute Installation via jeglichem anderen Live-System. Sie können beispielsweise mit einem Live-System von Open SuSE in einem Debian- oder Ubuntu-System den Bootloader neu installieren oder auch umgekehrt - nur eines ist wichtig - die selbe Prozessor-Architektur (32 64Bit).

Starten Sie den Rechner wieder vom Live-System und ermitteln nun via Terminal als Nutzer root die Belegung der Festplatte:

fdisk -l

Sie müssen nun die Partition kennen auf der der installierte Bootloader des Systems liegt, in meinem Beispiel auf "/dev/sda1". Nun hängt man diese Partition ebenfalls als Administrator am Terminal ein:

mount /dev/sda1 /mnt

Handelt es sich beim installierten System um ein Dateisystem mit BTRFS formatiert lautet der Befehl so:

mount -o subvol=@ /dev/sda1 /mnt

Nun integriert man noch einige Verzeichnisse des laufenden Live-Systems:

mount -o bind /dev /mnt/dev mount -o bind /sys /mnt/sys mount -t proc /proc /mnt/proc cp /proc/mounts /mnt/etc/mtab chroot /mnt /bin/bash

Nun kann man den Bootloader wieder in den MBR installieren - so etwa wie in den meisten Fällen wohl üblich auf die Festplatte "/dev/sda":

grub-install /dev/sda update-grub umount /mnt

Suche Nach oben Startseite Mail an den Autor Links rund um Linux









SiteLock