Re: Migration 8.2-Stable => 9-Stable in-place?

From: Oliver Fromme <olli(at)lurza.secnetix.de>
Date: Wed, 30 May 2012 16:48:41 +0200 (CEST)

Christoph Sold wrote:
> ich möchte in-place von 8-stable auf 9-stable migrieren, am liebsten
> direkt vom Source kompilieren. Gibt's es hier Stolperfallen? (ZFS root,
> gmirror, siehe unten)

Sollte problemlos gehen.

Bei einem Major-Sprung (8.x --> 9.x) wird "offiziell"
empfohlen, zunächst auf die aktuellste Stable-Version des
vorhandenen Zweiges zu gehen, in diesem Fall also ein
aktuelles 8.3-stable, und erst von dort dann auf 9-stable.

Meistens ist das allerdings nicht unbedingt notwendig, aber
es gibt ab und zu Fälle, wo es doch sein muss. In der
Regel kann man dies /usr/src/UPDATING entnehmen. Im Fall
von 8.2 ist mir aber nichts bekannt, d.h. es sollte auch
in einem Rutsch gehen.

Wichtig: Auf jeden Fall /usr/src/UPDATING angucken. In
Deinem Fall könnte z.B. der Eintrag unter 20110606 relevant
sein (zwischen 8.2-release und 8.3-release); dort geht es
um den den Upgrade des ZFS root pool.

Zum Aktualisieren der Sourcen empfehlen ich csup.
Kochrezept:

 - /usr/share/examples/cvsup/stable-supfile kopieren, z.B.
   nach /usr/local/etc.

 - Die Kopie dann editieren. Wichtig sind folgende Zeilen:

      *default host=CHANGE_THIS.FreeBSD.org

      *default release=cvs tag=RELENG_8

   Bei der ersten kannst Du z.B. cvsup.de.FreeBSD.org
   reinschreiben. Bei der zweiten bekommst Du mit RELENG_8
   8-stable und mit RELENG_9 entsprechend 9-stable. Hier
   muss man besonders aufpassen: Bei einem Tippfehler im
   tag bekommt man nicht etwa eine Fehlermeldung, sondern
   stillschweigend HEAD (d.h. 10-current) drübergebraten.

   Alles andere im supfile kann so bleiben.

 - Als root folgendes Kommando:

      csup /usr/local/etc/stable-supfile

 - Fertig.

Zum eigentlichen Bauen und Installieren empfehle ich auf
jeden Fall, sich strikt an /usr/src/UPDATING zu halten.
Zitat:

    <make sure you have good level 0 dumps>
    make buildworld
    make kernel KERNCONF=YOUR_KERNEL_HERE
                                                [1]
    <reboot in single user> [3]
    mergemaster -p [5]
    make installworld
    mergemaster [4]
    make delete-old [6]
    <reboot>

Die Fußnoten kann man ebenfalls dort nachlesen.

Noch ein paar Tips:

Die KERNCONF=... kann man auch in /etc/make.conf schreiben,
dann muss man das bei "make kernel" nicht jedesmal tippen
(und man bekommt nicht unversehens einen GENERIC-Kernel,
wenn man es mal vergisst).

Als Ersatz (bzw. Wrapper) für "make buildworld" habe ich
mal ein Skript geschrieben, das anzeigt, wie weit das
Bauen schon fortgeschritten ist:

http://www.secnetix.de/olli/scripts/worldwatch

Auf heutigen Systemen, wo es eh in zehn Minuten durchge-
laufen ist, ist das nicht mehr ganz so interessant, aber
auf 'ner langsameren Kiste, wo es ein, zwei Stunden
dauert, ist es manchmal schon nützlich zu wissen, wo
er gerade steckt.

Und für "make kernel" gibt es ein Wrapper-Skript, das an
den Versionsnamen das Datum des Source-Standes anhängt:

http://www.secnetix.de/olli/scripts/makekernel

Damit sieht die Ausgabe von "uname -rsm" bei mir z.B.
so aus:

   FreeBSD 8.3-STABLE-20120528 amd64

Das ist recht nützlich, wenn man später einmal wissen
möchte, von wann genau das System nun ist, denn die
Angabe 8.3-stable ist nicht immer genau genug.

Gruß
   Olli

-- 
Oliver Fromme, secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing b. M.
Handelsregister: Registergericht Muenchen, HRA 74606,  Geschäftsfuehrung:
secnetix Verwaltungsgesellsch. mbH, Handelsregister: Registergericht Mün-
chen, HRB 125758,  Geschäftsführer: Maik Bachmann, Olaf Erb, Ralf Gebhart
FreeBSD-Dienstleistungen, -Produkte und mehr:  http://www.secnetix.de/bsd
"A misleading benchmark test can accomplish in minutes
what years of good engineering can never do." -- Dilbert (2009-03-02)
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Wed 30 May 2012 - 16:49:07 CEST

search this site