GRUB: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
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…“
 
Die Seite wurde geleert.
 
Zeile 1: Zeile 1:


=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==
{| border=1 cellpadding=2
!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:
[[Image:grub.jpg]]
Und ESC drücken.
Im Grub-Menü sieht man jetzt alle Betriebsysteme die installiert sind, und oder verschiedene Startvarianten davon.
[[Image:grub2.jpg]]
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:
[[Image:grub3.jpg]]
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,
[[Image:grubcmdline.jpg]]
und in ihr gibt es unter anderen folgende Befehle:
{| Border=1 Cellpadding=3
|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
===Eintrag in die menu.lst===
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

Aktuelle Version vom 5. September 2016, 11:11 Uhr