GRUB: Unterschied zwischen den Versionen
Greg (Diskussion | Beiträge) |
Greg (Diskussion | Beiträge) Paketname wurde geändert, grub2 nach grub2-bios |
||
Zeile 14: | Zeile 14: | ||
Dann installieren des GRUB2 Paketes: | Dann installieren des GRUB2 Paketes: | ||
pacman -S grub2 | pacman -S grub2-bios | ||
Es wird eine Meldung angezeigt: | Es wird eine Meldung angezeigt: | ||
Zeile 39: | Zeile 39: | ||
Zuerst wird GRUB2 installiert | Zuerst wird GRUB2 installiert | ||
pacman -S grub2 | pacman -S grub2-bios | ||
und dann in den MBR (Master Boot Record) geschrieben | und dann in den MBR (Master Boot Record) geschrieben |
Version vom 19. März 2012, 19:29 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, kann man wie folgt vorgehen:
Zuerst sichern der aktuellen GRUB Konfiguration:
cp /boot/grub/menu.lst /tmp
Dann installieren des GRUB2 Paketes:
pacman -S grub2-bios
Es wird eine Meldung angezeigt:
grub2-common und grub stehen miteinander in Konflikt. grub entfernen? [j/n] j
Antwort mit j
grub wird deinstalliert und grub2 wird installiert.
Anschliessend GRUB2 in den MBR installieren:
grub-install /dev/sda
Konvertieren der alten GRUB Konfiguration ins neue GRUB2 Format:
grub-menulst2cfg /tmp/menu.lst /boot/grub/grub.cfg
Fertig - es kann neu gebootet oder noch optional die neue Konfiguration angepasst werden:
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 man eine gpt Partitionstabelle bevorzugt so kann man grub2 benutzen. Genaueres hier: gpt
Zuerst wird GRUB2 installiert
pacman -S grub2-bios
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 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>
Pfadangabe 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) beinhaltet.
set root=<Partition>
GRUB2 verwendet hier im Gegensatz zu GRUB den gleichen Befehl zum Festlegen der Partition.
chainloader +1
Damit wird bewirkt, dass der Bootsektor 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 und Partitionstabellentyp benutzt wird:
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