Marco Burmeister

  private Homepage



Virtualisierung - Proxmox - Proxmox Upgrade von Version 8 auf Version 9

Diese Anleitung beschreibt meinen ersten Upgrade einer Proxmox Virtualisierung.
In dem Fall spreche ich von der Aktualisierung von Proxmox 8 auf Proxmox 9.

Ich habe mich hierbei an die Anleitung von Proxmox gehalten. Allerdings habe ich nach der Aktualisierung Probleme mit dem Starten des Systems bekommen. Einen Workaround habe ich erstmal gefunden und auch dokumentiert.

Im Ergebnis habe ich nun ein Proxmox 9 mit einem Linux GRUB in Version 2.06 statt 2.12.

Hinweis:
Für die Richtigkeit der Daten übernehme ich keine Gewähr!


WICHTIG:
Vor allen Arbeiten, die hier genannt werden, muss ein Backup aller VMs, Container und des Grundsystems vorgenommen werden.
Ich kann nicht sagen, ob spätere Aktualisierungen andere Fehlermeldungen bringen werden und ob die hier genannte Problemlösung auch in anderen Umgebungen funktionieren wird.

Die Seite ist in die folgenden Bereiche eingeteilt:




top Proxmox Upgrade

Das Upgrade von Proxmox 8 auf Proxmox 9 lief in meinem Fall grundsätzlich erfolgreich durch.
Ich hatte nur nach dem Restart am Ende das Problem, dass GRUB meine Umgebung nicht mehr starten konnte und ich damit meinen Server nicht mehr nutzen konnte.
Wie ich mein Restart-Problem lösen konnte, habe ich unter Troubleshooting beschrieben.

