jails zwischen Plattformen und Versionen tauschen

DSBusr

Digilog native
Hallo zusammen,

ich habe auf meinem frisch installierten FreeBSD 9.0-RC3 (amd64) ein Jail von einem FreeBSD 8.1 (i386) System kopiert und einfach mal angeworfen.
Ich wollte sehen, was es so alles an Fehlern gibt und ob man das lauffähig bekommen kann..
Erstaunlicherweise gibt es gar keine Fehler oder Fehlermeldungen.
Das Jail arbeitet ganz normal fehlerfrei und auch die installierten Ports laufen (z.B. ein Apache).
In dem Jail wird nichts von außen reingelinkt oder gemountet. Alle Dateien und Strukturen sind im Jail direkt drin.
Die Binarys im Jail melden sich "alt".
Code:
# file /bin/ps
/bin/ps: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), dynamically linked (uses shared libs), for FreeBSD 8.1, stripped
Aber sie arbeiten ganz normal.

Das ist sehr schön, aber für mich durchaus überraschend.
Kann man das einfach so lassen oder macht es Sinn, die Jails innen drin auch auf FreeBSD 9.0 amd64 hoch zu installieren?

Ein testweise gestartetes freebsd-update kommt nicht klar und findet nichts zum Updaten.
Auch mit der gesedten Version nicht.


Danke schonmal für euren Input
Mario
 
Es macht schon sinn, weil der Support für 8.1 bald ausläuft. Wenn 8.1 für dich funktioniert kannst du allerdings auch auf 8.2 und demnächst 8.3 updaten. Weiter als 8.3 ist die 8.x Reihe allerdings nicht geplant. Wenn 8.3 zwei Jahre nach Release keine Sicherheitsupdates mehr bekommt solltest du spätestens auf 9.x gewechselt haben. Sollte deine Software auch 9.0 amd64 laufen würde ich Updaten um spätere Probleme zu verhindern.
 
FreeBSD bietet halt gute Abwärtskompatiblität und ein FreeBSD/amd64 kann fast alle FreeBSD/i386-Anwendungen ausführen. Lediglich einige sehr kernelnahe Tools versagen. Daher kannst du das so lassen, solange du keine 64-Bit Software nutzen willst.

Zu freebsd-update: Der orientiert sich wahrscheinlich an der Ausgabe von "uname" und dort steht auch im Jail die Version des Kernels. Bei dir also ein "FreeBSD/i386 9.0-RC3". Schaue mal in die Manpage, dort steht, wie man die Ausgabe ändern kann und trage mal ein FreeBSD 8.2 ein. Eventuell geht es dann.
 
Ach... Binärupdates in Jails? Hab meine jails immer kompiliert und dachte Binärupdates würden gar nicht gehen.
 
Ach... Binärupdates in Jails? Hab meine jails immer kompiliert und dachte Binärupdates würden gar nicht gehen.
Ja, das geht. Wenn ich das, was ich von Yamagi weiß wiedergeben darf: Im Jail machst du ein "freebsd-update fetch". Vom Host aus musst du danach ein "chroot /hier/ist/die/jail" machen und danach ein freebsd-update install.

Bei "Abarten" hiervon - wie zB eine i386-jail auf einem amd64-host - kannst du das evtl. nicht 1:1 übernehmen.

Gruß
 
Im Jail machst du ein "freebsd-update fetch". Vom Host aus musst du danach ein "chroot /hier/ist/die/jail" machen und danach ein freebsd-update install.
Bei mir mache ich das schon eine ganze Weile direkt im Jail. Also freebsd-update fetch und install.
Chrooten war bisher nicht notwendig.
Man hat halt Zeugs in der Verzeichnisstruktur, welches man nie im Jail braucht, wie zum Beispiel den Kernel. Aber das sollte bei der chroot-Version auch so sein.

Bei "Abarten" hiervon - wie zB eine i386-jail auf einem amd64-host - kannst du das evtl. nicht 1:1 übernehmen.
Der Tipp von Yamagi mit der uname-Variable hilft hier.

Grüße
Mario
 
Ich habe verschiedene Jails von 8.1 Maschinen kopiert und mit freebsd-update auf 8.2-RELEASE-p4 gebracht.
Das hat super funktioniert und mit minimalem Aufwand den ganzen gejailten Kram auf einen neuen Rechner gezogen.

Grüße
Mario
 
Hallo zusammen,

ich hole das alte Thema noch einmal hoch.

Der besagte Jailhost hat seine Evolution über 9.0-RELEASE bis hin zu 9.1-RELEASE gemacht. Das alles mit der Plattform amd64.
Einige Jails habe ich neu aufgebaut. Dazu dann versionsgleich der FreeBSD Version auf dem Jailhost. Und natürlich auch im Jail in amd64, wie auf dem Host.
Aber ein paar alte Jails sind übrig geblieben. Diese laufen mittlerweile auf 8.3-RELEASE. Aber i386.
Das alles sehr problemfrei. Bin davon immer noch sehr angetan. :D
Nur beim freebsd-update muss man aufpassen, dass man bei den 8'er Maschinen ein export UNAME_r="8.3-RELEASE" vorausschickt.

Jetzt die große Frage. Gibt es einen Weg, über Binärupdates von 8.3-RELEASE i386 auf 9.1-RELEASE amd64 zu springen?

Einen freebsd-update Weg gibt es anscheinend nicht.
Ich dachte daher daran, die TXZ Dateien von ftp://ftp.freebsd.org/pub/FreeBSD/releases/amd64/amd64/9.1-RELEASE/ zu holen und "einfach" im Jail über die vorhandenen Pfade zu entpacken.
Vermutlich müssen dann alle Packages noch einmal neu installiert werden.

Hätte das Aussicht auf Erfolg und hat sowas schonmal jemand gemacht?
Ich habe im Netz gesucht, aber nichts gefunden.


Grüße
Mario
 
Das schlimme ist: Vermutlich würde das Ergebnis funktionieren. Eine richtige Lösung ist es dadurch nicht.

Hi.
Naja der Installationsmechanismus macht ja auch nicht wirklich was anderes.
Daher würde ich sagen, dass ist nicht so evil.

Yamagi, dein Tipp ist selbstbaubehaftet. Das würde ich gerne vermeiden. Aber trotzdem Danke.

Hat keiner eine weitere Idee?

Mario
 
Hallo zusammen,

ein kleiner Zwischenstand von mir.
Ich habe das Jail auf Basis der TXZ Dateien ftp.freebsd.org neu zusammen geklöppelt.
/etc und /var habe ich dann von der alten i386 Installation drüberkopiert.
Dann alle Packages neu installiert und das alte /usr/local/etc drüberkopiert.
Was soll ich noch sagen. Das funktionierte (auf dieser Maschine) auf Anhieb und läuft seit einigen Tagen problemlos vor sich hin. FreeBSD wie auch die Anwendungen.


Grüße
Mario
 
Zurück
Oben