WEnn du produktivsysteme updaten willst, sollte man das immer und grundsätzlich vorher austesten. Idealerweise hat man das Produktivsystem doppelt stehen, als Fallbacklösung und zum experimentieren (ich weiß auch daß das Geld kostet ;-)
Wenn dein System öffentlich im Netz hängt, würde ich updaten, schon allein aus Sicherheitsgründen.
Nun die Schritt-für-Schritt-Anleitung: (* -> Fußnoten)
Fallunterscheidung für die Installationsquellen:
Fall A: precompiled Binaries (aka Sets) verwenden
Fall B: Installaton von selbstkompilierten Quellen
Fall A ist schneller und schmerzloser, allerding bekommst du "nur" GENERIC-Kernel. Für B musst du ein eigenes System kompilieren, was ich für Neulinge auf Produktivsystemen abraten möchte.
1.) Daten sichern
auf einen anderen Rechner oder Wechselmedien, (dazu gehören auch zwingend /etc/ und /usr/pkg/etc) kpoieren oder dumpen
Fall A:
2a.) Sets runterladen,
(bspw. von
ftp://ftp.de.netbsd.org/pub/NetBSD/NetBSD-2.0.2/i386/)
3a.) in den Singleusermode gehen
dazu
reboot eingeben und am bootloader den Countdown von 10-0 mit
esc abbrechen und mit
boot -s in den singlemode gehen. Auf wunsch den Pfad zu einer bestimmten shell übergeben (ksh, wegen tabcompletion)
4a.) Kernel und Sets entpacken
den Kernel ent-taren und nach /netbsd kopieren, (den alten vorher als /netbsd.old sichern), in das Verzeichnis der Sets wechseln und sicherheitshalber etc.tgz aus dem Verzeichnis entfernen (
mv etc.tgz ../). etc.tgz enthält die Konfigdateien in /etc/, die möchten wir aber in der alten Version beibehalten.
nun die Sets entpacken, am besten mit Schleife:
for i in *.tgz
do
tar -xpzf $i
done
p bedeutet permissions, die Dateirechte sollen beibehalten (wichtig!)
z zieht das ganze durch gunzip
5a) reboot und glücklichsein,
es müsste alles wie vorher laufen, nur das
uname -a etwas anderes anzeigt ;-)
Fall B:
2b.) NetBSD-quellen auschecken
am besten mit anoncvs over ssh nach /usr/src:
export CVSROOT=anoncvs@anoncvs.netbsd.org:/cvsroot
export CVS_RSH=ssh
cvs co -r netbsd-2-0-2-RELEASE -P src
(Großschreibung beachten!)
nach geraumer zeit hat man den Quellbaum in src/ liegen und kann kompilieren.
3b.) eigenen Kernel erstellen:
Konfigurationsdatei kopieren:
cp /sys/arch/$ARCHITEKTUR*/conf/GENERIC /sys/arch/$ARCHITEKTUR/conf/MEINKERNEL
und bearbeiten, hierbei gewünschte Optionen anpassen.
4b.) Kompilieren:
mit build.sh kein Problem, zur Sicherheit aber
script aufrufen, alles was jetzt über die Konsole geht wird nach
./typescript geschrieben, das erleichtert ggf. das debuggen.
kompilieren starten (kann dauern, auf nem PIII-500 ca 8h, Athlon 1400 immer noch 3,5h, 21066 Alpha mehrere Tage ) mit:
build.sh tools kernel=KERNELNAME** distribution sets***
build.sh hat Unmengen an Optionen, z.B. -j=2 für Multiprozessorrechner oder -u um updates zu fahren (es wird nur geänderter Quellcode neu kompiliert)
(Bricht build.sh mit Fehlermeldung bei einem eigenen Kernel ab, ist dieser falsch konfiguriert, am besten die shell verlassen und die Fehlermeldungen in ./typescript studieren und den Kernel debuggen.)
Ist alles durchkompiliert, kann man installieren, entweder direkt von den Quellen oder wahlweise aus erzeugten sets. Für die Sets geht es weiter mit Fall A unter 3a.) für die Quellen mit 5b.)
5b.) Kernel kopieren:
cp sys/arch/$ARCH/compile/obj/KENRELNAME**/netbsd /netbsd
6b.) in Singleusermode gehen, siehe 3a.)
7b.) Quellen installieren, mit build.sh:
build.sh install=/
8b.) reboot und glücklichsein
---------
* i386 für PC, ansonsten der Portname
** entweder GENERIC für den Standardkernel oder MEINKERNEL
*** sets erzeugt Sets, also das was in Fall A heruntergeladen wurde, das ist ideal wenn man evtl. mehrere Rechner updaten will, oder die Kompiliermaschine eine andere als das Zielsystem ist. Für den einfachen Fall (alles auf einem Rechner) kann es weggelassen werden