Grub: Difference between revisions

From Linuxwiki
Jump to navigation Jump to search
m (hat „Grub in den Masterbootrecord installieren“ nach „Grub“ verschoben)
No edit summary
Line 1: Line 1:
== Grub in den Masterbootrecord installieren ==
===Das Problem===
===Das Problem===


Line 71: Line 72:
Mit "exit" oder "ctrl+d" die Chroot-Umgebung verlassen und rebooten. Jetzt
Mit "exit" oder "ctrl+d" die Chroot-Umgebung verlassen und rebooten. Jetzt
sollte eine Grub-Auswahlliste zu sehen sein.
sollte eine Grub-Auswahlliste zu sehen sein.

== Probleme mit grub ==
Im folgenden wird nur noch grub2 behandelt.

=== Fehlermeldung beim Booten ===
Could not stat the resume device file /dev/disk/by-uuid/...
Weiterbooten nur durch Drücken der Return-Taste möglich

Passiert z.B. nach rsync von einer Platte auf die andere.
Möglicherweise ist noch die alte swap-Partition gemappt, deren UUID jetzt natürlich nicht mehr gefunden wird.

Abhilfe:<br>
UUID der neuen swap-Partition raussuchen und in der resume-Datei korrigieren.

Beispiel:
# fdisk -l | grep swap
/dev/sda3 7836 8880 8393962+ 82 Linux swap / Solaris
# ls -l /dev/disk/by-uuid | grep sda3
lrwxrwxrwx 1 root root 10 Nov 11 12:29 37367319-fe2a-424a-9c6c-aa6553471b41 -> ../../sda3

# vi /etc/initramfs-tools/conf.d/resume
eintragen:
RESUME='UUID=37367319-fe2a-424a-9c6c-aa6553471b41'

Revision as of 11:40, 11 November 2012

Grub in den Masterbootrecord installieren

Das Problem

Windows und Linux sollen auf einer Festplatte gebootet werden, z.B. Windows auf Partition 1 (hda1), Linux auf Partition 3 (hda3). Wird erst Windows und dann Linux installiert, erledigt der Bootloader grub normalerweise die Arbeit und erzeugt eine korrekte menu.lst.

Wird Windows nach Linux oder neu installiert, setzt sich der Windows-Bootloader im MBR (Master Boot Record) fest und grub fliegt raus. Da Windows keine ext3- Partitionen erkennt, bootet nur noch Windows ohne jegliche Auswahlmöglichkeit.

Die Lösung

Grub muss wieder in den MBR rein. Um die entsprechenden Kommandos auszuführen, muss man erstmal eine Linux-Rescue-CD oder Knoppix-Live-CD booten. Bei Knoppix empfiehlt sich die Eingabe von "knoppix 2" am Bootprompt. Das verhindert das langsame Booten in den Grafikmodus, den wir für das, was wir nun vorhaben, eh nicht brauchen.

Ist die CD gebootet, lässt man sich durch Eingabe von

# fdisk -l

auf der Shell anzeigen, auf welcher Partition was drauf ist. Hier ein Ausgabe-Beispiel:

Platte /dev/hda: 20.0 GByte, 20003880960 Byte
255 Köpfe, 63 Sektoren/Spuren, 2432 Zylinder
Einheiten = Zylinder von 16065 x 512 = 8225280 Bytes
Gerät boot. Anfang Ende Blöcke Id System
/dev/hda1 * 1 1275 10241406 7 HPFS/NTFS
/dev/hda2 1786 1810 200812+ 82 Linux Swap / Solaris
/dev/hda3 1811 2432 4996215 83 Linux
/dev/hda4 1276 1785 4096575 f W95 Erw. (LBA)
/dev/hda5 1276 1785 4096543+ 6 FAT16

In unserem Fall befindet sich die Linux-Partition auf /dev/hda3. Also mountet man diese Partition und chrootet sich dahin:

# mount /dev/hda3 /mnt
# chroot /mnt

Jetzt muss man nur noch das Kommando ausführen, das grub in den MBR bringt :

# grub-install /dev/hda

(ev. vorher in der Datei devices.map nachschauen, welches Laufwerk auf die /- bzw. /boot-Partition gemappt ist
Falls die Windows-Partition nicht in der menu.lst eingetragen ist, kann man dies nachholen. Datei zur Bearbeitung öffnen:

# vi /boot/grub/menu.lst

und dort folgenden Eintrag vornehmen

grub (old)

title Windows (kann man was beliebiges reinschreiben)
root (hd0,0)
makeactive
chainloader +1

grub2 (aka grub-common)

menuentry "Microsoft Windows XP Home Edition (on /dev/sda1)" {
       insmod part_msdos
       insmod ntfs
       set root='(/dev/sda,msdos1)'
       search --no-floppy --fs-uuid --set 500cbe6b0cbe4c1a
       drivemap -s (hd0) ${root}
       chainloader +1
}

Eigentlich sollte hier nichts von Hand editiert werden müssen. Mit

update-grub(2)

werden Einträge in der grub.cfg automagisch generiert.

Achtung: Wer beim grub2 die grub.cfg manuell editiert, sollte diese wegsichern. Beim nächsten Update des grub-Pakets oder des Kernels werden die Änderungen näcmlich überschrieben!

Mit "exit" oder "ctrl+d" die Chroot-Umgebung verlassen und rebooten. Jetzt sollte eine Grub-Auswahlliste zu sehen sein.

Probleme mit grub

Im folgenden wird nur noch grub2 behandelt.

Fehlermeldung beim Booten

Could not stat the resume device file /dev/disk/by-uuid/...

Weiterbooten nur durch Drücken der Return-Taste möglich

Passiert z.B. nach rsync von einer Platte auf die andere. Möglicherweise ist noch die alte swap-Partition gemappt, deren UUID jetzt natürlich nicht mehr gefunden wird.

Abhilfe:
UUID der neuen swap-Partition raussuchen und in der resume-Datei korrigieren.

Beispiel:

# fdisk -l | grep swap
/dev/sda3            7836        8880     8393962+  82  Linux swap / Solaris
# ls -l /dev/disk/by-uuid | grep sda3
lrwxrwxrwx 1 root root 10 Nov 11 12:29 37367319-fe2a-424a-9c6c-aa6553471b41 -> ../../sda3
# vi /etc/initramfs-tools/conf.d/resume

eintragen:

RESUME='UUID=37367319-fe2a-424a-9c6c-aa6553471b41'