[3.4 -> 3.5] | [3.5 -> 3.6] | [3.6 -> 3.7] | [3.7 -> 3.8] | [3.8 -> 3.9] | [3.9 -> 4.0] | [4.1 -> 4.2] | [FAQ-Index]
Es wird dringend dazu geraten, diesen Prozess zu lesen und voll und ganz zu verstehen, bevor du ihn durchführst. Wenn du das hier beschriebene auf einer wichtigen oder physikalisch entfernten Maschine machst, solltest du diesen Prozess erst auf einer identischen lokalen Maschinen versuchen, um sicherzustellen, dass alles funktioniert, bevor du dich an die wichtige oder entfernte Maschine wagst.
Upgrading ist ein bequemer Weg, um dein OpenBSD-System auf die aktuellste Version zu bringen. Jedoch sind die Ergebnisse nicht beabsichtigt, genau so zu sein wie eine Installation, bei der alles gelöscht und wieder aufgespielt wird. Insbesondere alte Bibliotheksdateien werden beim Upgradeprozess nicht deinstalliert, da sie von alten Applikationen, die vielleicht später noch aktualisiert werden, noch benötigt werden könnten. Wenn du WIRKLICH all diese alten Dateien loswerden möchtest, wärst du mit einer völligen Neuinstallation vermutlich besser dran.
Inhaltsverzeichnis:
Überprüfe, ob du irgendwelche Modifikationen an deinem Kernel vorgenommen hast. Zum Beispiel könntest du dein Netzwerkdevice mittels config(8) geändert haben, um eine nicht standardmäßige Einstellung verwenden zu können. Schreib die Änderungen auf, sodass du sie ebenfalls auf den neuen 4.1-Kernel anwenden kannst.
rc.conf: Anders als bei früheren Anleitungen gehen wir nun davon aus, dass /etc/rc.conf nicht vom Benutzer geändert wurde. Falls du Änderungen an deiner /etc/rc.conf-Datei vorgenommen hast, übernehme sie bitte in /etc/rc.conf.local. Falls du KEINE /etc/rc.conf.local-Datei besitzt, kopiere einfach die Datei /etc/rc.conf mit dem neuen Namen /etc/rc.conf.local und entferne die letzte Zeile des Skripts!. Die andere Möglichkeit besteht darin, den Inhalt deiner rc.conf zum Anfang der bereits bestehenden rc.conf.local hinzuzufügen und die letzte Zeile zu entfernen, bevor du mit den nächsten Schritten weiter machst.
Besonderer Hinweis für ARM-Besitzer (armish, zaurus): Änderungen an der ABI setzten einen etwas anderen Upgradeprozess voraus, wenn der Standardinstallationskernel nicht verwendet wird. Starte das System nicht nach der Installation des neuen Kernels neu - erst, wenn das Userland ebenfalls installiert wurde.
Den Installationskernel kannst du recht einfach booten, indem du die 4.1-Version von bsd.rd im Wurzelverzeichnis deines Bootlaufwerks ablegst und dem Bootloader mitteilst, dass er mit der neuen bsd.rd-Datei booten soll. Auf amd64 und i386 machst du das, indem du »boot bsd.rd« am ersten boot>-Prompt angibst.
Manchmal muss man ein Upgrade einer Maschine durchführen, wenn man nicht auf einfache Weise den normalen Upgradeprozess durchführen kann. Der häufigste Grund hierfür ist, dass sich die Maschine an einem anderen Ort befindet und man daher keinen Zugriff auf die Systemkonsole hat. Man kann dies normalerweise durchführen, indem man vorsichtig diesen Prozess befolgt:
export RELEASEPATH=/usr/rel # wo du die Dateien ablegst
cd ${RELEASEPATH}
rm /obsd ; ln /bsd /obsd && cp bsd /nbsd && mv /nbsd /bsd
cp bsd.rd bsd.mp /
Achte auf die zusätzlichen Schritte, um den primären Kernel zu
kopieren: Diese werden durchgeführt, um zu gewährleisten, dass immer
eine funktionsfähige Kopie des Kernels auf der Platte ist, sodass das
System booten kann, falls ein Stromausfall oder ein Systemabsturz zu
sehr ungüstiger Zeit eintreten.
cd /
tar -C / -xzpf ${RELEASEPATH}/base41.tgz ./etc/firmware
Hinweis: ARM-Besitzer (armish/zaurus) SOLLTEN diesen Schritt für diesen speziellen Upgradedurchlauf überspringen.
export RELEASEPATH=/usr/rel
cd ${RELEASEPATH}
tar -C / -xzpf base41.tgz
tar -C / -xzpf comp41.tgz
tar -C / -xzpf game41.tgz
tar -C / -xzpf man41.tgz
tar -C / -xzpf misc41.tgz
tar -C / -xzpf xbase41.tgz
tar -C / -xzpf xfont41.tgz
tar -C / -xzpf xserv41.tgz
tar -C / -xzpf xshare41.tgz
Hinweis: Nicht alle Dateisets müssen für alle Einsatzgebiete
installiert werden, wenn du jedoch ein Dateiset ursprünglich installiert
hast, solltest du es jetzt doch mit einem neuen Dateiset upgraden.
Hinweis: Die Dateien in /etc werden weiter unten getrennt behandelt, sodass etc41.tgz und xetc41.tgz an dieser Stelle NICHT entpackt werden.
cd /dev
./MAKEDEV all
Nov 1 12:47:05 puffy sm-mta[16733]: filesys_update failed: No such file or dire
ctory, fs=., avail=-1, blocksize=380204
Diese Nachrichten können unbesorgt ignoriert werden, du könntest aber
auch sendmail(8) während dem Upgradeprozess beenden.
useradd -u88 -g=uid -c"RIP Daemon" -d/var/empty -s/sbin/nologin _ripd
useradd -u89 -g=uid -c"HostState Daemon" -d/var/empty -s/sbin/nologin _hoststated
Mit diesen Schritten werden sowohl die neuen Benutzer als auch die zu
ihnen gehörenden Gruppen angelegt. Deine Systemeinrichtung wird es
vermutlich ermöglichen, dass du diesen Befehl einfach kopieren und
einfügen kannst.
Vor allem beim enc0-Interface ist besondere Vorsicht geboten, da Floatingstates ein potenzielles Problem für die Filterung von IPsec-Traffic darstellen: Zustände, müssen an ein Interface gebunden werden, um unverschlüsselten Datenverkehr zu verhindern, sollte isakmpd(8) beendet werden. Daher sollten alle Regeln für das enc0-Interface explizit mit keep state (if-bound) versehen werden.
tar -C /tmp -xzpf ${RELEASEPATH}/etc41.tgz
Dateien, die ordnungsgemäß von etc41.tgz »so wie sie sind«
kopiert werden können:
etc/daily
etc/disktab
etc/hoststated.conf
etc/magic
etc/monthly
etc/netstart
etc/rc
etc/rc.conf
etc/ripd.conf
etc/sasyncd.conf
etc/security
etc/weekly
etc/mail/Makefile
etc/mail/localhost.cf
etc/mail/sendmail.cf
etc/mail/submit.cf
etc/mail/spamd.conf
etc/mtree/*
var/www/conf/bgplg.css
var/www/conf/bgplg.foot
var/www/conf/bgplg.head
var/www/htdocs/bgplg/*
Bedenke, dass es möglich IST, all diese Dateien lokal zu modifizieren.
Solltest du sie also modifiziert haben, musst du sie manuell anpassen.
Achte besonders auf mail/*, wenn du eine angepasste
Sendmail(8)-Konfiguration verwendest. Hier sind Copy&Paste-Zeilen,
um diese Dateien zu kopieren, angenommen, dass du etc41.tgz
in dem zuvor empfohlenen Verzeichnis abgelegt hast:
cd /tmp/etc
cp daily disktab hoststated.conf magic monthly netstart rc rc.conf ripd.conf sasyncd.conf security weekly /etc
cp mtree/* /etc/mtree/
cp mail/Makefile mail/localhost.cf mail/submit.cf /etc/mail
cp mail/sendmail.cf /etc/mail # Careful on this one!!
cp mail/spamd.conf /etc/mail # OR... mv /etc/spamd.conf /etc/mail
cd /tmp/var/www
cp conf/bgplg.css conf/bgplg.foot conf/bgplg.head /var/www/conf
mkdir /var/www/htdocs/bgplg
cp htdocs/bgplg/* /var/www/htdocs/bgplg/
Dateien, die per Hand angepasst werden müssen, sodass alle lokalen Änderungen beibehalten werden (falls sie vom Original abweichen) - ansonsten kannst du sie auch einfach kopieren:
etc/changelist
etc/ftpusers
etc/login.conf
etc/newsyslog.conf
etc/services
etc/sysctl.conf
etc/mail/aliases
var/cron/tabs/root
Die Änderungen dieser Dateien befinden sich in
dieser Patchdatei. Du kannst
versuchen, sie zu verwenden, indem du das Folgende als root ausführst:
cd /
patch -C -p0 < upgrade41.patch
Hiermit wird geprüft, wie gut der Patch sich in DEIN System einbinden
lässt. Um ihn tatsächlich einzubinden, lass die Option -C weg.
Beachte, dass es sehr wahrscheinlich ist, dass wenn du diese Dateien
modifiziert, nicht immer auf dem aktuellsten Stand gehalten hast oder
von einem Snapshot von 3.9 aus upgradest, dieser Patch nicht richtig
angewandt werden kann.
In diesen Fällen musst du die Änderungen manuell vornehmen.
Teste diesen Prozess bitte, bevor du dich darauf verlässt, dass alles
funktioniert, wenn du ihn an einem schwer zu erreichenden System
anwendest.
Die folgenden Dateien haben Änderungen erfahren, die du dir genauer ansehen solltest, da sie sehr wahrscheinlich nicht direkt kopiert oder eingepflegt werden können (d. h. wenn du pf.conf verwendest, dann solltest du dir die empfohlene Änderung der Sicherheitsrichtlinie angucken und für dich selbst entscheiden, ob sie für deine Anwendungen eingesetzt werden kann):
etc/hostapd.conf
etc/pf.conf
etc/sensorsd.conf
Verwende schlussendlich
newaliases(8), um die Alias-Datenbank zu aktualisieren, und
mtree(8),
um alle neuen Verzeichnisse zu erstellen:
newaliases
mtree -qdef /etc/mtree/4.4BSD.dist -p / -u
Wenn du den Anweisungen gefolgt bist, wie man einen Upgradeprozess ohne Installationskernel durchführt, hast du diesen Schritt bereits absolviert. Wenn du jedoch den Installationskernel und unter 4.0 einen angepassten Kernel verwendet hast, wirst du das gleiche vermutlich auch unter 4.1 machen wollen. Dabei kann es sich um so einfache Dinge wie eine Änderung eines bestimmtes Devices mittels config(8) handeln, doch könnte es genausogut bedeuten, dass du den Kernel neuerzeugen musst, da sich eine von dir benötigte Option nicht im GENERIC-Kernel befindet. Lies bitte FAQ 5 - Das System aus dem Quelltext erzeugen, bevor du in Erwägung ziehst, deinen Kernel neu zu erzeugen.
Von dem folgenden Package ist bekannt, dass ein Upgrade nicht trivial ist und eine große Anzahl der Benutzer Probleme damit haben werden. Die Tatsache, das ein Package nicht in dieser Liste aufgeführt wird, bedeutet nicht, dass es keine Probleme beim Upgrade geben wird. Du musst dich also selbst mit den Packages beschäftigen, die DU einsetzen möchtest.
# pkg_add -ui -F update -F updatedepends
Dabei gibt -u den Updatemodus an und -i den
interaktiven Modus, sodass pkg_add dich um Rat bittet, sollten
Probleme auftreten.
Lies die
pkg_add(1)-Manualseite
und das Kapitel Verwaltung der Packages
der FAQ für weitere Informationen.
[3.4 -> 3.5] | [3.5 -> 3.6] | [3.6 -> 3.7] | [3.7 -> 3.8] | [3.8 -> 3.9] | [3.9 -> 4.0] | [4.1 -> 4.2] | [FAQ-Index]