Hier ein paar Probleme und deren Lösung beim Update eines Ubuntu-Servers 7.10 (Gutsy Gibbon) auf die neueste Version 8.04 LTS (Hardy Heron). Der „offizielle“ Upgrade-Pfad, der auf der Ubuntu Website beschrieben wird hat leider bei mir nicht ganz geklappt – und vielleicht gibt es da draußen den einen oder anderen, der auf die selben Probleme stößt 😉
Noch einige Warnungen bevor ich loslege: Backup des Servers nicht vergessen! Die nachfolgende Beschreibung ist nur für die Leser zur Nachahmung gedacht, die wissen was sie mit ihrem Kommandozeilen-Terminal tun. Natürlich auf eigenes Risiko!
- Problem 1: Ich nutze bisher apt-get statt aptitude … beide Systeme darf man jedoch nicht parallel nutzen!
- Lösung: Kein Problem, die im offiziellen Upgrade-Pfad beschriebenen Schritte lassen sich auch mit apt-get statt mit aptitude erledigen. Die Kommandos sind also:
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install update-manager-core
$ sudo do-release-upgrade
Bitte NICHT am Ende des Upgrades restarten … Warum? Siehe Problem 3! - Problem 2: Das do-release-upgrade Script startet, bricht dann den Upgradevorgang ab und gibt an, dass auf der boot-Partition nicht genügend freier Speicherplatz zur Verfügung steht:
The upgrade aborts now. The upgrade needs a total of 52.4M free space on disk '/boot'. Please free at least an additional 18.1M of disk space on '/boot'. Empty your trash and remove temporary packages of former installations using 'sudo apt-get clean'.
- Lösung: Als erstes kann man die Paketverwaltung mit dem vorgeschlagenen Kommando aufräumen:
$ sudo apt-get clean
… allerdings reichte das auf meinem Server nicht aus. Beim Durchsehen der installierten Pakete wurde klar, dass noch eine Reihe alter Kernel-Versionen installiert waren. Und die liegen alle in der boot-Partition und können zum Teil ohne Probleme gelöscht werden. Mit dem folgenden Kommando läßt sich überprüfen, welche Kernel-Versionen auf dem eigenen Ubuntu-Server installiert sind:
$ dpkg -l | grep linux-image
In meinem Fall konnte ich das alte linux-image-2.6.15-29 und das linux-image-2.6.17-12 ohne Probleme löschen. Doch Vorsicht, die neuesten Versionen des Kernels sollte man unangetastet lassen – so hat man immer eine Fallback-Position.
$ sudo apt-get remove --purge linux-image-2.6.15*
$ sudo apt-get remove --purge linux-image-2.6.17*
Nach dem Löschen der alten Kernel-Versionen muss die menu.lst aktualisiert werden:
$ sudo update-grub
Danach checke ich zur Sicherheit immer nochmals, ob die Kernel-Liste nun korrekt ist. Dazu öffnet man die Datei einfach in einem Texteditor – wie vi:
$ sudo vi /boot/grub/menu.lst
Wenn die „automatic kernel list“ am Ende der Datei in Ordnung ist, kann man nochmals versuchen den Upgrade-Vorgang zu starten. - Problem 3: Die Ubuntu-Geeks haben dieses Problem beim Update auf 8.04 schon selbst gelöst. Doch beim Upgrade von Feisty Fawn auf Gutsy Gibbon hatte ich richtig Probleme: Das do-release-upgrade funktionierte ohne Fehlermeldung, doch als ich den Server neustarten wollte bootete er nicht! Über das Safety-System des Servers konnte ich den Übeltäter schließlich ausmachen: Die Kernel-Liste war vom do-release-upgrade-Script nicht korrekt angelegt worden!
- Lösung: Aus diesem Grund beende ich das do-release-upgrade-Script niemals mit einem Neustart des Servers. Vielmehr re-aktualisiere ich als ersten Schritt die Datei menu.lst:
$ sudo update-grub
Danach checke ich die Kernel-Liste wie oben beschrieben mit einem Text-Editor – hier vi:
$ sudo vi /boot/grub/menu.lst
Ist die „automatic kernel list“ am Ende der Datei korrekt, kann man endlich den Neustart des Servers vornehmen.
$ sudo restart
Nach dem Upgrade und dem Restart des Servers sollte dieser wieder via ssh verfügbar sein. Dann läßt sich als kleine Bestätigung die Version der installierten Linux-Version abrufen:
$ lsb_release -a
Das Ergebnis sollte wie folgt aussehen ;-):
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 8.04
Release: 8.04
Codename: hardy
Ich hoffe dieses HowTo bzw. die Beschreibung möglicher Probleme und ihrer Lösungen helfen euch etwas Zeit einzusparen die man bei dem guten Wetter sicher besser nutzen kann 😉