GRUB: Unterschied zwischen den Versionen

Aus wiki.archlinux.de
Zur Navigation springen Zur Suche springen
(Fehlermeldung bei Änderung von grub nach grub2 und automatische grub.cfg erzeugen per mkconfig)
Zeile 16: Zeile 16:
 
  pacman -S grub2
 
  pacman -S grub2
  
Hinweis: Es wird angenommen, dass sich GRUB bereits lauffähig auf /dev/sda befindet !
+
Es wird eine Meldung angezeigt:
 
+
grub2-common und grub stehen miteinander in Konflikt. grub entfernen? [j/n] j
 +
Es wird zuerst grub entfernt und danach grub2 installiert werden. Antworten mit j<br>
 +
grub wird deinstalliert und grub2 wird installiert.<br>
 
Anschliessend installieren wir GRUB2 in den MBR:
 
Anschliessend installieren wir GRUB2 in den MBR:
  
 
  grub-install /dev/sda
 
  grub-install /dev/sda
  
Und zuletzt konvertieren wir unsere alte GRUB Konfiguration ins neue GRUB2 Format:
+
Konvertieren unsere alte GRUB Konfiguration ins neue GRUB2 Format:
 
 
 
  grub-menulst2cfg /tmp/menu.lst /boot/grub/grub.cfg
 
  grub-menulst2cfg /tmp/menu.lst /boot/grub/grub.cfg
 
 
Fertig - wir können rebooten oder noch optional die neue Konfiguration anpassen:
 
Fertig - wir können rebooten oder noch optional die neue Konfiguration anpassen:
  
Zeile 35: Zeile 35:
  
 
== Installation ==
 
== Installation ==
 
+
Falls du eine gpt Partitionstabelle bevorzugst so kannst du grub2 benutzen siehe hier:  [[gpt]]<br>
 
Zuerst wird GRUB2 mit [[pacman]] installiert
 
Zuerst wird GRUB2 mit [[pacman]] installiert
  
Zeile 46: Zeile 46:
 
== Konfiguration ==
 
== Konfiguration ==
  
 +
Man kann die Konfiguration automatisch durchführen lassen mit
 +
grub-mkconfig -o /boot/grub/grub.cfg
 +
oder per Hand selber eingeben:<br>
 
GRUB2 nutzt nun die Datei ''/boot/grub/grub.cfg'' als Konfigurationsdatei. Dabei ist darauf zu achten, dass GRUB2 die Festplatten anders als Linux und [[GRUB]] benennt:
 
GRUB2 nutzt nun die Datei ''/boot/grub/grub.cfg'' als Konfigurationsdatei. Dabei ist darauf zu achten, dass GRUB2 die Festplatten anders als Linux und [[GRUB]] benennt:
  
Zeile 178: Zeile 181:
  
 
* [[GRUB]]
 
* [[GRUB]]
 +
* [[gpt]]
 +
  
 
== Weblinks ==
 
== Weblinks ==

Version vom 19. Februar 2012, 20:17 Uhr

GRUB2 ist die nächste Generation des GRand Unified Bootloaders (GRUB) und stellt eine komplette Neuentwicklung dar, an der aktiv gearbeitet wird.


Upgrade

Um ein Upgrade von GRUB auf GRUB2 durchzuführen, gehen wir folgendermassen vor:

Zuerst sichern wir unsere aktuelle GRUB Konfiguration:

cp /boot/grub/menu.lst /tmp

Dann installieren wir das GRUB2 Paket:

pacman -S grub2

Es wird eine Meldung angezeigt:

grub2-common und grub stehen miteinander in Konflikt. grub entfernen? [j/n] j

Es wird zuerst grub entfernt und danach grub2 installiert werden. Antworten mit j
grub wird deinstalliert und grub2 wird installiert.
Anschliessend installieren wir GRUB2 in den MBR:

grub-install /dev/sda

Konvertieren unsere alte GRUB Konfiguration ins neue GRUB2 Format:

grub-menulst2cfg /tmp/menu.lst /boot/grub/grub.cfg

Fertig - wir können rebooten oder noch optional die neue Konfiguration anpassen:

nano /boot/grub/grub.cfg

Eine detaillierte Konfiguration von GRUB2 wird weiter unten beschrieben.

Eine frische Installation von GRUB2 ohne bereits bestehendem GRUB wird im Teil "Installation" beschrieben.

Installation

Falls du eine gpt Partitionstabelle bevorzugst so kannst du grub2 benutzen siehe hier: gpt
Zuerst wird GRUB2 mit pacman installiert

pacman -S grub2

und dann in den MBR (Master Boot Record) geschrieben

grub-install /dev/sda

Konfiguration

Man kann die Konfiguration automatisch durchführen lassen mit

grub-mkconfig -o /boot/grub/grub.cfg

