FreeBSD-Jails lassen sich mit freebsd-update genauso upgraden wie das Host-System. Der Parameter -b gibt den Pfad zur Jail an:
# Normales Jail-Upgrade freebsd-update -r 14.2-RELEASE upgrade -b /zroot/jails/myjail freebsd-update install -b /zroot/jails/myjail service jail restart myjail freebsd-update install -b /zroot/jails/myjail # Pakete aktualisieren jexec myjail pkg upgrade freebsd-update install -b /zroot/jails/myjail
Das Problem: Falsche Versionserkennung
Manchmal ist freebsd-update davon überzeugt, dass die Jail bereits auf der Zielversion läuft, obwohl sie es nicht ist. Prüft man manuell, steht da noch die alte Version:
jexec myjail freebsd-version 13.2-RELEASE-p9
Das passiert typischerweise wenn die Jail schon Patches bekommen hat oder wenn der Host auf einer anderen Version läuft als die Jail. freebsd-update liest die Version aus Dateien im Jail-Dateisystem und kommt durcheinander.
Die Lösung: –currently-running
Mit --currently-running gibt man freebsd-update die aktuelle Version explizit vor:
freebsd-update -b /zroot/jails/myjail --currently-running 13.2-RELEASE-p9 -r 14.2-RELEASE upgrade
Danach läuft das Upgrade normal durch. Die Version, die man bei --currently-running angibt, muss exakt der Ausgabe von freebsd-version in der Jail entsprechen, inklusive Patchlevel.
Tipp: Vor dem Upgrade einen ZFS-Snapshot der Jail anlegen. Falls etwas schiefgeht, ist ein Rollback in Sekunden erledigt.
Fragen? Einfach melden.
Schreibe einen Kommentar