zfs als root-Dateisystem auf einer Sun Enterprise 220R

Ich möchte heute einmal beschreiben wie ich eine Enterprise 220R eine Frischzellenkur verpasst habe. Dabei habe ich das altertümliche Solaris 9 gegen Solaris Express ausgetauscht.

Probleme

  • das DVD-Laufwerk der Enterprise 220R wollte keine gebrannten DVDs lesen
  • mein Installserver auf einen 32-Bit x86-Notebook wollte nicht mit der Sun zusammenarbeiten - das kann aber auch an meiner Konfiguration gelegen haben

Lösung

Man kann sich noch Solaris Express Build 98 auf CDs herunter laden. Was ich dann auch gemacht habe. Um von einer CD zu booten muss man Stop + A drücken und dann im OK-Modus: OK> boot cdrom - text eingeben. Zur Zeit kann man zfs als root-Dateisystem nur im Text-Installer wählen. Ich nehme /var immer aus der Wurzel heraus. Im Gegensatz zu x86, wird der Text-Installer in einer Fensterumgebung gestartet. Das hatte mich sehr verwundert und ich war schon dran neu zu booten.
Die Installation läuft jetzt so ab wie man sie kennt, einfach den Anweisungen folgen. Wenn man dann endlich sein Grundsystem installiert hat, loggt man sich erst einmal ein, als root - einen anderen User gibt es ja noch nicht.

Erste Verbesserungen am System

  1. /opt aus der Wurzel heraus nehmen
    Zusätzliche Software installiere ich immer unter /opt. Deswegen ist /opt bei mir ein eigenes Dateisystem. Ich sehe nur Vorteile in der Verwendung eines eigenen Dateisystems:
    • Überblick über den Speicherverbrauch (# zfs list)
    • Tuning des Dateisystems
    • zfs ist es egal wie viele Dateisysteme es hat
    # zfs list
    NAME                     USED  AVAIL  REFER  MOUNTPOINT
    rpool                   15,3G  27,9G    62K  /rpool
    rpool/ROOT              12,2G  27,9G    18K  legacy
    rpool/ROOT/snv_98       12,2G  27,9G  6,55G  /
    rpool/ROOT/snv_98/var    300M  27,9G   172M  /var
    rpool/dump              1,00G  27,9G  1,00G  -
    rpool/export            56,7M  27,9G  20,5K  /export
    rpool/export/home       56,7M  27,9G  56,7M  /export/home
    rpool/swap                 2G  29,9G  25,8M  -
    # mv /opt{,_org}
    # zfs create
    rpool/ROOT/snv_98/opt
    # mv /opt_org/\* /opt/
    # zfs list

    NAME                     USED  AVAIL  REFER  MOUNTPOINT
    rpool                   15,3G  27,9G    62K  /rpool
    rpool/ROOT              12,2G  27,9G    18K  legacy
    rpool/ROOT/snv_98       12,2G  27,9G  6,55G  /
    rpool/ROOT/snv_98/opt   1,12G  27,9G   585M  /opt
    rpool/ROOT/snv_98/var    300M  27,9G   172M  /var
    rpool/dump              1,00G  27,9G  1,00G  -
    rpool/export            56,7M  27,9G  20,5K  /export
    rpool/export/home       56,7M  27,9G  56,7M  /export/home
    rpool/swap                 2G  29,9G  25,8M  -

    Nun ist /opt ein selbstständiges Dateisystem.
  2. Als nächstes sollte man eine Shell einigermaßen benutzerfreundlich konfigurieren. Ich benutze sehr gerne die bash. Dazu stelle ich die Datei /etc/bashrc bereit. Diese binde ich dann je nach Umgebung ein.
    # cat /etc/bashrc
    #########################
    # Definition der Farben #
    #########################

    RED="\\[\\e[1;31m\\]"
    NORMAL="\\[\\e[0m\\]"
    GREEN="\\[\\e[1;32m\\]"
    BLAU="\\[\\e[1;34m\\]"

    if [[ $EUID == 0 ]] ; then
      PS1="$RED\\u@\\h$BLAU \\W \\$$NORMAL "
    else
      PS1="$GREEN\\u@\\h$BLAU \\W \\$$NORMAL "
    fi



    ###############################
    # Fenstertitel ueberschreiben #
    ###############################
    case ${TERM} in
            xterm\*|rxvt\*|Eterm|aterm|kterm|gnome\*)
                    PROMPT_COMMAND='echo -ne "\\033]0;${USER}@${HOSTNAME%%.\*}:${PWD/$HOME/~}\\007"'
                    ;;
            screen)
                    PROMPT_COMMAND='echo -ne "\\033_${USER}@${HOSTNAME%%.\*}:${PWD/$HOME/~}\\033\\\\"'
                    ;;
    esac

    alias ls="/usr/gnu/bin/ls --color=auto"
    alias l="/usr/gnu/bin/ls -al --color=auto"
    alias grep="/usr/gnu/bin/grep --color=auto"

