Solaris 9 installation
Inhaltsverzeichnis
Solaris 9
Version
Sun Solaris 9 09/2005 (sparc)
Hardware
Sun Sparc, HDD 2 SCSI, Ram 2GB
Installation
Hier wird eine Minimalinstallation von Solaris 9 beschrieben. Das fertige System dient als Grundlage für eine Firewall.
Installation starten
1.) Einlegen der CD 1 von 2
2.) Folgende Fragen nach Netzwerk und Sprache beantworten
3.) Als Installationstype wir das Core-System ausgewählt
4.) Partition der Festplatte
Die hier angegeben Partition ist ein Beispiel und natürlich abhängig von der
Grösse der Festplatte und den eigenen Vorstellungen.
Slice 7 ist nötig, um ein Raid-Spiegel anlegen zu können
Part Tag Flag Cylinders Size Blocks 0 root wm 0 - 2012 9.77GB (2013/0/0) 20484288 1 swap wu 2013 - 2528 2.50GB (516/0/0) 5250816 2 backup wm 0 - 14086 68.35GB (14087/0/0) 143349312 3 usr wm 2529 - 4541 9.77GB (2013/0/0) 20484288 4 opt wm 4542 - 6554 9.77GB (2013/0/0) 20484288 5 var wm 6555 - 11183 22.46GB (4629/0/0) 47104704 6 daten wm 11184 - 14059 13.96GB (2876/0/0) 29266176 7 unassigned wm 14060 - 14086 134.16MB (27/0/0) 274752
5.) Automatischer neustart auswählen, dann startet das System nach der Installation neu und ist betriebsbereit.
Solaris Pakete hinzufügen
Installieren von zusätzlichen Paketen
Um die CD-ROM nicht immer mit mount -F hsfs -o ro /dev/dsk/c0t0d0s0 mounten zu müssen, sollte folgender Eintrag in
die /etc/vfstab eingefügt werden:
/dev/dsk/c0t0d0s0 - /mnt hsfs - no ro
Danach kann man dann das CD-Rom Laufwerk mit dem Befehl mount /mnt auf das Verzeichnis /mnt mounten.
Nach einer Core-Installation müssen noch diverse Pakete eingespielt werden.
Nach dem das CD-Rom Laufwerk mit mount /mnt gemountet wurde wechselt man in das Verzeichnis in dem das benötigte Paket liegt. Die meisten Pakete finden sich unter
/mnt/Solaris_9/Product/
Installier werden Sie mit:
pkgadd -d . <Paketname> z.B SUNWbash
Solaris Pakete
Folgend die Auflistung der benötigten Pakete und wo man sie findet.
SUNWbash cd 2-2 Komfortable Shell SUNWless cd 2-2 Anzeigen von ASCII-Dateien (wie more) SUNWzip cd 2-2 Zip-Programm SUNWgzip cd 2-2 Zip-Programm SUNWbzipx cd 2-2 Zip-Programm SUNWman cd 2-2 Manpages SUNWter cd 2-2 Benötigt für CP FW1 SUNWaccu cd 2-2 Tools (z.B SAR)
SUNWdoc cd 1-2 Dokumentation SUNWlibC cd 1-2 Compiler SUNWlibCx cd 1-2 Compiler 64bit
SSH
Für die Installation von SSH werden folgende Pakete benötigt:
SUNWsshcu cd 2-2 SSH Common, (Usr) SUNWsshdr cd 2-2 SSH Server, (Root) SUNWsshdu cd 2-2 SSH Server, (Usr) SUNWsshr cd 2-2 SSH Client and utilities, (Root) SUNWsshu cd 2-2 SSH Client and utilities, (Usr) SUNWzlib cd 1-2 The Zip compression library SUNWgss cd 1-2 GSSAPI SUNWfns cd 1-2 Federate Naming System SUNWgssc cd 1-2 GSSAPI
In der Datei /etc/ssh/sshd_config folgenden Eintrag ändern,
um ROOT-Logins zu erlauben oder zu unterbinden:
PermitRootLogin no/yes
In der Datei /etc/default/login muss die Zeile:
CONSOLE=/dev/console
angepasst werden. Wenn diese Zeile mittels # auskommentiert wird,
kann sich ROOT auch übers Netz anmelden.
SDS Plattenspiegel
Für die Installation der SDS (Plattenspiegelung) werden die folgenden Pakete benötigt.
Die Pakete befinden sich auf der:
Solaris 9 CD 1-2 im Verzeichnis [MOUNTPOINT]/Solaris_9/Product/
SUNWmdr cd 1-2 Solaris Volume Manager, (Root) SUNWmdu cd 1-2 Solaris Volume Manager, (Usr) SUNWmdx cd 1-2 Solaris Volume Manager Drivers, (64-bit)
Nach der Installation des SDS ist ein Reboot nötig:
shutdown -y -i6 -g0
Diese Pakete werden benötigt
SUNWadmc SUNWadmfw SUNWbash SUNWbzip SUNWbzipx SUNWcar SUNWcarx SUNWced SUNWcedx SUNWceudt SUNWceuos SUNWceuow SUNWcsd SUNWcsl SUNWcslx SUNWcsr SUNWcsu SUNWcsxu SUNWdeis SUNWdoc SUNWeridx SUNWesu SUNWged SUNWgzip SUNWhmd SUNWhmdx SUNWkey SUNWkvm SUNWkvmx SUNWless SUNWlibC SUNWlibCx SUNWlibms SUNWlmsx SUNWloc SUNWlocx SUNWman SUNWmdnr SUNWmdnu SUNWmdr SUNWmdu SUNWmdx SUNWpd SUNWpdx SUNWpl5u SUNWqfed SUNWqfedx SUNWswmt SUNWter SUNWudf SUNWudfr SUNWudfrx SUNWusb SUNWusbx SUNWxcu4 SUNWzip
Alle anderen Pakete könne mit pkgrm <Paketname> deinstalliert werden. Mit pkginfo erhält man eine Ausgabe aller installierten Pakete.
Solaris Pakete entfernen
Nicht benötigte Pakete entfernen
Diese Pakete werden nicht benötigt
Sie können mit pkgrm deinstalliert werden
In der Datei pkgrmFW sind die nicht benötigten Pakete aufgeführt.
pkgrm SUNWadmr SUNWatfsr SUNWatfsu SUNWauda SUNWaudd SUNWauddx SUNWdfb SUNWdtcor SUNWfcip SUNWfcipx SUNWfcp SUNWfcpx SUNWfctl SUNWfctlx SUNWftpr SUNWftpu SUNWi15cs SUNWi1cs SUNWi2cs SUNWluxop SUNWluxox SUNWmdi SUNWmdix SUNWnisr SUNWnisu SUNWpiclr SUNWpiclu SUNWpiclx SUNWrmodu SUNWses SUNWsesx SUNWsndmr SUNWsndmu SUNWsolnm SUNWssad SUNWssadx SUNWtleux SUNWwsr2 SUNWxwdv SUNWxwdvx SUNWxwmod SUNWxwmox SUNWhmd SUNWhmdx SUNWeridx SUNWqfed SUNWqfedx
Raid 1 - Spiegel anlegen
- Es wird beschrieben, wie ein Raid 1 auf der Basis des Solaris Volume Manger angelegt wird.
Festplaten vorbereiten
Anlegen der Partitionen auf der zweiten Festplatte:
Mit dem Befehl "format" wird ein Programm zur Partitionierung von Festplatten aufgerufen. Beide Festplatten müssen identische Partitionen aufweisen. Ansonsten kann keine Spiegelung eingerichtet werden.
Hier kann man es sich aber einfach machen, in dem man die bestehende Festplattenkonfiguration speichert, und auf die zweite Festplatte anwendet. Dies geht folgendermassen:
- Zuerst wird die aktive Festplatte auf der das Betriebssystem installiert ist mit einem Namen versehen.
format --> 0 --> Partition --> name --> [name vergeben] --> label --> q
- Nun kann mit der gespeicherten Information die Partitionen auf die zweite, noch leer Festplatte übertragen werden.
disk --> 1 --> partition --> select --> [name auswählen] --> label --> q
- Erklärung zu den einzelnen Befehlen
format Ruft das Formatierungsprogramm aufgeführten 0 Mit 0 wird die erste Festplatte ausgewählt partition Menü zur Verwaltung der Partitionen name Vergeben eines Namens für die Partitionstabelle label Schreiben der Partitionstabelle von Festplatte 1 quit Ein Schritt zurück disk Auswahl einer Festplatte 1 Auswahl der zweiten Festplatte partition Menü zur Verwaltung der Partitionen select Auswahl einer gespeicherten Partitionstabelle label Schreiben der Veränderten Partitionstabelle der Festplatte 2
- Jetzt sollten die Festplatten identische Partitionen haben. Prüfen kann man das mit:
format --> 0 --> p --> p format --> 1 --> p --> p
Anlegen der State Database
- Nun folgt das Anlegen der StateDatabase.
Diese wird für die Verwaltung des Spiegels benötigt.
Hierzu wird in der /etc/lvm/md.tab folgender Eintrag hinzu gefügt:
mddb01 /dev/dsk/c1t0d0s7 /dev/dsk/c1t1d0s7
- Nun wird mit folgendem Aufruf die StateDatabase angelegt:
metadb -a -f -c 3 mddb01
- Zur Kontrolle kann man sich das Ergebnis mit folgendem Befehl anzeigen lassen:
# metadb
- Die Ausgabe sollte dann so aussehen:
flags first blk block count a u 16 8192 /dev/dsk/c1t0d0s7 a u 8208 8192 /dev/dsk/c1t0d0s7 a u 16400 8192 /dev/dsk/c1t0d0s7 a u 16 8192 /dev/dsk/c1t1d0s7 a u 8208 8192 /dev/dsk/c1t1d0s7 a u 16400 8192 /dev/dsk/c1t1d0s7
Einbein-Spiegel anlegen
- Jetzt wird die erste Festplatte in den Spiegel aufgenommen.
Nach dem Neustart des Servers werden dann nicht mehr die physikalischen Festplattenpatitionen gemountet,
sondern ein sognanntes Meta-Device für jede Partition. - Hierfür müssen die Konfigurationen in den Dateien
/etc/vfstab /etc/lvm/
Anpassen der md.tab
- Der Spiegel wird nun in der Datei /etc/lvm/md.tab definiert.
# vi /etc/lvm/md.tab # # Copyright 2002 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # # ident "@(#)md.tab 2.4 02/01/29 SMI" # # md.tab # # metainit utility input file. # # The following examples show the format for local metadevices, and a # similar example for a shared metadevice, where appropiate. The shared # metadevices are in the diskset named "blue": # # Metadevice database entry: # mddb01 /dev/dsk/c1t0d0s7 /dev/dsk/c1t1d0s7 # # ######################## # Spiegel # ######################## # # Spiegel / # d11 1 1 /dev/dsk/c1t0d0s0 d12 1 1 /dev/dsk/c1t1d0s0 # d10 -m d11 # # # Spiegel swap # d21 1 1 /dev/dsk/c1t0d0s1 d22 1 1 /dev/dsk/c1t1d0s1 # d20 -m d21 # # Spiegel /usr # d31 1 1 /dev/dsk/c1t0d0s3 d32 1 1 /dev/dsk/c1t1d0s3 # d30 -m d31 # # Spiegel /opt # d41 1 1 /dev/dsk/c1t0d0s4 d42 1 1 /dev/dsk/c1t1d0s4 # d40 -m d41 # # Spiegel /var # d51 1 1 /dev/dsk/c1t0d0s5 d52 1 1 /dev/dsk/c1t1d0s5 # d50 -m d51 # # Spiegel /daten # d61 1 1 /dev/dsk/c1t0d0s6 d62 1 1 /dev/dsk/c1t1d0s6 # d60 -m d61 # #########################
Initialisierung der Metadevices
- Für jede Festplattenpartition wird ein Meta-Device eingerichtet über das die
Festplatte angesprochen wird. (Beispiel: /dev/md/dsk/d10) - Mit folgenden Befehlen wird ein Einbein-Spiegel angelegt:
metainit -f d11 metainit d12 metainit -f d21 metainit d22 metainit -f d31 metainit d32 metainit -f d41 metainit d42 metainit -f d51 metainit d52 metainit -f d61 metainit d62
metainit -f d10 metainit -f d20 metainit -f d30 metainit -f d40 metainit -f d50 metainit -f d60
- Mit dem Befehl metastat kann das Ergebnis angezeigt werden.
Z.B d10 d10: Mirror Submirror 0: d11 State: Okay Pass: 1 Read option: roundrobin (default) Write option: parallel (default) Size: 26630592 blocks (12 GB) d11: Submirror of d10 State: Okay Size: 26630592 blocks (12 GB) Stripe 0: Device Start Block Dbase State Reloc Hot Spare c1t0d0s0 0 No Okay Yes
Anpassen der vfstab
- Nachdem die Einträge in der md.tab vorhanden sind, muss die Datei vfstab angepasst werden.
Es soll jetzt nicht mehr die "physikalischen Partition /dev/dsk/c1t0d0s0" gemountet werden, sonder die "Spiegelpartition /dev/md/dsk/d10.
- Dazu muss noch die /etc/vfstab angepasst werden, so dass nach einem Reboot nicht mehr von einer
Partition, sondern von den Metadevices gebootet wird. Für die Root Partition kann der Eintrag in
die /etc/vfstab mit folgendem Befehl vorgenommen werden:
metaroot /dev/md/dsk/d10
- Jetzt wurde die Anpassung für die ROOT-Partition in die Datei /etc/vfstab geschrieben.
Nun müssen noch die weiteren Eintrage geändert werden. Es folgt ein Beispiel der fertigen Datei vfstab:
#to mount to fsck point type pass at boot options # fd - /dev/fd fd - no - /proc - /proc proc - no - /dev/md/dsk/d20 - - swap - no - /dev/md/dsk/d10 /dev/md/rdsk/d10 / ufs 1 no logging /dev/md/dsk/d30 /dev/md/rdsk/d30 /usr ufs 1 no logging /dev/md/dsk/d40 /dev/md/rdsk/d40 /opt ufs 2 yes logging /dev/md/dsk/d50 /dev/md/rdsk/d50 /var ufs 1 no logging /dev/md/dsk/d60 /dev/md/rdsk/d60 /daten ufs 2 yes logging swap - /tmp tmpfs - yes - /dev/dsk/c0t0d0s0 - /mnt hsfs - no ro
- Wenn alles richtig durchgeführt worden ist, folgt nun ein Reboot nach dem der Rechner
mit den neuen Parametern startet, oder auch nicht ;-)
Einbinden der zweiten Festplatte in den Spiegel
- Nachdem der Server neu gestartet ist, können mit folgenden Befehlen die Partitionen der zweiten
Festplatte in den Spiegel (RAID 1) eingebunden werden:
Mit dem Befehl metattach werden die Metadevices der zweiten Festplatte in den Spiegel eingebunden. :
metattach d10 d12 metattach d20 d22 metattach d30 d32 metattach d40 d42 metattach d50 d52 metattach d60 d62
- Der Befehl metastat sollte nun folgendes ausgeben:
d10: Mirror Submirror 0: d11 State: Okay Submirror 1: d12 State: Resyncing Resync in progress: 0 % done Pass: 1 Read option: roundrobin (default) Write option: parallel (default) Size: 26630592 blocks (12 GB) d11: Submirror of d10 State: Okay Size: 26630592 blocks (12 GB) Stripe 0: Device Start Block Dbase State Reloc Hot Spare c1t0d0s0 0 No Okay Yes d12: Submirror of d10 State: Resyncing Size: 26630592 blocks (12 GB) Stripe 0: Device Start Block Dbase State Reloc Hot Spare c1t1d0s0 0 No Okay Yes
- Die Ausgabe von metastat sollte für alle Partitionen so aussehen, wie im Beispiel oben
für die Partition d10.
Defekte Festplatte ersetzen
My Way Soll heisen, eine Methode dies zu tun, vieleicht gibt es bessere
- FALL: Eine Festplatte ist defekt und soll getauscht werden.
Mit metastat kann festgestellt werden, welche Festplatte des Raid-Spiegels defekt ist:
# metastat d10: Mirror Submirror 0: d11 State: Okay Submirror 1: d12 State: Needs Maintenance Pass: 1 Read option: roundrobin (default) Write option: parallel (default) Size: 20484288 blocks (9.8 GB) d11: Submirror of d10 State: Okay Size: 20484288 blocks (9.8 GB) Stripe 0: Device Start Block Dbase State Reloc Hot Spare c1t0d0s0 0 No Okay Yes d12: Submirror of d10 State: Needs Maintenance Size: 20484288 blocks (9.8 GB) Stripe 0: Device Start Block Dbase State Reloc Hot Spare c1t1d0s0 0 No Needs Maintenance Yes
Der Hinweis 'Need Maintenance zeigt einen Fehler in diesem Spiegel.
- Falls möglich, dass System herunter fahren und im ausgeschalteten Zustand die betroffene Festplatte ersetzen.
Beim Booten des Systems, kann es notwendig sein, die Boot-Festplatte anzugeben
boot disk0 --> disk[1,2,3....]
- Nach dem einschalten startet der Server in den Single-User-Mode. Nach der Passworteingabe erhält man eine Root-Shell.
Eine Prüfung mit dem Befehl metadb sollte nun folgende (ähnliche) Zeilen anzeigen:
flags first blk block count a m p luo 16 8192 /dev/dsk/c1t0d0s7 a p luo 8208 8192 /dev/dsk/c1t0d0s7 a p luo 16400 8192 /dev/dsk/c1t0d0s7 M p unknown unknown /dev/dsk/c1t1d0s7 M p unknown unknown /dev/dsk/c1t1d0s7 M p unknown unknown /dev/dsk/c1t1d0s7
- Zuerst werden die Metadaten der def. Festplatte gelöscht:
# metadb -d c1t1d0s7
- Eine Abfrage mit metadb sollte folgendes Ergebnis erzeugen:
# metadb flags first blk block count a m p luo 16 8192 /dev/dsk/c1t0d0s7 a p luo 8208 8192 /dev/dsk/c1t0d0s7 a p luo 16400 8192 /dev/dsk/c1t0d0s7
- Das System nun neu starten
boot disk0 --> disk[1,2,3....]
- Anlegen der Partitionen auf der zweiten Festplatte:
Mit dem Befehl "format" wird ein Programm zur Partitionierung von Festplatten aufgerufen. Beide Festplatten müssen identische Partitionen aufweisen. Ansonsten kann keine Spiegelung eingerichtet werden. Hier kann man es sich aber einfach machen, in dem man die bestehende Festplattenkonfiguration speichert, und auf die zweite Festplatte anwendet. Dies geht folgendermassen:
- Zuerst wird die aktive Festplatte auf der das Betriebssystem installiert ist mit einem Namen versehen.
format --> 0 --> Partition --> name --> [name vergeben] --> label --> q
- Nun kann mit der gespeicherten Information die Partitionen auf die zweite, noch leer Festplatte übertragen werden.
disk --> 1 --> partition --> select --> [name auswählen] --> label --> q
- Anlegen der Metadaten auf der neuen Festplatte
# metadb -a -f -c 3 /dev/dsk/c1t1d0s7
# metadb flags first blk block count a m p luo 16 8192 /dev/dsk/c1t0d0s7 a p luo 8208 8192 /dev/dsk/c1t0d0s7 a p luo 16400 8192 /dev/dsk/c1t0d0s7 a u 16 8192 /dev/dsk/c1t1d0s7 a u 8208 8192 /dev/dsk/c1t1d0s7 a u 16400 8192 /dev/dsk/c1t1d0s7
- Syncronisierung der neuen Festplatte
Mit metareplace wird die Festplatte (bzw. die vorhandendn Partitionen) in den Spiegel aufgenommen
und Syncronisiert.
# metareplace -e d10 c1t1d0S0 --> metareplace -e [SPIEGEL] [NEUE PARTITION]
- Mit metatstat kann das Ergebnis angesehen werden.
# metastat
d10: Mirror Submirror 0: d11 State: Okay Submirror 1: d12 State: Resyncing Resync in progress: 31 % done . . . . . . d12: Submirror of d10 State: Resyncing Size: 20484288 blocks (9.8 GB) Stripe 0: Device Start Block Dbase State Reloc Hot Spare c1t1d0s0 0 No Resyncing Yes
System Patch einspielen
Recommended Patch Cluster
- Solaris bietet auf der Internetseite [www.sunsolve.sun.com] Patch-Cluster für Solaris an.
Die Recommended and Security Patches [hier] herunter geladen werden.
- Nach dem Download die Datei mittels unzip entpacken und mittels des Installer-Scripts installieren.
# unzip 9_Recommended.zip # [Path]/9_Recommended/install_cluster
Netzwerk einrichten
Netzwerkkarten einrichten
- Unter Solaris (Sparc) gibt es vordefinierte Interface-Bezeichnungen. Hier ein auszug davon:
eri OnBoard Netzwerkkarte 10/100 hme PCI Netzwerkkarte 10/100 ce PCI Netzwerkkarte 100/1000 qfe 0-3 PCI Quadkarte 10/100 bge 0-3 OnBoard Quadkarte 100/1000
Netzwerkarte mittels ifconfig einrichten
- Mit ifconfig können Netzwerkkarten in das System eingebunden, aktiviert und eingerichtet werden.
Diese Einstellungen gehen nach einem Reboot verloren
Ein Beispiel mit dem Interface eri # ifconfig eri0 plumb up # ifconfig eri0 10.10.10.1 netmask 255.0.0.0
Nun ist die Netwerkkarte eri0 aktiv und mit der IP 10.10.10.1 und der Netzwerkmaske 255.0.0.0 belegt.
- Die Netzwerkkarte kann über ifconfig auch wieder entfernt werden, bzw. aus dem System entfernt werden
# ifconfig eri0 down // deaktiviert die Netwerkkarte # ifconfig eri0 unplumb // entfernt die Netzwerkkarte aus dem System
Netzwerkarte mittels Conf-Dateien einrichten
IP
- Im Verzeichnis /etc/ wird für jede aktive Netzwerkkarte, bzw jedes aktive Netzwerkinterface eine Datei angelegt.
Diese beinhaltet die IP des Netzwerkinterface. Hier ein Beispiel:
# ls -al hostname.* -rw-r--r-- 1 root root 8 Feb 13 13:33 hostname.bge0 -rw-r--r-- 1 root other 0 Feb 20 09:49 hostname.ce0
# cat /etc/hostname.bge0 10.10.10.1
Wenn diese Datei mit zugehöriger IP angelegt ist, wird nach einem Neustart des Systems das Netzwerkinterface aktiviert.
Wer das system nicht neu starten will, kann mit:
# /etc/init.d/network restart
das Netzwerk neu starten.
Netmask
- Für IPs die nicht die Default-Netmask haben, muss die Datei /etc/netmasks angepasst werden:
# ls -al /etc/netmasks lrwxrwxrwx 1 root root 15 Jan 10 2005 /etc/netmasks -> ./inet/netmasks
# cat /etc/netmasks # Beispiel für eine Externe IP 130.1.1.1 255.255.255.252
Default Gateway einrichten
- Um das Default-Gateway einzurichten, wird die Datei /etc/defaultrouter bearbeitet.
In dieser Datei steht entweder die IP des Default-Gateways, oder der Domainname:
# ls -al /etc/defaultrouter -rw-r--r-- 1 root root 13 Feb 13 13:33 /etc/defaultrouter
# cat /etc/defaultrouter 10.10.10.254
DNS
- In der Datei /etc/resolv.conf werden die DNS-Server für die Namensauflösung eingetragen:
# ls -al /etc/resolv.conf -rw-r--r-- 1 root other 15 Jan 10 2005 /etc/defaultrouter
# cat /etc/resolv.conf nameserver 10.10.10.2 nameserver 10.10.10.3 search mydomain.de
Hostname und Auflösung zur IP
/etc/hosts
- In dieser Datei wird der Hostname der IP zugeordnet:
Beispiel # cat /etc/hosts 127.0.0.1 localhost 130.1.1.1 myhost loghost
/etc/nodename
- In diese Datei wird der Hostname definiert:
Beispiel # cat /etc/nodename myhost
Tipps
STOP+A deaktivieren
vi /etc/system set abort_enable 0 # will disable STOP-A
go to /etc/default/kbd remove the comment line from keyboard_Abort Disable
kbd -a disable vi /etc/default/kbd KEYBOARD_ABORT disable
kbd -a disable to disable the STOP+A from the Keyboad
- wq!
BUGs
shcat
In einigen Systemscripten (z.B. /etc/init.d/network) wird der Shellbefehl shcat verwendet.
Diese Befehl wird in der Datei /etc/rcS definiert.
shcat steht der Shell aber nicht zur Verfügung, warum ist mirnicht bekannt.
- Lösung
ln -s /usr/bin/cat /usr/bin/shcat