Debian 10 Server auf Debian 11 upgraden
Unser Debian Server läuft auf Debian 10, oder wurde so an uns übergeben. Eine Aktualisierung auf Debian 11 steht an. Das packen wir heute an.
Verbinden zum Server
Mit SSH eine Verbindung zum Server herstellen. Der gewählte Benutzer muss "sudo" Berechtigungen haben.
Version überprüfen
Wir prüfen als erstes ob wirklich Debian 10 auf unserem Server installiert ist.
Wir sind startklar. Jetzt können wir mit der aktualisierung unseres Debian 10 beginnen um dann ein Upgrade auf Debian 11 "bullseye" vorzunehmen.
Server innerhalb von Debian 10 aktualisieren
Als erstes sollten wir Updates machen um sicher zu stellen, dass alle Programme und Pakete bereit sind für den Wechsel von Debian 10 auf Debian 11.
Alle installierten Pakete aktualisieren.
Wir entfernen alle nicht mehr benötigten Pakete.
Backup?
Spätestens an der Stelle sollten wir uns Gedanken über ein Backup machen. Bei vielen Anbietern gibt es diese Funktion standardmäßig. Wir machen an der Stelle ein "Snapshot" von unserem Server. Sollte so etwas nicht funktionieren können wir an diesen Punkt zurück kehren und uns bei funktionierenden Diensten genauer anschauen wo genau unser Problem liegt.
Gleichzeitig sind alle sehr wichtigen Daten bei uns mit jeweils passenden Strategien gesichert.
Wir gehen also davon aus, dass eine Sicherung eures Servers vorliegt.
Debian Sources ändern
Aptitude (Apt) lädt Pakete von sogenannten repositories für die Installation herunter. Wo Apt diese Paketquellen sucht bestimmen wir in der Datei /etc/apt/sources.list. In dieser Datei müssen wir jetzt die Codenamen von Debian 10 mit den Codenamen von Debian 11 ersetzen.
Vorher sichern wir uns diese Datei, nötig war das bei mir noch nie, aber es ist einfacher als im Falle des Falles eine Original Datei zu recherchieren.
Es öffnet sich eine Textdatei, sehen wir Inhalte sind wir Glücklich:
Wir schließen mit STRG+X
Wir haben unser System auf dem aktuellen Stand, wir haben alle Pakete gelöscht die wir nicht mehr benötigen, wir haben geprüft ob wir uns auf debian 10 befinden, wir haben ein Backup unserer sources.list datei gemacht.
Öffnet /etc/apt/sources.list im Editor.
Ich befreie meine sources.list gerne von den (unnötigen) Kommentaren also schaut meine sources nicht mehr aus wie im Backup oben gezeugt, sondern vorher so:
deb http://deb.debian.org/debian/ buster main
deb-src http://deb.debian.org/debian/ buster main
deb http://security.debian.org/debian-security buster/updates main
deb-src http://security.debian.org/debian-security buster/updates main
deb http://deb.debian.org/debian/ buster-updates main
deb-src http://deb.debian.org/debian/ buster-updates main
Hier ersetzen wir jetzt alles was mit "buster" - Debian 10 zu tun hat mit bullseye - Debian 11
deb http://deb.debian.org/debian bullseye main
deb-src http://deb.debian.org/debian bullseye main
deb http://security.debian.org/ bullseye-security main
deb-src http://security.debian.org/ bullseye-security main
deb http://deb.debian.org/debian bullseye-updates main
deb-src http://deb.debian.org/debian bullseye-updates main
Sind alle Änderungen vorgenommen verlassen wir den Editor und speichern die Datei.
In nano erledigen wir das mit STRG+O, die Nachfrage bestätigen wir mit "ENTER" und schließen mit STRG+X
Wir aktualisieren die Paketlisten - bekommen wir keinen Fehler angezeigt sind unsere Änderungen korrekt.
In der Ausgabe achten wir auf "bullseye".
Holen:1 http://deb.debian.org/debian bullseye InRelease [116 kB]
Holen:2 http://security.debian.org bullseye-security InRelease [48,4 kB]
Holen:3 http://deb.debian.org/debian bullseye-updates InRelease [44,1 kB]
Holen:4 http://security.debian.org bullseye-security/main Sources [167 kB]
Holen:5 http://security.debian.org bullseye-security/main amd64 Packages [194 kB]
Holen:6 http://security.debian.org bullseye-security/main Translation-en [123 kB]
Holen:7 http://deb.debian.org/debian bullseye/main Sources [8.633 kB]
Holen:8 http://deb.debian.org/debian bullseye/main amd64 Packages [8.184 kB]
Holen:9 http://deb.debian.org/debian bullseye/main Translation-de_DE [830 B]
Holen:10 http://deb.debian.org/debian bullseye/main Translation-en [6.239 kB]
Holen:11 http://deb.debian.org/debian bullseye/main Translation-de [1.718 kB]
Holen:12 http://deb.debian.org/debian bullseye-updates/main Sources [4.812 B]
Holen:13 http://deb.debian.org/debian bullseye-updates/main amd64 Packages [14,6 kB]
Holen:14 http://deb.debian.org/debian bullseye-updates/main Translation-en [7.929 B]
Es wurden 25,5 MB in 8 s geholt (3.029 kB/s).
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
Aktualisierung für 310 Pakete verfügbar. Führen Sie »apt list --upgradable« aus, um sie anzuzeigen.
Keine Fehler, er zeigt in meinem Fall 310 Updates und damit wissen wir, weil vorher alles aktuell war, oder aktualisiert wurde, dass wir die sources.list erfolgreich verändert haben.
Ich benutze an der Stelle gerne "upgrade --with-new-pkgs", da dieser Befehl keine alten Pakete löscht die Programme eventuell noch benötigen.
Nachdem "apt-listchanges" installiert wurde zeigt es Informationen zu den Paketen an. Wir schließen das Fenster mit "Q".
Wir werden gefragt ob wir Services während der Installation neustarten möchten - ich bestätige das mit Ja. Weiterhin fragt er ob er Konfigurationen beibehalten oder überschreiben soll - Ich wähle "aktuell lokal installierte Version beibehalten".
Es wird sehr viel Ausgabe generiert, so lange wir nicht mit einem Fehler schließen, machen wir weiter.
Jetzt starten wir ein volles Upgrade auf Debian 11.
Es öffnet sich wieder apt-listchanges - wir schließen mit "Q"
Ich bekam bei diesem Server nur 2 Rückfragen zu neueren Konfigurationsdateien, das kann deutich mehr werden, wenn man mehr an dem Server verändert hat. Der Standardweg ist die bisherigen Dateien beizubehalten.
Das kann zu problemen führen, also ist es ratsam sich zumindest kurz zu notieren welche Dateien wir nicht übernehmen, um im Falle des Falles prüfen zu können was sich verändert hat.
Wir achten darauf nicht mit einem Fehler zu enden - bei mir war dies der letzte Eintrag in der Ausgabe:
Ich gehe also von einem Erfolg aus.
Da wir das Betriebsystem verändert haben (und damit sicher auch den Kernel) benötigen wir einen sehr seltenen reboot.
Die ssh-Verbindung wird geschlossen und wir warten kurz bevor wir diese neu aufbauen. In einer perfekten Welt ist euer Kaffee getrunken und ihr macht euch einen neuen. Danach bauen wir die ssh-Verbindung neu auf.
Prüfen ob wir erfolgreich aktualisiert haben:
Prüfen ob unsere Services laufen wie sie sollen - Beispielhaft:
Je nach dem ob ihr Apache installiert und laufend hattet sollte der Service auch weiterhin laufen. Bei mir gibt es das nicht, also kann ich das auch nicht prüfen.
Wir entfernen alte Pakete die der Server nicht mehr benötigt.
Wir haben sichergestellt das nicht mehr zu benötigen und bestätigen mit "J" oder "Y".
Wenn ihr euren Server nicht abgesichert habt, beispielsweise keine Firewall installiert habt, oder euer "root" noch immer per SSH Verbinden darf, ist das der perfekte Moment das zu tun.
Wir zeigen euch in der Anleitung für die "Grundinstallation" eines Debian Servers gerne wie wir das machen.
Bei Anmerkungen oder Fragen kommt gerne auf unseren Discord.