Freitag, 17. September 2010

Upgrade von GRUB zu GRUB2

OS: Ubuntu 10.04
Kernel: Linux 2.6.32-25-generic

Wenn man sein Ubuntu immer nur upgraded und nie neu installiert, bleibt die GRUB Version erhalten und man kann sein Dateisystem nicht auf ext4 heben. Die gute Nachricht ist, das man GRUB relativ leicht auf GRUB2 heben kann. Dabei ist jedoch zu beachten das es sehr stark von der verwendeten Ubuntu Version abhängt, wie man das nun bewerkstelligen kann.
Da hier tief ins System eingegriffen wird, ist anzuraten vorher von allem Wichtigem eine Sicherung anzulegen.
Hervorzuheben ist, das bei einem Dualbootsystem eine andere Vorgangsweise notwendig ist, hierzu geben die unten angelegten Links ausführlich Auskunft.
Die hier beschriebene Vorgangsweise hat für mich funktioniert, aber garantieren daß bei jeder Systemkonstellation so hinhaut, kann ich natürlich nicht.

Zuerst stellt man mal fest, welche Version von GRUB man verwendet:

grub --version

Funktioniert dieser Befehl nicht ist das schon ein Hinweis darauf, das man unter Umständen schon GRUB2 verwendet. Sichergehen kann man dann mit diesem Befehl:

sudo hexdump -v -s 0x80 -n 2 -e '2/1 "%x" "\n"' /dev/sdXY

sdXY ersetzt man dann durch die verwendete Partition.
Der Output lässt sich dann folgendermaßen interpretieren:

5272 --> GRUB (Legacy)
aa75 --> GRUB (Legacy)
48b4 --> GRUB 2 (Version 1.96)
7c3c --> GRUB 2 (Version 1.97 oder höher)
488 --> Grub 2 core.img

Über den Synaptic-Paketmanager holt man sich danach die Pakete
grub-common
grub-pc

Dabei wird das Paket grub gleichzeitig entfernt, dem kann man zustimmen, hatte bei mir keine negativen Auswirkungen.

Bei der Installation von grub-pc taucht ein Konfigurationsfenster, das man mit ok wegklicken kann, nachdem man sich versichert hat, das das Häkchen bei "Chainload from menu.lst?" gesetzt ist.

Bevor man nun Neustartet öffnet man "/boot/grub/menu.lst" mit Schreibrechten und versichert sich, das in der /boot/grub/menu.lst folgende Passage so aussieht:

## ## End Default Options ##

title Chainload into GRUB 2
uuid (hd0,0)
kernel /boot/grub/core.img

Dort wo uuid steht, könnte unter Umständen (bei mir wars so) "root" stehen, das ersetzt man einfach durch "uuid", danach kann man Neustarten.
Nach dem Neustart führt man folgenden Befehl aus:
sudo upgrade-from-grub-legacy
Da wird man gefragt, welche Partion nun auf GRUB2 gehoben werden soll, vorsichtshalber hab ich (wie im Dialog davor angeraten) alle möglichen genommen, rein um auf Nummer sicher zu gehen.

Nun kann man mit dem Anfangs beschriebenen Befehl wieder überprüfen, welcher GRUB Version aktiv ist.

Links:
ubuntuusers.de GRUB Umgebung analysieren
ubuntuusers.de GRUB 2 Installation

Keine Kommentare:

Kommentar veröffentlichen