Lifeupgrade auf eine neue Version

  1. Das Solaris-DVD Image herunter laden. Ich gehe jetzt davon aus, das das Image unter /root/sol-nv-b103-sparc-dvd.iso liegt
  2. Image mounten:
    # lofiadm -a /root/sol-nv-b103-sparc-dvd.iso /dev/lofi/1
    # mount -F hsfs /dev/lofi/1 /mnt
  3. liveupgrade updaten
    # cd /mnt/
    # ./installer
  4. neue Boot-umgebung erstellen
    # lucreate -n snv_103
    Die Dateisysteme der Quell-Boot-Umgebung <snv_103> werden mit den für die
    neue Boot-Umgebung angegebenen Dateisystemen verglichen. Es wird
    ermittelt, welche Dateisysteme in der neuen Boot-Umgebung enthalten sein
    sollten.
    BU-Beschreibungsdatenbank wird in allen BUs aktualisiert.
    Systemkonfigurationsdateien werden aktualisiert.
    Konfiguration für Boot-Umgebung <snv_103> wird erstellt.
    Die Ausgangs-BU ist <snv_98>.
    Boot-Umgebung <snv_98> wird erstellt.
    Cloning file systems from boot environment <snv_98> to create boot environment <snv_103>.
    Creating snapshot for <rpool/ROOT/snv_98> on <rpool/ROOT/snv_103@snv_103>.
    Creating clone for <rpool/ROOT/snv_98@snv_103> on <rpool/ROOT/snv_103>.
    Setting canmount=noauto for </> in zone <global> on <rpool/ROOT/snv_103>.
    Creating snapshot for <rpool/ROOT/snv_98/var> on <rpool/ROOT/snv_98/var@snv_103>.
    Creating clone for <rpool/ROOT/snv_98/var@snv_103> on <rpool/ROOT/snv_103/var>.
    Setting canmount=noauto for </var> in zone <global> on <rpool/ROOT/snv_103/var>.
    Kopieren von Daten für Boot-Umgebung <snv_103> erfolgreich abgeschlossen.
    Erzeugung der Boot-Umgebung <snv_103> erfolgreich abgeschlossen.
  5. lifeupgrade durchführen, canmount=auto sollte sorgen, dass der Fehler am Ende nicht auftritt
    # zfs set canmount=noauto rpool/ROOT/snv_98/opt
    # luupgrade -u -n snv_103 -s /mnt/ -l /export/error_log.txt

    50763 Blöcke
    Miniroot-Dateisystem ist <lofs>
    Miniroot wird an </mnt//Solaris_11/Tools/Boot> eingehängt.
    Der Inhalt des Mediums </mnt/> wird überprüft.
    Das Medium ist ein Standard-Solaris-Medium.
    Das Medium enthält ein Image für eine Betriebssystem-Aufrüstung.
    Das Medium enthält <Solaris> Version <11>.
    Zu verwendendes Upgrade-Profil wird erstellt.
    Das Programm für die Aufrüstung des Betriebssystems wird gesucht.
    Es wird geprüft, ob frühere eingeplante Live Upgrade-Anforderungen vorliegen.
    Das Aufrüstungsprofil für die BU <snv_103> wird erstellt.
    Packages für Installation oder Upgrade von BU <snv_103> werden bestimmt.
    Aufrüstung des Betriebssystems von BU <snv_103> wird durchgeführt.
    VORSICHT: Wenn Sie diesen Prozess unterbrechen, wird die Boot-Umgebung
    möglicherweise instabil oder kann nicht gebootet werden.
    Solaris wird aufgerüstet: 100% fertig
    Installation of the packages from this media is complete.
    Betriebssystem-Patches werden in BU <snv_103> eingefügt.
    Die Patch-Installation des Betriebssystems ist abgeschlossen.
    INFORMATION: Die Datei </var/sadm/system/logs/upgrade_log> in der
    Boot-Umgebung <snv_103> enthält ein Upgrade-Protokoll.
    INFORMATION: Die Datei </var/sadm/system/data/upgrade_cleanup> in der
    Boot-Umgebung <snv_103> enthält ein Protokoll der erforderlichen
    Bereinigungsvorgänge.
    WARNUNG: <1> Packages wurden auf Boot-Umgebung <snv_103> nicht ordnungsgemäß installiert.
    INFORMATION: Die Datei </var/sadm/system/data/upgrade_failed_pkgadds> in
    der Boot-Umgebung <snv_103> enthält eine Liste der Packages, die nicht
    ordnungsgemäß aktualisiert oder installiert werden konnten.
    INFORMATION: Überprüfen Sie die oben aufgeführten Dateien. Beachten Sie,
    dass sich alle Dateien in der Boot-Umgebung <snv_103> befinden. Vor dem
    Aktivieren der Boot-Umgebung <snv_103> müssen Sie ermitteln, ob eine
    zusätzliche Systemwartung erforderlich ist bzw. ob weitere Datenträger aus
    dem Distributionspaket installiert werden müssen.
    Die Solaris-Aufrüstung der Boot-Umgebung <snv_103> wurde nur teilweise abgeschlossen.
    Nachsehen, welche Packte nicht installiert werden konnten
    # lumount snv_103
    /.alt.snv_103    
    # cat /.alt.snv_103/var/sadm/system/data/upgrade_failed_pkgadds
    SUNWslocate-root
    # luumount snv_103

    Defektes Packet entfernen
    # luupgrade -P -n snv_103 SUNWslocate-root

    BU <snv_103> wird eingehängt.
    Packages werden aus BU <snv_103> gelöscht.

    Folgendes Package ist derzeit installiert:
       SUNWslocate-root  Finds files on a system via a central database - / filesystem
                         (sparc) 3.1,REV=110.0.4.2008.11.05.08.13

    Wollen Sie dieses Package entfernen? [y,n,?,q] y

    ## Installierte Package-Version <SUNWslocate-root> wird entfernt
    ## Prüfen von Abhängigkeiten von Package <SUNWslocate-root> in globaler Zone
    ## Package-Informationen werden verarbeitet.
    ## Pfadnamen in Klasse <none> werden entfernt
    /a/var/lib/slocate/slocate.db
    /a/var/lib/slocate
    /a/var/lib <Gemeinsam genutzter Pfadname wurde nicht entfernt>
    /a/var <Gemeinsam genutzter Pfadname wurde nicht entfernt>
    ## Systeminformationen werden aktualisiert.

    Entfernen von <SUNWslocate-root> erfolgreich.
    BU <snv_103> wird ausgehängt.
    Das Entfernen der Packages aus BU <snv_103> ist abgeschlossen.

    Entferntes Packet neu installieren
    # luupgrade -p -n snv_103 -s /mnt/Solaris_11/Product/ SUNWslocate-root


    Der Inhalt des Mediums </mnt/Solaris_11/Product/> wird überprüft.
    BU <snv_103> wird eingehängt.
    Packages werden in BU <snv_103> eingefügt.

    Verarbeite Package-Version <SUNWslocate-root> von </mnt/Solaris_11/Product>

    Finds files on a system via a central database - / filesystem(sparc) 3.1,REV=110.0.4.2008.11.05.08.13
    Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
    Use is subject to license terms.

    For the avoidance of doubt, except that if any license choice other
    than GPL or LGPL is available it will apply instead, Sun elects to
    use only the General Public License version 2 (GPLv2) at this time
    for any software where a choice of GPL license versions is made
    available with the language indicating that GPLv2 or any later
    version may be used, or where a choice of which version of the GPL
    is applied is otherwise unspecified.

    --------------------------------------------------------------------

    Licensing and copyright information for SUNWslocate:

     License: GNU General Public License Version 2

     You can find more information in the following directory:
     /usr/share/doc/SUNWslocate

      LICENSE.bz2: GNU GPL
      Changelog.bz2: list of all changes and authors of slocate
      README: more information about slocate

     The sources of slocate-3.1 were downloaded
     from http://slocate.trakker.ca/files/slocate-3.1.tar.gz
    Verwende </a> als Basis-Verzeichnis für Package.
    ## Package-Informationen werden verarbeitet.
    ## Systeminformationen werden verarbeitet.
       2-Package-Pfadnamen sind bereits korrekt installiert.
    ## Benötigter Plattenspeicher wird geprüft.
    ## Prüfung auf Konflikte mit bereits installierten Packages 
    ## Prüfe auf setuid/setgid-Programme.

    Dieses Package enthält Skripts, die während des Installationsvorgangs
    mit Superuser-Zugriffsrechten ausgeführt werden.

    Wollen Sie mit der Installation von <SUNWslocate-root> fortfahren? [y,n,?] y

    Installiere Finds files on a system via a central database - / filesystem als <SUNWslocate-root>

    ## Installiere Teil 1 von 1.
    1 Blöcke

    Installation von <SUNWslocate-root> erfolgreich.
    BU <snv_103> wird ausgehängt.
    Das Hinzufügen der Packages für BU <snv_103> ist abgeschlossen.

    Neue Boot-Umgebung aktivieren, Warnung ignorieren - haben uns schon drum gekümmert
    # luactivate snv_103
    WARNUNG: <1> Packages wurden auf Boot-Umgebung <snv_103> nicht ordnungsgemäß installiert.
    INFORMATION: </var/sadm/system/data/upgrade_failed_pkgadds> auf
    Boot-Umgebung <snv_103> enthält eine Liste von Packages, die nicht
    ordnungsgemäß aktualisiert oder installiert wurden. Überprüfen Sie diese
    Datei vor dem Neustart des Systems, um zu ermitteln, ob eine zusätzliche
    Systemwartung nötig ist.



    \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*

    Die Ziel-Bootumgebung wurde aktiviert. Sie wird beim Neustart verwendet.
    HINWEIS: Sie DÜRFEN NICHT die Befehle reboot, halt, oder uadmin verwenden.
    Sie MÜSSEN für den Neustart entweder den Befehl init oder den Befehl
    shutdown verwenden. Wenn Sie das System nicht mit init oder shutdown neu
    starten, wird das System nicht mit der Ziel-BU gestartet.

    \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*

    Sollte beim Booten in die Ziel-BU ein Fehler auftreten, gehen Sie wie
    folgt vor, um auf die aktuell betriebene Boot-Umgebung zurückzugreifen:

    1. Enter the PROM monitor (ok prompt).

    2. Boot the machine to Single User mode using a different boot device
    (like the Solaris Install CD or Network). Examples:

         At the PROM monitor (ok prompt):
         For boot to Solaris CD:  boot cdrom -s
         For boot to network:     boot net -s

    3. Mount the Current boot environment root slice to some directory (like
    /mnt). You can use the following command to mount:

         mount -Fzfs /dev/dsk/c0t0d0s0 /mnt

    4. Run <luactivate> utility with out any arguments from the current boot
    environment root slice, as shown below:

         /mnt/sbin/luactivate

    5. luactivate, activates the previous working boot environment and
    indicates the result.

    6. Exit Single User mode and reboot the machine.

    \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*

    Boot-Archivierungsdienst wird geändert.
    Aktivierung der Boot-Umgebung <snv_103> erfolgreich abgeschlossen.
    #
    # luactivate snv_98
    Die aktuelle Boot-Umgebung <snv_98> wird für den nächsten Neustart aktiviert.
    Die aktuelle Boot-Umgebung <snv_98> wurde für den nächsten Neustart aktiviert.
    # lumount snv_103
    /.alt.snv_103
    # rm /.alt.snv_103/var/sadm/system/data/upgrade_failed_pkgadds
    # luumount snv_103
    # luactivate snv_103


    \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*

    Die Ziel-Bootumgebung wurde aktiviert. Sie wird beim Neustart verwendet.
    HINWEIS: Sie DÜRFEN NICHT die Befehle reboot, halt, oder uadmin verwenden.
    Sie MÜSSEN für den Neustart entweder den Befehl init oder den Befehl
    shutdown verwenden. Wenn Sie das System nicht mit init oder shutdown neu
    starten, wird das System nicht mit der Ziel-BU gestartet.

    \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*

    Sollte beim Booten in die Ziel-BU ein Fehler auftreten, gehen Sie wie
    folgt vor, um auf die aktuell betriebene Boot-Umgebung zurückzugreifen:

    1. Enter the PROM monitor (ok prompt).

    2. Boot the machine to Single User mode using a different boot device
    (like the Solaris Install CD or Network). Examples:

         At the PROM monitor (ok prompt):
         For boot to Solaris CD:  boot cdrom -s
         For boot to network:     boot net -s

    3. Mount the Current boot environment root slice to some directory (like
    /mnt). You can use the following command to mount:

         mount -Fzfs /dev/dsk/c0t0d0s0 /mnt

    4. Run <luactivate> utility with out any arguments from the current boot
    environment root slice, as shown below:

         /mnt/sbin/luactivate

    5. luactivate, activates the previous working boot environment and
    indicates the result.

    6. Exit Single User mode and reboot the machine.

    \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*

    Boot-Archivierungsdienst wird geändert.
    Aktivierung der Boot-Umgebung <snv_103> erfolgreich abgeschlossen.

    # lustatus
    Boot-Umgebung              Ist      Aktiv  Aktiv     Kann   Kopieren 
    Name                       Fertig   Jetzt  Bei Neustart Löschen Status   
    -------------------------- -------- ------ --------- ------ ----------
    snv_98                     yes      yes    no        no     -        
    snv_103                    yes      no     yes       no     -

    # init 6
    Etwas Gedult, das init 6 dauert recht lange, ich habe mittels prstat verfolgt wie die Prozesse beendet werden, da wird das warten nicht so langweilig

Bei mir gab es nach dem Neustart noch Probleme. Solaris meinte es könne nicht /opt mounten, weil das Verzeichnis nicht leer ist. /opt war aber gemountet als habe ich das Problem wie folgt umgangen:
# svcadm clear svc:/system/filesystem/local:default
# init 6

Nun arbeitet die Enterprise 220R so wie sie soll. Ich hoffe ich habe alles aufgeschrieben. Wenn man sich unsicher ist, einfach die Ausgaben 2 mal lesen und vorher in der manpage nachlesen was die Befehle machen.


Kommentare:

Senden Sie einen Kommentar:
  • HTML Syntax: Ausgeschaltet
About

Michael Rennecke

Search

Archives
« April 2014
MoDiMiDoFrSaSo
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
    
       
Heute