Update eines Ubuntu Servers
Aus HackerWiki
Contents |
Einleitung
Im folgenden wird kurz beschrieben, welche Schritte notwendig sind um einen Server mit Ubuntu auf ein aktuelleres Release zu updaten. Es wird dabei davon ausgegangen, dass nur Remote-Zugriff besteht, wie es z.B. bei vielen Rootservern ohne serielle Konsole der Fall ist.
Aktualisierung der Software
Zuerst einmal müssen wir die Datei /etc/apt/sources.list anpassen. Dort ändern wir einfach den Namen des momentan installierten Release auf das, worauf wir aktualisieren wollen. Es wird empfohlen keine stable-Release-Version zu überspringen. D.h., dass man z.B. kein Hoary auf ein Dapper updaten sollte, sondern vorher einen Zwischenschritt über Breezy macht.
Nachdem wir die sources.list angepasst haben, führen wir nun ein dist-upgrade aus:
bash# apt-get update bash# apt-get dist-upgrade
Die Fragen der Installer sind natürlich passend zu beantworten. Um sicherzustellen, dass auch wirklich alles funktioniert hat, sollten wir nun noch ein
bash# apt-get -f install
ausführen. Nur, wenn dieses meldet, dass alles o.k. ist und keine weiteren Pakete installieren oder deinstallieren will, können wir beim nächsten Abschnitt weiter machen. Installiert oder deinstalliert dieser Befehl weitere Pakete, ist danach ein erneutes
bash# apt-get dist-upgrade
notwendig. Und auch hier sollte wieder mit
bash# apt-get -f install
überprüft werden, ob diesmal alles problemlos lief. Diese Prozedur ist so lange zu wiederholen, bis beide Befehle keine Pakete mehr installieren oder deinstallieren wollen und keine Fehler mehr melden.
Überprüfung der essentiellen Konfigurationen
Nun sollten wir sicherstellen, dass alle Konfigurationen auch stimmen und der Server nicht wegen eines Konfigurationsfehlers Probleme beim Booten bekommt. Zuerst widmen wir uns dem Bootloader und schauen in der Datei /boot/grub/menu.lst nach, ob dort der neue Kernel, der beim Upgrade installiert wurde, auch korrekt eingetragen und als Default eingestellt ist. Weiterhin sollte man die Module in der /etc/mkinitrd/modules überprüfen und zur Sicherheit eine neue initrd für den neuen Kernel erstellen. In dieser sollten unbedingt alle notwendigen Module für Festplatten-Controller, Dateisystem und Netzwerk enthalten sein. Ausserdem sollte man überprüfen, dass der /System.map-Link auf die neue Version der System.map im /boot-Verzeichnis verweist und auch die /initrd.img auf die soeben erstellte initrd zeigt.
Als nächstes sollten die Netzwerk-Konfigurationen geprüft werden, die in /etc/network/ zu finden sind. Idealerweise fügt man das Netzwerkmodul zur Sicherheit in die initrd ein.
Zu guter Letzt stellen wir mit einem Runlevel-Editor (z.B. rcconf) sicher, dass alle notwendigen Dienste gestartet werden. Ist das erledigt, können wir uns an den ersten Reboot wagen.
Achtung: Sollte man Änderungen an system-essentiellen Dateien und Diensten wie z.B. Einrichtung eines andere getty oder Änderungen an Konfigurationen, die vor dem Login eingelesen werden, gemacht haben, sollte man überprüfen, ob alle Voraussetzungen für die geänderten Konfigurationen nach dem Upgrade noch gegeben sind. (z.B. nachsehen, ob das entsprechende getty noch installiert ist, Programme die im Cron waren auf ihr Vorhandensein prüfen usw.).
Nachwort
Wenn das alles erledigt ist, können wir einen ersten Reboot wagen. Zumindest sollte es bis zum Remote-Login im neuen System keine Probleme mehr geben. Eine Fehlerüberprüfung des Systems ist aber dennoch anzuraten. Dazu einfach mal alle Logdateien auf auftretende Fehler beim und nach dem Booten überprüfen und diese falls notwendig beheben.
bitmuncher 21:44, 12. Jun 2006 (CEST)

