Grub: Difference between revisions
No edit summary |
m (hat „Grub in den Masterbootrecord installieren“ nach „Grub“ verschoben) |
Revision as of 11:31, 11 November 2012
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.