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, 09:11 Uhr