GRUB: Unterschied zwischen den Versionen
Thomas (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „ =GRUB= ===Beschreibung=== Der Grand Unified Bootloader ist der Standardbootloader unter Linux. Er hat den früher sehrbeliebten Linux Loader (lilo) abgelöst…“) |
(kein Unterschied)
|
Version vom 5. September 2016, 09:10 Uhr
GRUB
Beschreibung
Der Grand Unified Bootloader ist der Standardbootloader unter Linux. Er hat den früher sehrbeliebten Linux Loader (lilo) abgelöst. Normalerweise wird der Bootloader von GRUB, die sogenannte „Stage 1“, in den Master Boot Record (MBR) geschrieben, welcher sich in den ersten 446 Bytes des primären Laufwerkes befindet. Aufgrund des durch die Partitionstabelle zusätzlich beschränkten Platzes kann die Stage 1 nur den ersten Sektor der sogenannten „Stage 2“ laden. In diesem Sektor befinden sich der Programmcode und eine Blockliste zum Lesen der restlichen Sektoren von Stage 2.
Die Stage 2 kann sich auf einer beliebigen Partition befinden. Unter Unixsystemen befindet sie sich meistens unter /boot/grub/stage2. Stage 2 enthält die Dateisystemtreiber, den Programmcode für das Auswahlmenü und die GRUB-Kommandozeile sowie die Laderoutine für die Betriebssystemkerne (Kernel).
Nach dem Laden von Stage 2 wird, sofern vorhanden, die Konfigurationsdatei /boot/grub/menu.lst eingelesen und verarbeitet. In dieser Datei sind die Einträge des Auswahlmenüs definiert, welche nun in der Konsole angezeigt werden. Aus dem Menü kann nun das zu bootende Betriebssystem ausgewählt oder Befehle über die Kommandozeile direkt an GRUB gesendet werden. Stage 2 stellt somit den eigentlichen Bootloader dar, welcher einen Kernel oder den Bootsektor einer Partition lädt.
Plattenbezeichnung
Egal ob SATA/SCSI oder IDE die erste Festplatte unter Grub heisst immer (hd0) und die erst Partition (hd0,0)
Optionen
| GERÄT | SATA/SCSI | IDE | GRUB |
|---|---|---|---|
| Erste Platte | /dev/sda | /dev/hda | (hd0) |
| Erste Partition auf erster Platte | /dev/sda1 | /dev/hda1 | (hd0,0) |
| Zweite Partition auf erster Platte | /dev/sda2 | /dev/hda2 | (hd0,1) |
| Dritte Partition auf erster Platte | /dev/sda3 | /dev/hda3 | (hd0,2) |
| Zweite Platte | /dev/sdb | /dev/hdb | (hd1) |
| Erste Partition auf zweiter Platte | /dev/sdb1 | /dev/hdb1 | (hd1,1) |
Konfigurationsdatei
root@mcm-smk-test:~# cat menu.lst default 0 timeout 3 hiddenmenu title Ubuntu 8.04.1, kernel 2.6.24-19-server root (hd0,1) kernel /boot/vmlinuz-2.6.24-19-server root=UUID=019d01c7-526a-4c8e-87c0-be4c71ee5a9a ro quiet splash initrd /boot/initrd.img-2.6.24-19-server quiet title Ubuntu 8.04.1, kernel 2.6.24-19-server (recovery mode) root (hd0,1) kernel /boot/vmlinuz-2.6.24-19-server root=UUID=019d01c7-526a-4c8e-87c0-be4c71ee5a9a ro single initrd /boot/initrd.img-2.6.24-19-server title Ubuntu 8.04.1, memtest86+ root (hd0,1) kernel /boot/memtest86+.bin quiet title 2003 server rootnoverify (hd0,0) chainloader +1
Konfiguration im Detail
Wenn nichts anders ausgewählt wird Block 0 geladen
default 0
Es werden 3 Sekunden gewartet bis der Defaultblock gestartet wird
timeout 3
Das Bootmenu wird versteckt
hiddenmenu
Der Titel von Block 0
title Ubuntu 8.04.1, kernel 2.6.24-19-server
Das Rootdev von Block 0,1 bedeutet erste Platte zweite Partition
root (hd0,1)
Nach dem Laden des Kernels soll die Partition mit der UUID ro als / gemoutet werden quiet bedeutet wenige ausgaben und mit splash wird ein Bild beim booten angezeigt
kernel /boot/vmlinuz-2.6.24-19-server root=UUID=019d01c7-526a-4c8e-87c0-be4c71ee5a9a ro quiet splash
Alternative Schreibweise
kernel /boot/vmlinuz-2.6.24-19-server root=/dev/sda2 ro quiet splash
Eine Ramdisk wird geladen
initrd /boot/initrd.img-2.6.24-19-server
Keine Bildschirmausgabe
quiet
Der Titel von Block 1
title Ubuntu 8.04.1, kernel 2.6.24-19-server (recovery mode)
Das Rootdev von Block 0,1 bedeutet erste Platte zweite Partition
root (hd0,1)
Nach dem Laden des Kernels soll die Partition mit der UUID ro als / gemoutet werden Es soll in den Single User Runlevel gebootet werden
kernel /boot/vmlinuz-2.6.24-19-server root=UUID=019d01c7-526a-4c8e-87c0-be4c71ee5a9a ro single
Eine Ramdisk wird geladen
initrd /boot/initrd.img-2.6.24-19-server
Der Titel von Block 2
title 2003 server
Setze Rootdec auf die erste Partition der ersten Festplatte checke das Dateisystem nicht
rootnoverify (hd0,0)
Lade ersten Block(512Byte) aus dieser Partition
chainloader +1
Die erste Stufe von Grub im MBR installieren
Über grub
root@zero:~# grub grub> root (hd0,1) grub> install /boot/grub/stage1 (hd0) /boot/grub/stage2 p /boot/grub/menu.lst
Über grub-install
root@zero:~# grub-install /dev/sda Searching for GRUB installation directory ... found: /boot/grub
Grub Hotkeys und Befehle
Um vor dem booten eines Betriebssystems ins Grub-Menü zu gelangen mussman auf diese Ausgabe achten:
Und ESC drücken.
Im Grub-Menü sieht man jetzt alle Betriebsysteme die installiert sind, und oder verschiedene Startvarianten davon.
Unter der Betriebsystemauswahl sieht man die benutzbaren Hotkeys um sich im Menü bewegen zu können.
Wie man sieht kann man mit der Enter Taste eines der Betriebsysteme starten. Mit der c Taste kommt man in die die Command Line und mit e gelangt man in die boot-Einstellungen des jeweiligen Betriebsystems.
Probieren wir mal das e, dann sieht das Resultat so aus:
Hier können wir die verschienden Zeilen die beim booten eines Betriebsystems ausgeführt werden sehen. Wie unten wieder beschrieben sind unsere Möglichkeiten, einfach nur zu booten mit b eine Zeile zu editieren mit e, mit c wieder in die Command Line zu gelangen, mit o eine Zeile VOR und O ( Shift+o ) NACH der momentan ausgewählten Zeile einzufügen und d um Zeilen zu löschen.
Was man hier z.B. mit e anstellen kann ist Ungeschütztes Linux Hacken
Man beachte: Englische Tastatur Einstellung
Um aus jedweden Menü oder der Command Line rauszukommen drückt man einfach ESC
Die Command Line sieht so aus,
und in ihr gibt es unter anderen folgende Befehle:
| root | Bestimmt GRUB's root Festplatte und Partition |
| clear | Säubert die Command Line |
| configfile | Lädt Dateien als Konfigurationsdateien |
| cat | Gibt den Inhalt von Dateien aus |
| quit | |
| reboot | Startet den Rechner neu |
Ganz wichtig ist wie man in der Command Line oben sehen kann Tab da es nicht nur alle Befehle anzeigt sondern auch Befehle sowie Verzeichniss- und Gerätenamen automatisch vervollständigt.
Beispiele zur Benutzung:
grub> root (hd0,0)
grub> cat (hd0,0)/etc/passwd root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh sys:x:3:3:sys:/dev:/bin/sh sync:x:4:65534:sync:/bin:/bin/sync ...
Grub mit Passwort absichern
Passwort mit grub-md5-crypt erstellen
root@lydia:~# grub-md5-crypt Password: password Retype password: password $1$QPAL7/$dsvniui.dj1tTYxJgHYcA1
Man kann nun entweder eine Sektion oder den das komplete Menu schützen.
password --md5 $1$QPAL7/$dsvniui.dj1tTYxJgHYcA1
GRUB rootdelay
livecd booten -> root
mkdir /mnt mount /dev/sda1 (bootpartition) /mnt mount -o bind /sys /mnt/sys mount -o bind /proc /mnt/proc mount -o bind /dev /mnt/dev chroot /mnt vi /etc/default/grub
GRUB_HIDDEN_TIMEOUT=0 --- auskommentieren
GRUB_HIDDEN_TIMEOUT_QUIET=true --- soll auf false
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" --- "rootdelay=60" eintragen
#GRUB_DISABLE_LINUX_UUID=true --- aktiv machen
wq'
update-grub cat /boot/grub/grub.cfg umount /mnt/sys umount /mnt/proc umount /mnt/dev umount /mnt
reboot
grub-fix für ext3
- Grub kommt nicht mit dem ext3 Dateisystem zurecht, bei denen die Inode Size größer als 128 ist.
- Standardmäßig wird eine ext3 Dateisystem mit einer Inode Size von 256 angelegt.
$ sudo tune2fs -l /dev/sdaN | grep "Inode size" Inode size: 256
- Die Inode Size kann nachträglich nicht geändert werden!
$ mke2fs -T ext3 -I 128 /dev/sdaN



