Zur Zeit stehen Upgrades von Debian Lenny auf Debian Squeeze an…

Da ich auf meinem Debian Lenny Server virtuelle Maschinen unter Xen laufen habe und auf einen fast unterbruchsfreien Upgrade angewiesen bin, habe ich den ersten Teil des Upgrades ausgiebig getestet. Es wäre gelogen, wenn mir das Ganze nicht etwas Kopfzerbrechen bereitet hätte…

Wo will ich hin:

  • Debian Lenny VMs (DomU) auf Debian Squeeze aktualisieren
  • Debian Lenny Xen Hypervisor (Dom0) auf Debian Squeeze aktualisieren

Der erste Teil befasst sich mit dem Upgrade der VMs. Nach einem finalen apt-get update && apt-get -u upgrade von Debian Lenny wird die sources.list für Squeeze angepasst. Anschliessend wird apt-get update && apt-get -u dist-upgrade ausgeführt. Hier kann man mehr oder weniger bestätigen, was vorgeschlagen wird (je nach installierten Applikationen kann es einige Anpassungen geben). Der Upgrade sah dann auch ziemlich gut aus. Leider kam nach einem erneuten Start der VM folgende Fehlermeldung:

dom0:~# xm create -c /etc/xen/guests/domU1.cfg
Using config file "/etc/xen/guests/domU1.cfg".
Error: Boot loader didn't return any data!

Na toll… Anzahl funktionierende VMs: -1

Nach unzähligen weiteren Versuchen (man arbeitet ja zum Glück mit LVM Snapshots und fängt mit einer Test VM an) und stundenlanger Recherche habe ich die Lösung herausgefunden.

Das Problem wird durch pygrub und grub2 verursacht. grub2 arbeitet neu mit „named partitions“ und damit kommt pygrub nicht klar. Aus diesem Grund verzichten wir (vorübergehend) auf grub2 und installieren den alten grub wieder. Mehr Infos hier, hier und hier.

Die Lösung:

Nach dem Upgrade auf Debian Squeeze und vor dem Reboot muss grub-legacy installiert werden. Dabei wird auch gleich grub2 deinstalliert (ich habe die Config ebenfalls gelöscht (--purge)). Anschliessend habe ich zur Sicherheit das alte Kernel Image von Debian Lenny nochmals installiert. Dieses sollte man unbedingt zur Hand haben.

Anschliessend kann man rebooten. In meinem Fall hat das geklappt und die VM kommt wieder hoch.

Nun stellt sich die Frage was passiert, wenn nun Dom0 auf Squeeze aktualisiert wird. Ich gehe davon aus, dass man vorgängig auf allen VMs grub2 installieren muss, damit die VM auch mit Xen 4 wieder hochfährt. Das werde ich ebenfalls ausgiebig testen, um dann auf dem produktiven System keine Überraschungen erleben zu müssen.

Update: Wenn grub2 beibehalten werden möchte, dann muss die Datei /boot/grub/menu.lst und /boot/grub/menu.lst~ gelöscht und anschliessend update-grub2 ausgeführt werden. Anschliessend kann das System neu gestartet werden.

« »