oder per Hand selber eingeben:
GRUB2 nutzt nun die Datei /boot/grub/grub.cfg als Konfigurationsdatei. Dabei ist darauf zu achten, dass GRUB2 die Festplatten anders als Linux und GRUB benennt:

Die erste Partition der ersten Festplatte ist (hd0,1), die zweite Partition (hd0,2) und die erste Partition auf der zweiten Festplatte (hd1,1) usw..

Allgemeine Konfiguration

set default=<Nummer_des_Eintrags>

Dieser Eintrag wird automatisch geladen. (GRUB2 beginnt bei 0!)

set timeout=<Zeit_in_Sekunden>

Der für "default" angegebene Eintrag wird nach dieser Zeit gestartet.

menuentry "Titel_des_Eintrags" { <Eintrag> }

Alle Befehle innerhalb der geschweiften Klammer beziehen sich auf diesen Eintrag, der im Menü mit dem hier angegebenen Titel angezeigt wird.

Linux

set root=<Partition>

Bezeichnet die Partition, auf der sich das Kernelimage bzw. die Ramdisk befindet.

linux <Pfad_zum_Kernel_und_Parameter>

Pfadangabe zum Linux-Kernel. Dahinter stehen die Parameter der Kernels. (Wenn eine "boot"-Partition verwendet wird liegt der Kernel in "/"!)

initrd <Pfad>

Pfandangabe zur Ramdisk. (Wenn eine "boot"-Partition verwendet wird liegt die Ramdisk in "/"!)

Hinweis: Der Parameter vga des Linux Kernels wird von Grub2 nicht mehr unterstüzt. Statt dessen muss der Befehl gfxpayload verwendet werden.

gfxpayload <resolution>

Angabe der Auflösung des Linux Framebuffers. Beispiel: 1024x768x32.

Damit dieser Befehl funktioniert, muss noch das Grub2-Modul vbe in der allgemeinen Konfiguration geladen werden.

insmod vbe

Windows/Chainloading

GRUB2 bietet die Möglichkeit, Bootloader anderer Betriebssysteme zu starten (Chainloading). Dies ist bei Windows der Fall, das seinen Bootloader in den Partition Boot Record, den Bootsector einer Partition, im Regelfall (hd0,1).

set root=<Partition>

GRUB2 verwendet hier im Gegensatz zu GRUB den gleichen Befehl zum Festlegen der Partition.

chainloader +1

Damit wird bewirkt, dass der Bootsector der Partition geladen wird.

Beispieldatei

# Config file for GRUB2 - The GNU GRand Unified Bootloader
# /boot/grub/grub.cfg

# DEVICE NAME CONVERSIONS
#
#  Linux           Grub
# -------------------------
#  /dev/fd0        (fd0)
#  /dev/sda        (hd0)
#  /dev/sdb2       (hd1,2)
#  /dev/sda3       (hd0,3)
#

insmod vbe

set timeout=5

set default=0

menuentry "Arch Linux" {
set root=(hd0,2)
gfxpayload=1024x768x32
linux /boot/vmlinuz-linux root=/dev/sda2 ro
initrd /boot/initramfs-linux.img
}

menuentry "Windows" {
set root=(hd0,1)
chainloader +1
}

Grub2 Bootcd erstellen

Paket libisoburn installieren. (Wird zum Erstellen der isodatei benötigt)

Ein Verzeichnis anlegen z.B. : /home/user/zurgrub2iso/boot/grub/i386-pc

Darin die Datei grub.cfg kopieren.

Es müssen noch einige Module mit in die grub.cfg eingetragen werden je nachdem was für ein Dateisystem benutzt ist:

insmod vbe
insmod part_msdos
insmod ext2
insmod reiserfs
insmod ntfs

Iso generieren mit:

grub-mkrescue --output=grub2.iso /home/user/zurgrub2iso

Iso brennen:

cdrskin -v dev=/dev/sr0 speed=16 -eject grub2.iso

Bootcd testen.

Grub2 auf einer seperaten Bootloader Partition installieren

Manchmal ist es sinnvoll den Bootmanager auf einer seperaten Bootloader Partition zu installieren. Die Anwendung wäre interessant für Benutzer mit mehreren Betriebssystemen von denen der Bootloader unabhängig sein soll.

Die Partition kann eine Größe von 16MB haben. Als Beispiel wäre die Partition für den Bootloader auf /mnt/Bootpart gemountet.

Installieren des grub2 auf die seperate Partition und schreiben des MBR:

grub-install --no-floppy --root-directory=/mnt/Bootpart /dev/sda

grub.cfg wie oben ins Verzeichnis /mnt/Bootpart/boot/grub hinzufügen.

device.map in /mnt/Bootpart/boot/grub/ ändern wenn man statt dev-id sda benutzen will.

#(hd0)	/dev/disk/by-id/ata-ST3250318AS_9VY4G2HA
(hd0)	/dev/sda
reboot

Siehe auch


Weblinks