Folgendes Vorgehen habe ich genutzt:

  1. Zunächst bringen wir unser aktuelles System auf aktuellen Stand
    apt update
    apt full-upgrade -y
    reboot
  2. Danach führen wir das Programm aus, um vor der Aktualisierung unser bestehendes System zu prüfen.
    pve8to9 --full
  3. Die Ausgabe aus folgendem Befehl bringt uns 1-2 Bildschirmseiten und in meinem Fall mit folgendem Ergebnis (ich habe nur die wichtigsten Informationen hier aufgeschrieben):
    [...]
    FAIL: systemd-boot meta-package installed. This will cause problems on upgrades of other boot-related packages. Remove 'systemd-boot' See https://pve.proxmox.com/wiki/Upgrade_from_8_to_9#sd-boot-warning for more information.
    [...]
    = SUMMARY =

    TOTAL: 50
    PASSED: 36
    SKIPPED: 6
    WARNINGS: 3
    FAILURES: 1

    ATTENTION: Please check the output for detailed information!
    Try to solve the problems one at a time and then run this checklist tool again.
  4. Aufgrund der Ausgabe habe ich die angegeben Komponente entfernt und etwas nachinstalliert.
    apt remove systemd-boot
    apt install systemd-boot-efi systemd-boot-tools
  5. Nun nochmals den Prüfbefehl ausführen.
    pve8to9 --full
  6. Die Ausgabe brachte nun bei mir:
    = SUMMARY =

    TOTAL: 50
    PASSED: 36
    SKIPPED: 6
    WARNINGS: 3
    FAILURES: 1

    ATTENTION: Please check the output for detailed information!
  7. Zur Sicherheit habe ich nun nochmals die Aktualisierungsbefehle im bestehenden Release ausgeführt:
    apt update
    apt dist-upgrade
    pveversion
  8. Der letzte Befehlt pveversion bringt hierbei die folgende Ausgabe
    pve-manager/8.4.13/5b08ebc2823dd9cb (running kernel: 6.8.12-14-pve)
  9. Nun stellen wir die Repositories auf das neue System um.
    sed -i 's/bookworm/trixie/g' /etc/apt/sources.list
    sed -i 's/bookworm/trixie/g' /etc/apt/sources.list.d/*
  10. Für das OS selbst sollten wir auch noch weitere Ergänzungen vornehmen.
    vi /etc/apt/sources.list.d/debian.sources
    Inhalt:
    Types: deb deb-src
    URIs: http://deb.debian.org/debian/
    Suites: trixie trixie-updates
    Components: main non-free-firmware
    Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

    Types: deb deb-src
    URIs: http://security.debian.org/debian-security/
    Suites: trixie-security
    Components: main non-free-firmware
    Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
  11. Aus der Anleitung ergeben sich noch weitere Eintragungen, die wir machen müssen.
    Non-Enterprise Repository hinzufügen:
    cat > /etc/apt/sources.list.d/proxmox.sources << EOF
    Types: deb
    URIs: http://download.proxmox.com/debian/pve
    Suites: trixie
    Components: pve-no-subscription
    Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
    EOF

    Ceph Package Repository eintragen:
    cat > /etc/apt/sources.list.d/ceph.sources << EOF
    Types: deb
    URIs: http://download.proxmox.com/debian/ceph-squid
    Suites: trixie
    Components: no-subscription
    Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
    EOF
  12. Nun beginnt die erste Aktualisierung, die wir mit dem Befehl
    apt update
    starten.
  13. Danach starten wir den eigentlichen Upgrade mit dem Befehl
    apt dist-upgrade
    Während des Ablaufs müssen einige Fragen beantwortet werden. Das folgt nun an den nächsten Punkten.
  14. Information zu OpenSSH.
    Diesen Text habe ich einfach nur verlassen.
  15. Nun folgt die Nachfrage nach /etc/issue
    Hier habe ich die Default-Vorgabe
    "N - keep your currently-installed version"
    gewählt.
  16. Es folgte eine Nachfrage in einem GUI nach dem Tastatur-Layout bei dem ich "German" ausgewählt habe.
  17. Danach folgte ein weiteres GUI mit der Nachfrage, ob Dienste währen der Aktualisierung automatisch neu gestartet werden sollen.
    Restart services during package upgrads without asking?
    Hier habe ich mit "Yes" geantwortet.
  18. Jetzt wird nachgefragt, wie mit der /etc/lvm/lvm.conf umgegangen werden soll. Hier habe ich ebenfalls mit
    "N - keep your currently-installed version"
    geantwortet, da ich mal Änderungen vorgenommen hatte.
  19. Nachdem einige Pakete eingespielt worden sind, landen wir am Ende wieder am Prompt.
  20. Nun kann zur Verifizierung wieder der Befehl pve8to9 ausgeführt werden.
    Ausgabe bei mir am Ende:
    = SUMMARY =

    TOTAL: 50
    PASSED: 36
    SKIPPED: 6
    WARNINGS: 4
    FAILURES: 0

    ATTENTION: Please check the output for detailed information!
  21. In den folgender Datei /etc/apt/sources.list und im Verzeichnis /etc/apt/sources.d nun nochmals prüfen, ob wir den String "bookworm" noch in einer Datei finden.
  22. Zum Ende nochmals die Aktualisierungsbefehle im neuen Release ausführen:
    apt update
    apt dist-upgrade
    pveversion
  23. Der letzte Befehlt pveversion bringt hierbei die folgende Ausgabe
    pve-manager/9.0.9/117b893e0e6a4fee (running kernel: 6.8.12-14-pve)
  24. Upgrade ist erfolgreich durchgeführt und wir sollten nun den Rechner neu starten.

top Troubleshooting

Nach dem erfolgreichen Upgrade von Proxmox habe ich den Rechner neu gestartet.
Leider konnte der Rechner nicht mehr starten. Nach dem UEFI/BIOS kam der GRUB-Bootloader und danach sah ich eine Fehlermeldung der folgenden Art (Beispiel):


Loading Linux 6.14.8-...
error: out of memory.
Loading initial ramdisk
...
error: you need to load the kernel first.
Press any key to continue.	

Im Ergebnis konnte ich mein System erst wieder starten, nachdem ich GRUB auf eine ältere Version zurückgeändert hatte (von GRUB 2.12-9 auf GRUB 2.06-13). Der darauf folgende Restart ermöglichte einen kompletten normalen Start, wie ich es gewohnt war. Allerdings hatte ich nun endlich Proxmox 9 statt Proxmox 8.4.

Was wird zur Lösung benötigt?
Es wird ein Linux-Start-Medium wie Knoppix oder Proxmox benötigt aus dem ich mittels chroot zur Proxmox-Installation wechseln kann.

Folgendes Vorgehen habe ich angewendet:
  1. Rechner mit Proxmox Installation ist gestoppt
  2. Einstecken Knoppix-USB
  3. Rechner mit Proxmox Installation starten und Knoppix USB Stick als Boot-Medium auswählen.
  4. Warten auf kompletten Start von Knoppix und öffnen eines Terminals als root OS Benutzer
  5. Wir aktivieren erstmal alle VGs mit dem Befehl vgchange -ay
  6. Nach dem Start von Knoppix müssen wir zunächst herausfinden, wo die EFI-Partion und die Root-Partition auf dem eigenen System zu finden ist. In meinem Fall habe ich hierzu den Befehl
    fdisk -l|more
    genutzt.
    Es kann sein, dass auch LVM verwendet wird, weshalb hier dann mittels vgdisplay und lvdisplay geprüft werden muss.

    Folgendes Ergebnis:
    TypDevice
    root/dev/pve/root
    EFI/dev/nvme0n1p2
  7. Wir legen uns nun ein Verzeichnis an, um chroot zu ermöglichen.
    Bei mir habe ich das wie folgt gemacht:
    mkdir /MBU
  8. Nun mounten wir unser Grundsystem:
    mount /dev/pve/root /MBU
    mount /dev/nvme0n1p2 /MBU/boot/efi

    mount -o rbind /proc /MBU/proc
    mount -o rbind /dev /MBU/dev
    mount -o rbind /sys /MBU/sys
    mount -o rbind /run /MBU/run
  9. Es folgt der chroot mit dem Befehl:
    chroot /MBU
  10. Ich habe nun zunächst die gelöscht Komponente aus den Installationsvorbereitungen wieder installiert, weil ich dachte, dass es daran lag. Es scheint dem System nicht zu schaden, es zu haben.
    apt install systemd-boot
  11. Im nächsten Schritt habe ich die alten bookworm Repository Informationen wieder teilweise aktiviert, um an den alten GRUB aus Version 2.06 zu kommen.
    In der Konfigurations-Datei /etc/apt/sources.list habe ich deshalb folgendes zusätzlich eingetragen:
    deb http://ftp.de.debian.org/debian bookworm main
  12. Im Anschluß folgte nun ein Refresh der Repository-Informationen mittels des Befehls apt update
  13. Nun muss GRUB in älterer Version installiert werden.
    In meinem Umfeld musste ich hierfür den folgenden Befehl verwenden:
    apt install grub2-common=2.06-13+deb12u1 grub-efi-amd64=2.06-13+deb12u1 grub-pc-bin=2.06-13+deb12u1 grub-efi-ia32-bin=2.06-13+deb12u1 grub-efi-amd64-bin=2.06-13+deb12u1 grub-common=2.06-13+deb12u1 grub-efi-amd64-signed=1+2.06+13+deb12u1
  14. Danach habe ich nochmals GRUB aktualisieren lassen mit dem Befehl update-grub
    (das war aber meiner Meinung nach überflüssig, da es vorher implizit lief)
  15. Zum Ende müssen wir noch das Repository vom alten Release deaktivieren (bookworm). In der Konfigurations-Datei /etc/apt/sources.list habe ich deshalb folgendes auskommentiert:
    # deb http://ftp.de.debian.org/debian bookworm main
  16. Fertig - nun kann der Rechner neu gestartet werden und sollte nun vollständig starten.
    Hierfür die chroot-Umgebung verlassen und Knoppix herunterfahren. Der Knoppix USB Stick kann dann auch wieder entfernt werden.


top Links zum Thema


Hinweis:
Für die Richtigkeit der Daten übernehme ich keine Gewähr!
Für den Inhalt von Internet-Seiten, auf die von dieser Seite verwiesen wird, übernehme ich keine Verantwortung!