IRIX Administration Cheat Sheet

SGI IRIX 6.5 (6.5.22 – 6.5.30) · MIPS · Silicon Graphics
Keine Treffer – Suchbegriff anpassen.

💻System- & Hardware-Informationen

hinvHardware-Inventar: CPU, RAM, Platten, Grafik, Adapter – wichtigster Einstiegsbefehl
hinv -vVerbose: zusätzliche Details je Komponente
hinv -mModul-/Board-Informationen inkl. Seriennummern und Revisionen
hinv -mvKombination: Boards ausführlich (typisch für Hardware-Tickets)
hinv -bBus-spezifische Informationen (VME/PCI/XIO)
hinv -c diskNur Platten (Controller-/Drive-Adresse ablesen)
hinv -c processorNur CPUs: Typ, Takt, Anzahl, Cache
hinv -c memoryNur Speicher: Hauptspeicher und Bankbelegung
hinv -c tapeNur Bandlaufwerke
hinv -c networkNur Netzwerk-Controller
hinv -c graphicsNur Grafik-Subsystem
uname -aHostname, OS, Release, Maschinentyp, Prozessorklasse
uname -RRelease inkl. Minor-Release, z. B. 6.5 6.5.30f
uname -mCPU-Board-Typ, z. B. IP30 (Octane), IP27 (Origin), IP32 (O2)
uname -pProzessortyp, z. B. mips
uname -nHostname – kommt aus /etc/sys_id
cat /etc/sys_idDefiniert den Systemnamen (Hostname) verbindlich
sysinfoSystem-ID (Host-ID) in hexadezimaler Form
sysinfo -sSeriennummer/System-ID dezimal – Basis vieler FLEXlm-Lizenzen
/usr/gfx/gfxinfoGrafik-Pipe(s): Typ, Speicher, Auflösung, Board-Revisionen
/usr/gfx/gfxinfo -vvGrafik-Details ausführlich
/sbin/nvramAlle NVRAM-Variablen aus IRIX heraus anzeigen
/sbin/nvram netaddrEinzelne NVRAM-Variable lesen
/sbin/nvram netaddr 10.0.0.10NVRAM-Variable aus IRIX heraus setzen (persistent)
date; uptime; wZeit, Laufzeit, Load Average, angemeldete Benutzer
who -rAktuellen Runlevel anzeigen
last reboot | headReboot-Historie aus /var/adm/wtmp
versions -b eoeInstallierten IRIX-Stand (Execution Environment) ablesen
Praxis: Vor jedem Change den Ist-Zustand wegschreiben: hinv -mv > /var/tmp/hinv.txt, versions -b > /var/tmp/versions.txt, prtvtoc > /var/tmp/vtoc.txt und xlv_mgr -c "show all" sichern.

/proc und /hw

ls /procEin Eintrag je Prozess (PID) – Basis für dbx und par
ls -R /hwHardware-Graph-Filesystem: physische Gerätetopologie (ab IRIX 6.4)
ls -l /hw/moduleModule/Bricks eines Origin-Systems
Merke: /etc/sys_id bestimmt den Hostnamen – nicht hostname. Eine Änderung erfordert einen passenden Eintrag in /etc/hosts und einen Neustart des Netzwerks (/etc/init.d/network stop; /etc/init.d/network start), sonst startet das Netzwerk nicht korrekt.

⏻Boot, PROM-Monitor & Runlevel

System Maintenance Menu (Esc beim Einschalten)

1 Start SystemNormal booten (identisch zum Autoboot)
2 Install System SoftwareMiniroot/inst von CD, Band oder Netzwerk starten
3 Run DiagnosticsErweiterte Hardware-Diagnose (nicht auf allen Modellen)
4 Recover SystemSystemwiederherstellung von Install-Medium (Root-FS reparieren)
5 Enter Command MonitorPROM-Kommandozeile >>
6 Select Keyboard LayoutNur bei Grafikkonsole: Tastaturlayout wählen

PROM Command Monitor (>>)

helpVom PROM tatsächlich unterstützte Kommandos anzeigen
hinvHardware, die das PROM sieht (Platten, RAM, Grafik)
hinv -vAusführliches PROM-Inventar
printenvAlle PROM-/NVRAM-Variablen anzeigen
setenv netaddr 10.0.0.10IP-Adresse für Netzwerk-Boot/-Install setzen
setenv -p bootfile "dksc(0,1,8)sash"Standard-Loader/Bootplatte setzen (-p = persistent)
setenv AutoLoad YesAutomatisch booten nach Reset/Power-On (früher bootmode c)
setenv console dKonsole auf erste serielle Schnittstelle legen (g = Grafik)
setenv dbaud 9600Baudrate der Diagnose-/Serienkonsole
setenv diagmode vPower-On-Diagnose ausführlich und vollständig
setenv showconfig istrueIRIX gibt beim Booten zusätzliche Informationen aus
setenv rebound yNach Kernel-Panic automatisch rebooten
unsetenv OSLoadOptionsVariable löschen
resetenvAlle NVRAM-Variablen auf Werkseinstellung (Passwort bleibt)
resetpwPROM-Passwort entfernen
bootBootet die in bootfile hinterlegte Datei
boot -f dksc(0,1,8)sashExplizit den Standalone-Shell-Loader von Partition 8 laden
boot dksc()unix initstate=sKernel booten und in den Single-User-Modus gehen
boot -f bootp()server:/pfad/unixÜber BOOTP/TFTP vom Netzwerk booten
singleDirekt in den Single-User-Modus booten
autoNormal booten (wie Menüpunkt 1)
ls dksc(0,1,8)Dateien im Volume Header auflisten (sash, ide, sgilabel)
updateGespeichertes Hardware-Inventar aktualisieren
versionPROM-/Command-Monitor-Version
exitZurück ins System Maintenance Menu
Gerätesyntax im PROM: device(controller,unit,partition)file. dksc = SCSI-Platte, tpsc = SCSI-Band, bootp = Ethernet. Beispiel: dksc(0,1,0) = Controller 0, Drive 1, Partition 0 (root). Fehlende Werte sind 0, die Kommas sind Platzhalter und dürfen nicht entfallen.

Runlevel, init & Dienste

init sIn den Single-User-Modus wechseln (aus dem Multiuser-Betrieb)
init 2Zurück in den Multiuser-Modus
telinit qNach Änderung von /etc/inittab neu einlesen
/etc/inittabinitdefault, Konsolen-getty, Startskripte je Runlevel
ls /etc/init.dAlle Start-/Stop-Skripte (network, nfs, xdm, swap, cron …)
/etc/init.d/network stopDienst einzeln stoppen (analog start)
ls /etc/rc0.d /etc/rc2.dSymlinks in die init.d-Skripte für Runlevel 0 bzw. 2
chkconfigAlle Konfigurations-Flags mit Status on/off
chkconfig -sNach Status sortiert ausgeben
chkconfig nfsExit-Status 0 = on, 1 = off – für Skripte
chkconfig nfs onDienst dauerhaft aktivieren (wirkt beim nächsten Boot)
chkconfig -f myflag on-f legt die Flag-Datei an, falls sie fehlt
ls /var/configAblage der chkconfig-Flags (/etc/config ist ein Symlink darauf)
ls /etc/config/*.optionsOptionsdateien der Dienste (netif, ifconfig-1, static-route …)
chkconfig ist kein Runlevel-Werkzeug: Es schaltet nur Flag-Dateien in /var/config um. Die Skripte in /etc/init.d prüfen diese Flags beim Start. Symlinks in /etc/rc2.d selbst anzufassen ist unnötig und fehleranfällig.

Herunterfahren & Neustart

shutdown -y -g0 -i6Sofort rebooten ohne Rückfrage (Standard bei Wartung)
shutdown -y -g300 -i0 In 5 Minuten herunterfahren, Meldung an alle Benutzer
shutdown -y -g0 -i5Herunterfahren und ausschalten (Power off, falls unterstützt)
rebootSchneller Neustart ohne init-Skripte – nur wenn nötig
haltSystem sofort anhalten (Puffer werden geschrieben, keine rc0-Skripte)
sync; syncVor harten Eingriffen Puffer schreiben
Achtung: reboot und halt umgehen die /etc/rc0.d-Skripte – XLV-Volumes werden nicht saubergefahren und NFS-Exporte nicht abgemeldet. Für Produktion immer shutdown -y -g0 -i6 verwenden.

🧠Kernel, systune & autoconfig

systuneAlle Tunables mit aktuellem Wert anzeigen (nichtinteraktiv)
systune nprocEinzelnen Parameter anzeigen
systune numprocGanze Parametergruppe anzeigen (z. B. numproc, ipc, vm)
systune -iInteraktiver Modus, Prompt systune->
systune-> helpAlle Gruppennamen und Kommandos listen
systune-> allAlle Tunables ausgeben
systune-> nproc 400Wert setzen (mit Sicherheitsrückfrage)
systune-> quitBeenden – bereits gesetzte Werte bleiben gesetzt
echo y | systune nproc 400Nichtinteraktiv ohne Rückfrage (für Skripte)
systune -r rsshogslop 0-r: nur laufendes System ändern, nichts persistieren
systune -b nproc 400-b (Default): laufendes System und Zielkernel + stune
systune -f nproc 400Kein /unix.install anlegen
systune -n /unix.save nprocAnderen Kernel als /unix untersuchen
Ablauf beachten: Nicht dynamisch änderbare Tunables schreibt systune in /unix.install und in /var/sysgen/stune. Erst nach Reboot (das System zieht /unix.install nach /unix) ist der Wert aktiv. systune sagt jeweils selbst, ob ein Reboot nötig ist.

Kernel neu bauen (autoconfig / lboot)

autoconfigKernel aus /var/sysgen neu konfigurieren, wenn nötig
autoconfig -fNeubau erzwingen, auch ohne erkannte Änderung
autoconfig -vfErzwungener Neubau mit ausführlicher Ausgabe
lboot -vKernel-Link direkt aufrufen (wird von autoconfig genutzt)
ls -l /unix /unix.installLaufender Kernel und neu gebauter Kernel im Vergleich
cp /unix /unix.saveFallback-Kernel sichern – vor jeder Kernel-Änderung!

Wichtige Kernel-Verzeichnisse

/var/sysgen/master.d/Beschreibungsdateien der Kernel-Module (Treiber, Subsysteme)
/var/sysgen/system/*.sm-Dateien: INCLUDE/EXCLUDE/ROOTDEV
/var/sysgen/boot/Objektdateien der Kernel-Module
/var/sysgen/mtune/Vorgaben und gültige Wertebereiche aller Tunables
/var/sysgen/stuneLokale, dauerhafte Tunable-Werte dieses Systems
/var/sysgen/system/irix.smZentrale Kernel-Konfiguration von IRIX
Praxisfalle: Nach Änderungen in /var/sysgen oder nach Einspielen von Treiber-Subsystemen muss autoconfig laufen und das System neu gestartet werden. Ohne Reboot bleibt der alte Kernel aktiv. Vorher immer cp /unix /unix.save – ein defekter Kernel lässt sich dann per boot -f dksc(0,1,0)/unix.save aus dem PROM starten.

📦Software: inst, versions & Patches

Installierte Software abfragen

versionsAlle installierten Produkte, Images und Subsysteme auflisten
versions -bKurzform: nur die obersten Produkt-Ebenen (brief)
versions longAusführliche Liste mit Datum, Größe und Beschreibung
versions -avAlle Subsysteme inklusive nicht installierter Teile anzeigen
versions eoeNur Produkt eoe (Execution Only Environment = Basis-OS)
versions -b eoeSchnellster Weg zur exakten IRIX-Release (z. B. 6.5.30)
versions changedDateien, die nach der Installation verändert wurden (Delta-Zustand)
versions -m changedGeänderte Dateien mit Angabe des Unterschieds
versions missingDateien, die laut Datenbank fehlen – Hinweis auf Löschungen
versions -n patchSG0004145Prüfen, ob ein bestimmter Patch installiert ist
versions -jNur Patch-Subsysteme (patch products) auflisten
versions remove patchSG0004145Patch bzw. Subsystem wieder entfernen
showprodsLink auf versions – Produktübersicht (gewohnter Name)
showfiles -F /usr/bin/lsZeigt, aus welchem Subsystem eine Datei stammt
showfiles eoe.sw.baseAlle Dateien eines Subsystems auflisten
relnotesRelease Notes eines Produkts im Terminal lesen
relnotes patchSG0004145Beschreibung und Voraussetzungen eines Patches
grelnotesGrafischer Release-Notes-Browser (X11 erforderlich)

inst – interaktive Installation

instInteraktives Installationsprogramm starten (eigene Befehlssprache)
inst -f /CDROM/distDirekt mit einer Distribution als Quelle starten
inst -f host:/dist/6.5.30Quelle über Netz (benötigt rsh-Zugang zum Server)
inst -a -f /distAutomatikmodus: Standardauswahl installieren, keine Rückfragen
swmgrGrafisches Software-Manager-Frontend für inst
swmgr -f /CDROM/distSoftware Manager mit vorgegebener Distribution öffnen
distcopy /CDROM/dist /dist/6.5.30Distribution von CD auf Platte kopieren (Prfx-Struktur bleibt)
inst -V /distDistribution prüfen, ohne zu installieren

Befehle innerhalb von inst

from /CDROM/distDistributionsquelle setzen oder wechseln
listAlle Subsysteme mit Status (I/R/N) und Auswahl anzeigen
list newNur Subsysteme anzeigen, die noch nicht installiert sind
install *Alles zur Installation vormerken
install patchSG*Nur Patches vormerken (Muster erlaubt)
remove eoe.sw.unusedSubsystem zum Entfernen vormerken
keep eoe.sw.baseSubsystem unangetastet lassen (Auswahl zurücknehmen)
stepAuswahl Subsystem für Subsystem interaktiv durchgehen
conflictsAbhängigkeitskonflikte der aktuellen Auswahl anzeigen
goVorgemerkte Aktionen ausführen (eigentliche Installation)
spacePlatzbedarf der Auswahl je Filesystem prüfen
versionsInstallationsdatenbank aus inst heraus abfragen
helpHilfe zur inst-Befehlssprache
quitBeenden – nicht ausgeführte Auswahl wird verworfen
Praxisfalle: inst ist ein eigener Interpreter mit eigener Befehlssprache – Auswahl (install/remove/keep) und Ausführung (go) sind getrennt. Ohne go passiert nichts. Nach dem Patchen zeigt versions changed den Delta-Zustand gegenüber der Installationsdatenbank.
Tipp: Konfigurationsdateien werden von inst nie überschrieben: die neue Version landet als datei.N, die alte bleibt bzw. wird als datei.O gesichert. Nach größeren Updates immer nach find /etc -name '*.N' suchen und manuell zusammenführen.
Vorsicht: Basis-OS-Updates laufen über die Miniroot (Installation von CD/Netz mit angehaltenem System). Der Rechner ist dabei nicht nutzbar und ein Abbruch mitten in der Miniroot-Phase kann das System unbootbar machen – vorher Backup (xfsdump) und Konsolenzugang sicherstellen.
# --- Patch-Set einspielen (Beispiel 6.5.30) ---
# 1) Distribution von CD auf lokale Platte kopieren (schneller, wiederholbar)
distcopy /CDROM/dist /dist/patches_6530

# 2) Ausgangszustand dokumentieren
versions -b eoe            > /var/tmp/versions.vorher
versions -j                >> /var/tmp/versions.vorher

# 3) inst starten
inst -f /dist/patches_6530

  Inst> list new            # was ist neu?
  Inst> install patchSG*    # alle Patches vormerken
  Inst> conflicts           # Abhaengigkeiten pruefen
  Inst> space               # Platzbedarf pruefen
  Inst> go                  # ausfuehren
  Inst> quit

# 4) Kernel neu bauen, falls Treiber/Kernel-Teile dabei waren
autoconfig -vf
reboot

# 5) Ergebnis kontrollieren
versions -b eoe
versions -j
versions changed | more
find /etc -name '*.N' -print   # neue Konfigdateien nachziehen

🔌Devices, Platten & SCSI

Hardware und SCSI-Bus untersuchen

hinv -c diskAlle erkannten Platten mit Controller, Unit und Größe
hinv -c tapeBandlaufwerke am SCSI-Bus anzeigen
hinv -c scsiSCSI-Controller und angeschlossene Geräte
hinv -vvMaximale Detailtiefe über alle Geräteklassen
scsicontrol -i /dev/scsi/sc0d2l0Inquiry: Hersteller, Modell, Firmware eines Geräts
scsicontrol -c /dev/scsi/sc0d2l0Read Capacity: Blockzahl und Blockgröße
scsicontrol -r /dev/scsi/sc0d2l0Gerät zurücksetzen (Bus Device Reset)
scsiha -p 0SCSI-Bus 0 nach Geräten absuchen (probe)
scsiha -r 0SCSI-Bus 0 zurücksetzen – nur bei hängendem Bus
ioconfig -f /hwController-Nummern neu zuordnen, /hw durchlaufen
ls -l /dev/scsiRohe SCSI-Geräteknoten (Controller/Target/LUN)
ls -l /dev/dskBlockorientierte Plattenpartitionen
ls -l /dev/rdskZeichenorientierte (raw) Plattenpartitionen

Gerätenamen verstehen

/dev/dsk/dks0d1s0Controller 0, Drive 1, Partition 0 – blockorientiert
/dev/rdsk/dks0d1s0Gleiche Partition, aber raw (für fx, mkfs, dd)
/dev/dsk/dks0d1s7Partition 7 = konventionell die gesamte Datenpartition
/dev/rdsk/dks0d1vhVolume Header: Label, Partitionstabelle, Bootblocks
/dev/rdsk/dks0d1volDie komplette Platte einschließlich Volume Header
/dev/dsk/xlv/nameXLV-Volume (logisches Volume) – siehe Sektion XLV
/dev/rmt/tps0d3nrBand ohne Rewind (nr) an Controller 0, Target 3
/dev/rmt/tps0d3Gleiches Band mit automatischem Rewind beim Schließen

fx – Platten labeln und partitionieren

fxStartet interaktiv und fragt Gerätetyp, Controller und Drive ab
fx "dksc(0,2,0)"Direkt Controller 0, Drive 2 öffnen (PROM-Schreibweise)
fx -xExpertenmodus mit zusätzlichen, gefährlichen Menüs
fx -c dksc -xGeräteklasse vorgeben und im Expertenmodus starten
[l]abelUntermenü: Label anzeigen, schreiben, sichern, erzeugen
label/show/allKomplettes Plattenlabel mit allen Partitionen ausgeben
label/syncGeändertes Label auf die Platte schreiben
[r]epartitionPartitionierung ändern (rootdrive, optiondrive, expert)
repartition/optiondriveDatenplatte: eine große Partition s7 anlegen
repartition/rootdriveSystemplatte: root (s0) und swap (s1) anlegen
[b]adblockDefekte Blöcke anzeigen bzw. neu zuordnen
[exe]rciseOberflächentest der Platte (schreibend, löscht Daten)
[d]ebugRohe Blöcke lesen/schreiben – nur für Notfälle
/exitfx verlassen (Label wird beim Verlassen synchronisiert)

Label, Volume Header und Bootblocks

prtvtoc /dev/rdsk/dks0d1vhPartitionstabelle einer Platte lesbar ausgeben
prtvtoc -f /dev/rdsk/dks0d1vhFreien, nicht partitionierten Platz anzeigen
prtvtoc -h /dev/rdsk/dks0d1vhAusgabe ohne Kopfzeilen (skriptfreundlich)
dvhtool /dev/rdsk/dks0d1vhVolume-Header-Dateien verwalten (sash, ide, symmon)
dvhtool -v list /dev/rdsk/dks0d1vhInhalt des Volume Headers auflisten
dvhtool -v get sash /var/tmp/sashDatei aus dem Volume Header herauskopieren
dvhtool -v creat /stand/sash sashStandalone-Loader sash in den Volume Header schreiben

Bandlaufwerke

mt -f /dev/rmt/tps0d3nr statusStatus, Blockgröße und Position des Bandes
mt -f /dev/rmt/tps0d3 rewindBand an den Anfang zurückspulen
mt -f /dev/rmt/tps0d3nr fsf 2Zwei Dateimarken vorspulen (nächstes Archiv wählen)
mt -f /dev/rmt/tps0d3nr bsf 1Eine Dateimarke zurückspulen
mt -f /dev/rmt/tps0d3 eraseBand löschen – Daten sind danach verloren
mt -f /dev/rmt/tps0d3 offlineZurückspulen und Kassette auswerfen
Praxisfalle: fx arbeitet direkt auf dem Plattenlabel und ist destruktiv. Ein neues Label oder repartition macht alle Daten der Platte unerreichbar – es gibt keine Rückfrage nach dem letzten Bildschirm. Immer zuerst hinv -c disk und prtvtoc zur Kontrolle, dann die richtige Controller/Drive-Nummer eingeben. Niemals fx auf die laufende Systemplatte anwenden.
Tipp: Vor jedem Eingriff das Label sichern: prtvtoc /dev/rdsk/dks0d2vh > /var/tmp/label_dks0d2.txt. Mit dieser Ausgabe lässt sich die Partitionierung in fx im Expertenmodus wieder von Hand nachbauen.
# --- Neue Datenplatte in Betrieb nehmen ---
# 1) Erkennung pruefen (Platte muss im Inventory auftauchen)
hinv -c disk
# ergibt z. B.: Disk drive: unit 2 on SCSI controller 0

# 2) Falls nicht sichtbar: Bus absuchen
scsiha -p 0
ioconfig -f /hw
scsicontrol -i /dev/scsi/sc0d2l0

# 3) Platte labeln und partitionieren  (ACHTUNG: destruktiv!)
fx "dksc(0,2,0)"
  fx> label
  label> show all              # aktuellen Zustand ansehen
  label> ..
  fx> repartition
  repartition> optiondrive     # eine grosse Partition s7
  repartition> ..
  fx> /exit

# 4) Ergebnis kontrollieren
prtvtoc /dev/rdsk/dks0d2vh

# 5) XFS-Filesystem anlegen (raw device!)
mkfs -t xfs /dev/rdsk/dks0d2s7

# 6) Mountpunkt und Dauereintrag in /etc/fstab
mkdir -p /data1
echo "/dev/dsk/dks0d2s7  /data1  xfs  rw  0 0" >> /etc/fstab

# 7) Mounten und pruefen
mount /data1
df -k /data1
xfs_info /data1

📁XFS-Filesysteme

Anlegen und Informationen

mkfs -t xfs /dev/rdsk/dks0d2s7XFS-Filesystem mit Standardwerten anlegen
mkfs_xfs /dev/rdsk/dks0d2s7Direkter Aufruf des XFS-Formatierers
mkfs_xfs -b size=4096 /dev/rdsk/dks0d2s7Blockgröße explizit auf 4 KB setzen
mkfs_xfs -l size=10m /dev/rdsk/dks0d2s7Größe des internen Logs festlegen
mkfs_xfs -d name=/dev/rxlv/xlv0 -l ...Filesystem auf einem XLV-Volume anlegen
mkfs_xfs -f /dev/rdsk/dks0d2s7Erzwingen, obwohl bereits ein Filesystem erkannt wird
mkfs_xfs -n /dev/rdsk/dks0d2s7Nur anzeigen, was angelegt würde (dry run)
xfs_info /data1Geometrie eines gemounteten XFS: Blocks, AGs, Log, Realtime
xfs_growfs /data1Filesystem auf die volle Größe des Geräts ausdehnen
xfs_growfs -D 2000000 /data1Datenbereich auf eine bestimmte Blockzahl vergrößern
xfs_growfs -n /data1Nur Geometrie ausgeben, nichts ändern (wie xfs_info)
xfs_admin -L DATA1 /dev/dsk/dks0d2s7Label des Filesystems setzen (nur ungemountet)
xfs_admin -u /dev/dsk/dks0d2s7UUID des Filesystems anzeigen

Mounten und /etc/fstab

mount /data1Mounten nach Eintrag in /etc/fstab
mount -t xfs /dev/dsk/dks0d2s7 /data1Explizit mit Typangabe mounten
mount -o ro /dev/dsk/dks0d2s7 /data1Nur lesend mounten (Analyse, Datenrettung)
mount -aAlle Einträge aus /etc/fstab mounten
mountAlle aktuell gemounteten Filesysteme mit Optionen anzeigen
umount /data1Filesystem aushängen
umount -k /data1Prozesse mit offenen Dateien abschießen und aushängen
fuser -c /data1Prozesse ermitteln, die das Filesystem belegen
df -kBelegung aller Filesysteme in Kilobyte
df -iInode-Nutzung anzeigen
df -k /data1Belegung eines einzelnen Filesystems
du -sk /data1/*Größe der Unterverzeichnisse in KB
du -sk /data1 | sort -nPlatzfresser sortiert ermitteln
/etc/fstabStatische Mount-Tabelle: Device, Mountpunkt, Typ, Optionen
/etc/mtabListe der aktuell gemounteten Filesysteme

Prüfen und Reparieren

xfs_check /dev/dsk/dks0d2s7Konsistenzprüfung, nur lesend – Filesystem muss ungemountet sein
xfs_repair -n /dev/dsk/dks0d2s7Trockenlauf: Fehler melden, aber nichts ändern
xfs_repair /dev/dsk/dks0d2s7Filesystem reparieren (nur ungemountet!)
xfs_repair -L /dev/dsk/dks0d2s7Log verwerfen – letzte Maßnahme, Datenverlust möglich
xfs_repair -l /dev/dsk/dks0d1s0 ...Externes Log angeben (bei getrenntem Log-Subvolume)
fsck -t xfs /dev/dsk/dks0d2s7Ruft für XFS im Wesentlichen den Log-Replay auf
xfs_logprint /dev/dsk/dks0d2s7Inhalt des XFS-Logs ausgeben (Analyse)
xfs_logprint -t /dev/dsk/dks0d2s7Nur Transaktionsübersicht des Logs
xfs_db -r /dev/dsk/dks0d2s7Debugger nur lesend öffnen (gefahrlos)
xfs_db /dev/dsk/dks0d2s7Debugger schreibend – nur mit klarem Plan benutzen
xfs_ncheck /dev/dsk/dks0d2s7Inode-Nummern in Pfadnamen auflösen
xfs_bmap -v /data1/grossedateiBlockbelegung (Extents) einer Datei anzeigen
xfs_copy /dev/dsk/dks0d2s7 /dev/dsk/dks0d3s7Filesystem blockweise auf ein anderes Gerät klonen
xfs_fsrDefragmentierung (Filesystem Reorganizer) aller XFS
xfs_fsr -v /data1Ein Filesystem defragmentieren, ausführlich
xfs_estimate /pfadAbschätzen, wieviel Platz ein Baum als XFS benötigt

Quotas

mount -o quota /dev/dsk/dks0d2s7 /data1Filesystem mit Quota-Unterstützung mounten
quotaon /data1Quotas für ein Filesystem aktivieren
quotaoff /data1Quotas deaktivieren
edquota benutzerSoft- und Hard-Limits eines Benutzers bearbeiten
edquota -tGnadenfrist (grace period) für Soft-Limits setzen
edquota -p vorlage benutzerLimits von einem Vorlagebenutzer übernehmen
repquota /data1Quota-Bericht für alle Benutzer eines Filesystems
repquota -aBericht für alle Filesysteme mit Quotas
quota -v benutzerVerbrauch und Limits eines Benutzers anzeigen
quotacheck -aQuota-Verbrauchsdaten neu berechnen
Praxisfalle: xfs_repair und xfs_check laufen nur auf ungemounteten Filesystemen. Bei einem gemounteten Gerät sind die Ergebnisse wertlos oder zerstörend. Und xfs_repair -L verwirft das Log: alle noch nicht geschriebenen Transaktionen sind weg. -L nur einsetzen, wenn ein normaler Replay fehlschlägt und ein Backup existiert.
Tipp: XFS spielt sein Log beim Mounten selbst zurück. Nach einem Absturz genügt in der Regel ein einfacher mount – erst wenn dieser fehlschlägt, kommen xfs_repair -n (Analyse) und dann xfs_repair zum Einsatz.

🗃XLV Volume Manager

Aufbau: Ein XLV-Volume besteht aus bis zu drei Subvolumes: data (Pflicht), log und rt (Realtime). Jedes Subvolume enthält einen oder mehrere Plexes (Spiegelhälften), jeder Plex besteht aus Volume Elements (Partitionen). Striping entsteht durch mehrere Partitionen in einem Volume Element, Spiegelung durch mehrere Plexes.

Volumes erzeugen und verwalten

xlv_makeInteraktiv Volumes definieren und Labels schreiben
xlv_make -f /var/tmp/xlv.cfgVolume-Definition aus einer Skriptdatei einlesen
vol xlv0In xlv_make: neues Volume mit Namen xlv0
dataData-Subvolume beginnen (Pflichtteil jedes Volumes)
logLog-Subvolume beginnen (externes XFS-Log)
rtRealtime-Subvolume beginnen (Video/Streaming)
plexNeuen Plex im aktuellen Subvolume anlegen (Spiegelhälfte)
ve /dev/dsk/dks0d2s7Volume Element aus einer Partition bilden
ve -stripe -stripe_unit 128 dev1 dev2Gestriptes Volume Element, Stripe Unit in 512-Byte-Blöcken
showAktuelle, noch nicht geschriebene Definition anzeigen
endDefinition des aktuellen Objekts abschließen
exitLabels schreiben und xlv_make beenden
quitBeenden, ohne Labels zu schreiben

xlv_mgr – laufender Betrieb

xlv_mgrInteraktive Verwaltung bestehender XLV-Objekte
xlv_mgr -c "show all"Einzelbefehl ohne Interaktion ausführen (skriptfähig)
show allAlle bekannten Volumes und deren Zustand auflisten
show -v allAusführlich: Plexes, Volume Elements, Blockbereiche
show vol xlv0Details eines einzelnen Volumes
show configKonfiguration wie im Kernel bekannt anzeigen
show labelsRohe XLV-Labels aller Platten lesen
attach plex ... vol xlv0Plex an ein Volume anhängen (Spiegel aufbauen)
detach plex xlv0.data.1Plex aus dem Volume herausnehmen
delete plex xlv0.data.1Plex endgültig entfernen
delete vol xlv0Volume-Definition löschen (Labels werden entfernt)
change name xlv0 datenVolume umbenennen
quitxlv_mgr beenden

Assemblieren, Status, Wartung

xlv_assemblePlatten nach XLV-Labels scannen und Volumes aktivieren
xlv_assemble -lNur anzeigen, welche Volumes gefunden werden
xlv_assemble -qLeise arbeiten (wie beim Systemstart)
xlv_shutdownAlle XLV-Volumes sauber deaktivieren
xlv_shutdown -mAuch gemountete Filesysteme vorher aushängen
xlvstatE/A-Statistik je Volume und Subvolume
xlvstat 5Statistik alle 5 Sekunden fortschreiben
xlv_labdDaemon, der XLV-Labels aktuell hält (läuft automatisch)
xlv_plexdDaemon für Plex-Revive (Resynchronisation der Spiegel)
/etc/init.d/xlvStartskript, das xlv_assemble beim Boot aufruft
chkconfig xlvPrüfen, ob XLV beim Systemstart aktiviert wird
Praxisfalle: Vor jedem Hardware-Eingriff an Platten, die Teil eines XLV-Volumes sind, erst die Filesysteme aushängen und dann xlv_shutdown ausführen. Wird eine Platte im laufenden Betrieb entfernt, bleiben Kernel und Labels inkonsistent und das Volume kann beim nächsten xlv_assemble unvollständig zusammengesetzt werden.
Hinweis zur Spiegelung: Plexing (Mirroring) ist in IRIX 6.5 eine lizenzpflichtige Zusatzoption (Disk Plexing Option, FLEXlm-Lizenz). Ohne Lizenz erlaubt XLV nur einen Plex je Subvolume – Striping und Concatenation funktionieren dagegen ohne Lizenz.
Tipp: XLV-Definitionen immer als xlv_make-Skript aufbewahren (xlv_mgr -c "show -v all" > /var/tmp/xlv_doku.txt zusätzlich). Nach einem Plattentausch lässt sich das Layout so nachvollziehbar rekonstruieren.
# --- Gestriptes XLV-Volume ueber zwei Platten anlegen ---
# 0) Beide Platten mit fx als optiondrive partitioniert (s7), Groesse gleich
prtvtoc /dev/rdsk/dks0d2vh
prtvtoc /dev/rdsk/dks0d3vh

# 1) Definition als Skript schreiben (stripe_unit in 512-Byte-Bloecken: 128 = 64 KB)
cat > /var/tmp/xlv.cfg <<'EOF'
vol daten
    data
        plex
            ve -stripe -stripe_unit 128 /dev/dsk/dks0d2s7 /dev/dsk/dks0d3s7
EOF

# 2) Volume erzeugen (schreibt die XLV-Labels auf beide Platten)
xlv_make -f /var/tmp/xlv.cfg

# 3) Kontrolle
xlv_mgr -c "show all"
xlv_mgr -c "show -v vol daten"
ls -l /dev/xlv /dev/rxlv

# 4) XFS darauf anlegen  (raw XLV-Device!)
mkfs -t xfs /dev/rxlv/daten

# 5) Mounten und dauerhaft eintragen
mkdir -p /daten
echo "/dev/xlv/daten  /daten  xfs  rw  0 0" >> /etc/fstab
mount /daten
xfs_info /daten
xlvstat 5

# --- Volume spaeter vergroessern ---
# neues Volume Element anhaengen, dann Filesystem online ausdehnen
xlv_mgr                       # ve an den Plex anhaengen
xfs_growfs /daten
df -k /daten

🗄EFS & Fremd-Filesysteme

mkfs -t efs /dev/rdsk/dks0d2s7Altes EFS-Filesystem anlegen (nur für Kompatibilität)
mkfs_efs /dev/rdsk/dks0d2s7Direkter Aufruf des EFS-Formatierers
fsck -t efs /dev/rdsk/dks0d2s7EFS prüfen und reparieren (ungemountet)
fsck -y -t efs /dev/rdsk/dks0d2s7Alle Rückfragen automatisch mit ja beantworten
mount -t efs /dev/dsk/dks0d2s7 /altEFS-Filesystem mounten
growfs /dev/rdsk/dks0d2s7EFS auf die volle Partitionsgröße ausdehnen
dumpfs /dev/rdsk/dks0d2s7Superblock-Informationen eines EFS ausgeben
mount -t iso9660 -o ro /dev/... /CDROMCD-ROM mounten (meist automatisch per mediad)
mount -t fat /dev/dsk/... /dosDOS/FAT-Medium einbinden
mount -t hfs /dev/dsk/... /macMacintosh-HFS-Medium einbinden
mkfp -t fat /dev/rdsk/...Fremd-Filesystem (foreign) auf einem Medium erzeugen
fpck -t fat /dev/rdsk/...Fremd-Filesystem prüfen
mediadDaemon für Wechselmedien; steuert /CDROM automatisch
chkconfig mediad onAutomatisches Einbinden von Wechselmedien aktivieren
Hinweis: EFS ist das Vorgänger-Filesystem von XFS und in IRIX 6.5 nur noch für alte Datenträger und Installations-CDs relevant. Neue Filesysteme werden immer als XFS angelegt. EFS-Partitionen sind auf 8 GB begrenzt und kennen kein Journal.

📈Swap & virtueller Speicher

swap -lAlle Swap-Bereiche mit Größe und freiem Platz auflisten
swap -sZusammenfassung: belegter, freier und virtueller Swap
swap -a /dev/dsk/dks0d2s1Swap-Partition sofort hinzufügen
swap -a /var/swap1Swap-Datei hinzufügen (vorher mit mkfile anlegen)
swap -d /dev/dsk/dks0d2s1Swap-Bereich wieder entfernen (muss auslagerbar sein)
swap -a -v /var/swap1Hinzufügen mit ausführlicher Meldung
mkfile 512m /var/swap1512-MB-Swap-Datei vorab vollständig allozieren
mkfile -n 512m /var/swap1Datei nur logisch anlegen (spärlich – für Swap ungeeignet)
/etc/fstabDauerhafte Swap-Einträge mit Typ swap
chkconfig vswapVirtuellen Swap (Overcommit ohne Backing Store) steuern
/etc/config/vswap.optionsGröße des virtuellen Swap-Bereichs konfigurieren
systune -iTunables wie maxdmasz, rsshogfrac anpassen
osview -i 5Swap- und Speichernutzung live beobachten
gmemusageSpeicherverbrauch je Prozess und gemeinsame Segmente
sar -w 5 10Swapping-Aktivität messen
fstab-Beispiel: Zeile für eine Swap-Partition: /dev/dsk/dks0d2s1 swap swap pri=3 0 0. Für eine Swap-Datei: /var/swap1 swap swap pri=3 0 0. Die Priorität pri= steuert, welcher Bereich zuerst genutzt wird.
Praxisfalle: IRIX kennt neben echtem Swap auch virtual swap – zugesagten Speicher ohne physische Hinterlegung. Wird er überbucht, sterben Prozesse mit „out of logical swap space“, obwohl swap -l noch Platz zeigt. In solchen Fällen echten Swap ergänzen, nicht nur vswap vergrößern.

⚙Prozesse, Jobs & cron

Prozesse ansehen und steuern

ps -efAlle Prozesse mit Benutzer, PID, PPID und Kommandozeile
ps -elfZusätzlich Priorität, Nice-Wert und Zustand
ps -ef | grep -i nfsdGezielt nach einem Dienst suchen
ps -o pid,pcpu,vsz,comm -eEigene Spaltenauswahl (POSIX-Format)
ps -u benutzerNur Prozesse eines Benutzers
topInteraktive Prozessübersicht im Terminal
top -i 2Aktualisierungsintervall auf 2 Sekunden setzen
gr_topGrafische Variante von top (X11)
kill -TERM 1234Prozess höflich beenden (Standardsignal)
kill -HUP 1234Konfiguration neu einlesen lassen (z. B. inetd)
kill -9 1234Hart abschießen – nur wenn nichts anderes hilft
nice -20 lange_rechnungProgramm mit niedrigerer Priorität starten
renice -n 10 -p 1234Priorität eines laufenden Prozesses senken
npri -h 30 -p 1234IRIX-spezifisch: Non-Degrading-Priorität setzen
nohup skript.sh &Job abgekoppelt von der Sitzung im Hintergrund starten
jobs / fg / bgShell-Jobsteuerung im interaktiven Betrieb
ptree 1234Prozessbaum ab einer PID darstellen
fuser -u /data1/dateiWer hält eine Datei offen (mit Benutzernamen)
par -s -p 1234Systemaufrufe eines laufenden Prozesses mitschneiden
dbx -p 1234Debugger an einen laufenden Prozess anhängen
limit / ulimit -aRessourcengrenzen der Shell anzeigen

Zeitgesteuerte Ausführung

crontab -lEigene cron-Tabelle anzeigen
crontab -eEigene cron-Tabelle bearbeiten
crontab -l -u rootcron-Tabelle eines anderen Benutzers ansehen
crontab -rEigene cron-Tabelle löschen (Vorsicht!)
/var/spool/cron/crontabs/Ablage der cron-Tabellen aller Benutzer
/var/cron/logProtokoll aller cron- und at-Läufe
/etc/cron.d/cron.allowListe der Benutzer, die cron nutzen dürfen
/etc/cron.d/cron.denyListe der gesperrten Benutzer
at 22:00Einmaligen Job für eine Uhrzeit einplanen
at -lEingeplante at-Jobs auflisten
at -r job_nummerEingeplanten at-Job entfernen
batchJob ausführen, sobald die Systemlast es erlaubt
/etc/init.d/cron stop; ... startcron-Daemon neu starten, wenn er hängt
Praxisfalle: IRIX kennt killall, aber mit System-V-Bedeutung: der Befehl beendet alle Prozesse und wird beim Herunterfahren benutzt. Er ist kein Linux-killall. Zum Neuladen eines Dienstes immer kill -HUP <pid> oder das Skript in /etc/init.d verwenden.

📊Performance-Analyse

Systemweite Übersicht

osviewZentrales IRIX-Werkzeug: CPU, Speicher, Swap, E/A, Netz
osview -i 5Alle 5 Sekunden aktualisieren
osview -n 10 -i 2Zehn Messungen im Abstand von 2 Sekunden
gr_osviewGrafische Live-Anzeige derselben Kennzahlen (X11)
gr_osview -aAlle verfügbaren Balken/Metriken einblenden
uptimeLaufzeit, angemeldete Benutzer und Load Average
wWer ist angemeldet und was läuft dort
sysmonGrafischer System-Monitor mit Logdatei-Ansicht
gmemusageSpeicher je Prozess, inklusive gemeinsam genutzter Regionen
gmemusage -dDetailansicht der Speichersegmente

sar und Messreihen

sar -u 5 12CPU-Auslastung: 12 Messungen alle 5 Sekunden
sar -d 5 12Plattenaktivität je Gerät
sar -b 5 12Puffer-Cache-Trefferquote
sar -w 5 12Swapping und Context Switches
sar -q 5 12Länge der Run-Queue
sar -AAlle Kennzahlen aus der aktuellen Sammlung
sar -f /var/adm/sa/sa18Historische Daten des 18. Tages auswerten
chkconfig sar onDauerhafte Datensammlung in /var/adm/sa aktivieren
sa1 / sa2Sammel- und Auswerteskripte, die cron aufruft
timex -s befehlLaufzeit eines Befehls plus sar-Kennzahlen
time befehlReine Laufzeitmessung (real/user/sys)

Detailanalyse einzelner Programme

par befehlSystemaufrufe und Scheduling-Ereignisse aufzeichnen
par -s -SS befehlZusammenfassung der Systemaufrufe statt Einzelzeilen
padc -o /var/tmp/par.outSystemweite Aktivität in eine Datei mitschneiden
ssrun -usertime programmSpeedShop: Zeitprofil der Nutzerfunktionen erstellen
ssrun -pcsamp programmSpeedShop: PC-Sampling (geringer Overhead)
ssrun -ideal programmSpeedShop: Instruktionszählung ohne Störungen
prof programm.usertime.m1234SpeedShop-Ergebnis als Textprofil auswerten
cvperf programm.pcsamp.m1234Grafische Auswertung im Performance Analyzer
dplace / dprofProzessplatzierung und Profiling auf Origin-Systemen

Performance Co-Pilot (PCP, optional)

chkconfig pmcd onPCP-Sammeldaemon beim Systemstart aktivieren
pminfo -f kernel.all.loadEinzelne PCP-Metrik abfragen
pmval kernel.all.cpu.userMetrik im Zeitverlauf ausgeben
pmchartGrafische PCP-Diagramme (X11)
pmlogger -c config /var/tmp/logMetriken für spätere Auswertung aufzeichnen
pmieRegelbasierte Auswertung mit Schwellwert-Alarmen
Vorgehen: Erst osview für den Gesamteindruck (CPU vs. Speicher vs. E/A), dann sar -d bzw. xlvstat für die Platten und top/gmemusage für die Verursacher. Erst danach mit par oder SpeedShop in ein einzelnes Programm hineinsehen.

🌐Netzwerk – TCP/IP

Schnittstellen und Adressen

ifconfig -aAlle Schnittstellen mit Adresse, Netzmaske und Status
ifconfig ec0Eine bestimmte Schnittstelle abfragen
ifconfig ec0 inet 10.0.0.5 netmask 0xffffff00 upAdresse zur Laufzeit setzen (nicht dauerhaft)
ifconfig ec0 downSchnittstelle deaktivieren
ifconfig ec0 mtu 1500MTU einer Schnittstelle ändern
hinv -c networkVorhandene Netzwerk-Adapter im Inventory
/etc/sys_idEnthält den Hostnamen – wird beim Boot ausgelesen
hostnameAktuellen Hostnamen anzeigen
/etc/config/netif.optionsPrimäre Schnittstelle: if1name, if1addr
/etc/config/ifconfig-1.optionsZusätzliche ifconfig-Parameter je Interface
/etc/config/static-route.optionsDauerhafte statische Routen definieren
/etc/init.d/network startNetzwerk-Konfiguration neu anwenden
/etc/init.d/network stopNetzwerk anhalten (Konsole erforderlich!)
chkconfig network onNetzwerkstart beim Booten aktivieren

Routing, Namen und Tests

netstat -rnRoutingtabelle numerisch anzeigen
netstat -inSchnittstellenstatistik mit Fehlern und Kollisionen
netstat -anAlle Sockets und Verbindungen numerisch
netstat -sProtokollstatistiken (IP, TCP, UDP, ICMP)
netstat -mmbuf-Nutzung des Netzwerkstacks
netstat -CFortlaufende Anzeige der Schnittstellenlast
route add default 10.0.0.1Standard-Gateway zur Laufzeit setzen
route add net 192.168.5.0 10.0.0.9 1Statische Netzroute mit Hop-Count hinzufügen
route delete default 10.0.0.1Route wieder entfernen
arp -aARP-Cache anzeigen
arp -d 10.0.0.7Einzelnen ARP-Eintrag löschen
ping -c 5 10.0.0.1Erreichbarkeit mit fünf Paketen prüfen
ping -s 10.0.0.1Fortlaufend mit Statistik pingen
traceroute 10.0.0.1Weg zum Ziel Hop für Hop verfolgen
nslookup rechnerDNS-Auflösung testen
ttcp -r -s / ttcp -t -s hostDurchsatz zwischen zwei Systemen messen
netsnoop -aIRIX-Paketmitschnitt (nicht Solaris snoop)
netsnoop -i ec0 host 10.0.0.7Mitschnitt auf ein Interface und einen Host begrenzen
netstat -p tcpStatistik eines einzelnen Protokolls

Namensauflösung & Konfigurationsdateien

/etc/hostsLokale Namenszuordnung
/etc/resolv.confDNS-Server und Suchdomains
/etc/nsswitch.confReihenfolge der Namensdienste (files, dns, nis)
/etc/networksSymbolische Netznamen
/etc/servicesZuordnung Portnummer zu Dienstname
/etc/protocolsProtokollnummern
/etc/gatewaysRouten für routed/gated
chkconfig named onLokalen DNS-Server aktivieren
chkconfig routed offDynamisches Routing abschalten (statische Routen nutzen)
Praxisfalle: Die dauerhafte Netzkonfiguration steht nicht in ifconfig-Skripten, sondern in /etc/config/netif.options und /etc/sys_id. Wer nur ifconfig aufruft, verliert die Änderung beim nächsten Reboot. Nach dem Bearbeiten der Dateien /etc/init.d/network restart bzw. einen Reboot einplanen.
PROM-Ebene: Für Netzboot und Diagnose ist die NVRAM-Variable netaddr zuständig: nvram netaddr zeigt sie an, nvram netaddr 10.0.0.5 setzt sie. Sie ist unabhängig von der IRIX-Konfiguration und wird nur vom PROM benutzt.

📡NFS & Netzdienste

NFS-Server

chkconfig nfs onNFS-Server-Dienste beim Systemstart aktivieren
/etc/exportsListe der freigegebenen Verzeichnisse mit Optionen
exportfs -avAlle Einträge aus /etc/exports exportieren
exportfsAktuell exportierte Verzeichnisse anzeigen
exportfs -u /datenEinzelne Freigabe zurücknehmen
exportfs -uaAlle Freigaben zurücknehmen
showmount -aWelche Clients haben was gemountet
showmount -eExportliste des lokalen Servers
showmount -e serverExportliste eines entfernten Servers abfragen
nfsstat -sServerseitige NFS-Statistik
nfsstat -cClientseitige NFS-Statistik (Retransmits beachten)
nfsstat -zZähler zurücksetzen vor einer Messung
/etc/init.d/nfs startNFS-Dienste manuell starten
/etc/config/nfsd.optionsAnzahl der NFS-Server-Threads einstellen

NFS-Client und Automounter

mount -t nfs server:/daten /mntNFS-Freigabe manuell einbinden
mount -o ro,soft,intr server:/daten /mntLesend, unterbrechbar – empfohlen für wackelige Netze
mount -o vers=3,proto=tcp server:/daten /mntNFS-Version und Transportprotokoll erzwingen
umount -f /mntHängenden NFS-Mount erzwungen lösen
chkconfig autofs onAutomounter autofs aktivieren (empfohlen)
chkconfig automount onAlten Automounter aktivieren (Alternative)
/etc/auto_masterHaupttabelle des Automounters
/etc/auto.directDirekte Automounter-Zuordnungen
/etc/config/autofs.optionsOptionen für den autofs-Start
/etc/init.d/autofs restartAutomounter neu starten, damit Maps greifen

inetd, RPC und Zeitdienste

/etc/inetd.confKonfiguration der über inetd gestarteten Dienste
kill -HUP `cat /etc/inetd.pid`inetd zum Neulesen der Konfiguration bringen
rpcinfo -pAlle beim Portmapper registrierten RPC-Dienste
rpcinfo -p serverRPC-Dienste eines entfernten Systems prüfen
rpcinfo -u server nfs 3Konkreten NFS-Dienst per UDP anpingen
chkconfig timed onZeitsynchronisation per timed aktivieren
timeslave -h zeitserverUhr an einem Server ausrichten (langsam nachziehen)
chkconfig ntp onNTP-Dienst aktivieren (aus /usr/freeware oder eoe)
/etc/config/ntp.confNTP-Serverliste und Drift-Datei
date 0818143000Systemzeit manuell stellen (MMTTHHMM[JJ])
/etc/TIMEZONEZeitzone des Systems (TZ-Variable)
chkconfig ftpd onFTP-Dienst freischalten
chkconfig sshd onSSH-Dienst aktivieren (Freeware/OpenSSH-Paket)
exports-Beispiel: /daten -access=web1:web2,rw=web1,root=web1 gibt /daten für zwei Rechner frei, erlaubt nur web1 Schreibzugriff und behandelt dort root als root. Nach jeder Änderung exportfs -av ausführen – ein Neustart des Servers ist nicht nötig.
Hinweis: Bei hängenden NFS-Zugriffen zuerst nfsstat -c prüfen: viele timeout/retrans deuten auf Netzprobleme, nicht auf den Server. Harte Mounts (hard, Standard) blockieren Prozesse unbegrenzt – für unkritische Daten soft,intr verwenden.

🔒Benutzer & Sicherheit

Konten verwalten

/usr/sysadm/privbin/addUserAccountKonto anlegen (Backend des System Managers)
/usr/sysadm/privbin/modUserAccountBestehendes Konto ändern
/usr/sysadm/privbin/delUserAccountKonto entfernen
sysmgrGrafischer System Manager mit Benutzerverwaltung (X11)
vi /etc/passwdKlassischer Weg: Konto von Hand eintragen
vipwPasswortdatei mit Sperre und Syntaxprüfung bearbeiten
passwd benutzerPasswort setzen oder ändern
passwd -l benutzerKonto sperren
passwd -s benutzerStatus der Passwortalterung anzeigen
pwckKonsistenz von /etc/passwd prüfen
grpckKonsistenz von /etc/group prüfen
pwconvAuf Shadow-Passwörter (/etc/shadow) umstellen
id benutzerUID, GID und Gruppenzugehörigkeit anzeigen
groups benutzerGruppen eines Benutzers auflisten
who / who -rAngemeldete Benutzer bzw. aktueller Runlevel
last benutzerAnmeldehistorie aus /var/adm/wtmp
su - benutzerBenutzerwechsel mit vollem Login-Umfeld
/usr/people/nameÜbliches Heimatverzeichnis unter IRIX
/etc/default/loginLogin-Vorgaben: Umask, Pfade, Root-Login auf Konsole
/etc/passwd /etc/group /etc/shadowDie drei zentralen Kontendateien

Rechte, ACLs und Capabilities

chmod 750 /daten/projektKlassische UNIX-Rechte setzen
chown benutzer:gruppe dateiEigentümer und Gruppe ändern
umask 022Vorgabemaske für neu erzeugte Dateien
ls -D dateiACL und MAC-Label einer Datei anzeigen
ls -@ dateiErweiterte Attribute anzeigen
chacl u::rwx,g::r-x,o::--- dateiZugriffs-ACL setzen (XFS unterstützt POSIX-ACLs)
chacl -b acl dacl verzeichnisAccess-ACL und Default-ACL getrennt setzen
chacl -d dacl verzeichnisNur die Default-ACL eines Verzeichnisses ändern
chacl -D verzeichnisDefault-ACL entfernen
/etc/capabilityDatei mit Capability-Zuordnungen je Benutzer
chkconfig capabilities onCapability-Mechanismus einschalten
runpriv befehlDefinierten privilegierten Befehl ohne vollen root ausführen
chkconfig noiconloginGrafische Benutzerauswahl im Login-Bildschirm steuern
/usr/freeware/bin/sudosudo ist kein IRIX-Bestandteil – nur aus Freeware-Paketen
/var/adm/sulogProtokoll aller su-Versuche
/etc/hosts.equiv, ~/.rhostsVertrauensbeziehungen der r-Kommandos – möglichst leer halten
Praxisfalle: IRIX 6.5 hat kein useradd, usermod oder userdel. Wer diese Befehle erwartet, landet ins Leere. Konten werden über den System Manager, die privbin-Programme oder direkt in /etc/passwd gepflegt – danach immer pwck laufen lassen und das Heimatverzeichnis unter /usr/people manuell mit korrektem Eigentümer anlegen.
Trusted IRIX: Es gibt eine separate Variante Trusted IRIX/CMW mit Mandatory Access Control, Labels und Auditing. Befehle wie chlabel, dbedit und die MAC-Ausgabe von ls -D sind nur dort vollständig nutzbar. Auf Standard-IRIX bleiben ACLs und Capabilities die praktischen Werkzeuge.

🔧Fehleranalyse & Crash-Dumps

Logdateien und Kernelmeldungen

/var/adm/SYSLOGZentrales Systemprotokoll – erste Anlaufstelle
tail -f /var/adm/SYSLOGProtokoll live mitlesen
/var/adm/oSYSLOGVorherige, rotierte Fassung des Protokolls
grep -i panic /var/adm/SYSLOGNach Panics und harten Fehlern suchen
dmesgKernel-Ringpuffer: Boot- und Treibermeldungen
dmesg | grep -i scsiSCSI-Fehler und Bus-Resets herausfiltern
/etc/syslog.confZuordnung von Facility/Level zu Zieldateien
kill -HUP `cat /etc/syslog.pid`syslogd zum Neulesen bringen
logger -p daemon.notice "Text"Eigene Meldung ins SYSLOG schreiben (Wartungsvermerk)
/var/adm/sulogsu-Versuche
/var/adm/wtmp, /var/adm/utmpAn- und Abmeldungen (mit last/who lesen)
/var/adm/avail/availmonAvailability-Monitor: Verfügbarkeit und Neustarts
availmonBericht über Uptime, Abstürze und Ursachen

Crash-Dumps auswerten

/var/adm/crash/Ablage der Crash-Dumps: unix.N und vmcore.N.comp
ls -l /var/adm/crashVorhandene Dumps mit Zeitstempel prüfen
savecore -v /var/adm/crashDump aus dem Swap-Bereich sichern (läuft beim Boot)
chkconfig savecore onAutomatisches Sichern von Dumps aktivieren
icrashAnalyse des laufenden Kernels (Livesystem)
icrash -v unix.0 vmcore.0.compGesicherten Dump öffnen
icrash -o /var/tmp/analyse.txt ...Ausgabe in eine Datei mitschreiben
panicIn icrash: Panic-Meldung und Ursache anzeigen
stackIn icrash: Aufrufstapel zum Zeitpunkt des Absturzes
proc -aIn icrash: Prozesstabelle des Dumps
summaryIn icrash: Kurzübersicht über den Dump
quiticrash beenden
symmonSymbolischer Kernel-Debugger von der PROM-Ebene
ideDiagnoseprogramm im Volume Header (Hardwaretests)
hinv -mvBoard- und Modulkennungen für Serviceanfragen

Systematische Eingrenzung

df -kErste Prüfung: volles / oder /var
swap -lZweite Prüfung: Swap erschöpft?
osview -i 2Dritte Prüfung: CPU, Speicher oder E/A als Engstelle
netstat -inNetzfehler und Kollisionen prüfen
xlv_mgr -c "show all"Volume-Zustand prüfen (degraded plexes)
versions changedWurde am Softwarestand etwas verändert?
who -r; ls -l /unixRunlevel und Kernelalter/-datum kontrollieren
Reihenfolge nach einem Absturz: 1) /var/adm/SYSLOG und /var/adm/oSYSLOG um den Zeitpunkt lesen. 2) ls -l /var/adm/crash: liegt ein Dump vor? 3) icrash mit panic und stack aufrufen. 4) Bei Hardware-Verdacht hinv -mv, dmesg und die ide-Diagnose.
Praxisfalle: Dumps brauchen Platz – /var/adm/crash muss mindestens so groß sein wie der Hauptspeicher, sonst wird der Dump verworfen und die Absturzursache ist verloren. Vor Wartungsfenstern df -k /var prüfen und alte Dumps archivieren.
# --- Nach einer Kernel-Panic ---
# 1) Zeitpunkt und Meldung suchen
grep -i -E 'panic|PANIC' /var/adm/SYSLOG /var/adm/oSYSLOG
tail -200 /var/adm/oSYSLOG

# 2) Wurde ein Dump gesichert?
ls -l /var/adm/crash
# erwartet: unix.0  vmcore.0.comp  (Nummer steigt je Absturz)

# 3) Dump analysieren
cd /var/adm/crash
icrash -v unix.0 vmcore.0.comp -o /var/tmp/crash0.txt
  icrash> summary
  icrash> panic
  icrash> stack
  icrash> proc -a
  icrash> quit

# 4) Hardware-Verdacht gegenpruefen
hinv -mv
dmesg | grep -i -E 'error|reset|scsi'
availmon

# 5) Software-Stand gegenpruefen
versions -b eoe
versions -j          # kuerzlich eingespielte Patches
ls -l /unix          # passt das Kerneldatum zur letzten Aenderung?

💾Backup & Recovery

xfsdump / xfsrestore

xfsdump -l 0 -f /dev/rmt/tps0d3nr /datenVollsicherung (Level 0) auf Band
xfsdump -l 1 -f /dev/rmt/tps0d3nr /datenInkrementell: nur Änderungen seit Level 0
xfsdump -f /var/backup/daten.dump /datenSicherung in eine Datei statt auf Band
xfsdump -L "Vor Patch" -M Band1 -f ... /datenSession-Label und Medienlabel vergeben
xfsdump -J -f ... /datenOhne Eintrag ins Inventory sichern (Sonderfälle)
xfsdump -e -f ... /datenAuf Bandende warten und Medienwechsel erlauben
xfsdump -IInventory anzeigen: alle bisherigen Sicherungen und Level
/var/xfsdump/inventoryAblage des Dump-Inventorys (kein /etc/dumpdates)
xfsrestore -f /dev/rmt/tps0d3nr /datenKomplette Sicherung zurückschreiben
xfsrestore -i -f /dev/rmt/tps0d3nr /datenInteraktiv einzelne Dateien auswählen
xfsrestore -t -f /dev/rmt/tps0d3nrNur Inhaltsverzeichnis der Sicherung ausgeben
xfsrestore -r -f ... /datenKumulativ: Level 0 plus alle Inkremente einspielen
xfsrestore -s pfad/datei -f ... /zielEinzelne Datei oder Teilbaum wiederherstellen
xfsrestore -S sitzungs_id -f ... /zielBestimmte Session vom Medium wählen

Weitere Sicherungswerkzeuge

Backup /datenEinfaches IRIX-Skript um bru/tar
Restore /datenGegenstück zu Backup
bru -cvf /dev/rmt/tps0d3nr /datenArchiv erzeugen (Backup and Restore Utility)
bru -tvf /dev/rmt/tps0d3nrArchivinhalt auflisten
bru -xvf /dev/rmt/tps0d3nrArchiv zurücklesen
bru -iv -f archivArchiv auf Lesbarkeit prüfen
tar cvf /dev/rmt/tps0d3nr /datenKlassisches tar-Archiv auf Band
tar tvf /dev/rmt/tps0d3nrtar-Archiv auflisten
tar xvf /dev/rmt/tps0d3nr pfadGezielt aus tar zurückholen
find /daten -print | cpio -ocv > archivcpio-Archiv erzeugen
cpio -icdv < archivcpio-Archiv mit Verzeichnissen zurücklesen
dd if=/dev/rdsk/dks0d1s0 of=/backup/root.img bs=1024kRohkopie einer Partition
dd if=/dev/rdsk/dks0d1vh of=/backup/vh.img bs=512 count=4096Volume Header sichern (Label und Bootblocks)
/usr/freeware/bin/cdrecord -scanbusCD-Brenner erkennen (Freeware-Paket)
/usr/freeware/bin/mkisofs -o cd.iso /datenISO-Abbild erzeugen
Bandhygiene: Immer das no-rewind-Device (/dev/rmt/tps0d3nr) verwenden, wenn mehrere Sicherungen hintereinander auf ein Band geschrieben werden. Vorher mt rewind, danach mt offline. Position mit mt fsf n setzen, bevor eine spätere Session gelesen wird.
Praxisfalle: Ein Dateisystem-Backup rettet keine Bootfähigkeit. Zum vollständigen Wiederaufsetzen gehören zusätzlich das Plattenlabel (prtvtoc-Ausgabe), die XLV-Definition (xlv_mgr -c "show -v all") und der Volume Header. Diese drei Angaben ausdrucken oder auf einem anderen System ablegen.
Wiederherstellung des Systems: Von der IRIX-Installations-CD in die Miniroot booten und die Option Recover System wählen. Sie erwartet eine Backup- bzw. xfsdump-Sicherung des Rootfilesystems. Ohne aktuelles Root-Backup bleibt nur eine Neuinstallation mit anschließendem Restore der Daten.
# --- Sicherung vor einer Aenderung und selektives Zurueckholen ---
# 1) Bandlaufwerk vorbereiten
hinv -c tape
mt -f /dev/rmt/tps0d3 rewind
mt -f /dev/rmt/tps0d3nr status

# 2) Vollsicherung mit sprechendem Label
xfsdump -l 0 -L "vor_Patch_6530_$(date +%Y%m%d)" -M Band1 \
        -f /dev/rmt/tps0d3nr /daten

# 3) Zusaetzlich die Systemplatte sichern
xfsdump -l 0 -L "root_vor_Patch" -f /var/backup/root.dump /

# 4) Metadaten dokumentieren (rettet spaeter Zeit)
prtvtoc /dev/rdsk/dks0d1vh      > /var/backup/label_dks0d1.txt
xlv_mgr -c "show -v all"        > /var/backup/xlv_layout.txt
versions -b                     > /var/backup/versions.txt

# 5) Sicherung pruefen
xfsdump -I | more                       # Inventory: Session sichtbar?
mt -f /dev/rmt/tps0d3 rewind
xfsrestore -t -f /dev/rmt/tps0d3nr | head -40

# 6) Spaeter: nur ein Verzeichnis zurueckholen
mkdir -p /var/tmp/restore
mt -f /dev/rmt/tps0d3 rewind
xfsrestore -s projekt/konfig -f /dev/rmt/tps0d3nr /var/tmp/restore

# 7) Oder interaktiv auswaehlen
xfsrestore -i -f /dev/rmt/tps0d3nr /var/tmp/restore
  xfsrestore> ls
  xfsrestore> add projekt/konfig
  xfsrestore> extract
  xfsrestore> quit

mt -f /dev/rmt/tps0d3 offline

🖥Desktop, X11 & Grafik

startgfxGrafische Oberfläche (xdm und Desktop) starten
stopgfxGrafische Oberfläche sauber beenden
chkconfig xdm onGrafisches Login beim Systemstart aktivieren
chkconfig windowsystem onFenstersystem überhaupt beim Boot starten
chkconfig visuallogin onGrafischen Anmeldebildschirm einschalten
/etc/init.d/xdm startxdm manuell starten
/etc/init.d/xdm stopxdm beenden (Konsole bleibt nutzbar)
4DwmDer IRIX-Fenstermanager (Motif-basiert)
toolchestDas IRIX-Hauptmenü in der linken oberen Ecke
/usr/lib/X11/system.chestrcSystemweite Toolchest-Menüdefinition
~/.auxchestrcBenutzereigene Erweiterung des Toolchest
gfxinfoGrafikkarte, Speicher und Monitorauflösung anzeigen
gfxinfo -vAusführliche Grafik-Informationen
setmon -x 1280x1024_60Videomodus/Monitortiming umschalten
setmon -gAktuell aktives Videoformat anzeigen
xdpyinfoEigenschaften des X-Displays abfragen
xset qX-Einstellungen wie Bildschirmschoner und Tastatur anzeigen
xset s off; xset -dpmsBildschirmschoner und Energiesparen abschalten
xhost +rechnerAnderem Rechner Zugriff auf das Display erlauben
DISPLAY=rechner:0.0; export DISPLAYAusgabe auf ein entferntes Display umleiten
winterm -t xtermIRIX-Terminalfenster öffnen
/var/adm/SYSLOG, /var/X11/xdm/xdm-errorsFehlersuche bei nicht startender Oberfläche
Praxisfalle: IRIX hat kein startx. Die Oberfläche wird mit startgfx bzw. stopgfx gesteuert, dauerhaft über chkconfig xdm und chkconfig windowsystem. Bei einem headless betriebenen System beide Flags auf off setzen – sonst wartet der Boot auf die Grafik.
Tipp: gfxinfo gibt Board-Typ (z. B. Impact, Odyssey, CRM) und die aktive Auflösung aus. Passt das Timing nicht zum Monitor, hilft setmon -x mit einem der Formate aus /usr/gfx/ucode/*/vof/.

🖨Drucken (System V lp)

lpstat -tKompletter Status: Drucker, Klassen, Aufträge, Scheduler
lpstat -aWelche Drucker nehmen Aufträge an
lpstat -p druckerStatus eines einzelnen Druckers
lp -d drucker dateiDatei an einen Drucker senden
lp -d drucker -n 2 dateiZwei Kopien drucken
cancel drucker-123Druckauftrag abbrechen
enable drucker / disable druckerDrucker für die Ausgabe frei- bzw. sperren
accept drucker / reject druckerAnnahme neuer Aufträge steuern
lpsched / lpshutDruck-Scheduler starten bzw. anhalten
lpadmin -p ...Drucker anlegen und Schnittstelle zuordnen
/var/spool/lp/Spool-Verzeichnis und Drucker-Konfiguration
printersGrafisches Druckermanager-Werkzeug des Desktops
chkconfig lp onDrucksystem beim Systemstart aktivieren

📜Wichtige Dateien & Verzeichnisse

Konfiguration

/etc/sys_idHostname des Systems
/etc/config/Symlink nach /var/config: chkconfig-Flags und Optionen
/var/config/Tatsächlicher Ort der chkconfig-Flag-Dateien
/etc/config/netif.optionsNetzwerkschnittstellen und deren Adressen
/etc/config/static-route.optionsStatische Routen
/etc/fstabFilesysteme und Swap-Bereiche für den Boot
/etc/inittabRunlevel-Definition und Konsolen-Getty
/etc/init.d/Start-/Stopskripte der Dienste
/etc/rc0.d/, /etc/rc2.d/, /etc/rc3.d/Runlevel-Verknüpfungen auf /etc/init.d
/etc/inetd.confNetzdienste, die inetd startet
/etc/exportsNFS-Freigaben
/etc/syslog.confProtokollziele des syslogd
/etc/TIMEZONEZeitzone
/etc/default/loginLogin-Vorgaben (Umask, root-Konsolenzwang)
/etc/motd, /etc/issueBegrüßungstexte nach bzw. vor dem Login

Kernel und System

/unixDer laufende Kernel
/unix.installNeu gebauter Kernel, wird beim nächsten Boot aktiv
/unix.saveSelbst angelegte Sicherheitskopie des Kernels
/var/sysgen/system/Kernel-Konfigurationsdateien (*.sm)
/var/sysgen/master.d/Kernelmodul-Beschreibungen
/var/sysgen/boot/Objektdateien für den Kernelbau
/var/sysgen/mtune/Vorgaben und Grenzen der Tunables
/var/sysgen/stuneDauerhaft geänderte Tunable-Werte
/hw/Hardware-Graph: alle erkannten Geräte als Dateibaum
/stand/Standalone-Programme (sash, fx, ide)
/debug/Debug-Schnittstellen des Kernels

Daten, Logs und Software

/var/adm/SYSLOGZentrales Systemprotokoll
/var/adm/crash/Crash-Dumps
/var/adm/sa/sar-Messdaten
/var/inst/Installationsdatenbank von inst/versions
/var/xfsdump/inventory/Inventory aller xfsdump-Sicherungen
/var/spool/cron/crontabs/cron-Tabellen
/usr/people/Heimatverzeichnisse der Benutzer
/usr/freeware/Nachinstallierte Open-Source-Software (bin, lib, man)
/usr/sysadm/System-Manager-Werkzeuge und privbin-Programme
/usr/gfx/Grafik-Microcode und Videoformate
/CDROM/Automatisch eingebundene CD (per mediad)
Tipp: /usr/freeware/bin und /usr/freeware/man gehören nicht standardmäßig in PATH und MANPATH. Auf Systemen mit Freeware-Paketen beide Pfade in /etc/profile ergänzen, sonst wirken Werkzeuge wie gcc, tcpdump oder sudo als nicht vorhanden.

🛠Praxis-Workflows & Tipps

Standard-Kontrollgang

hinv -v; versions -b eoeWas ist das für ein System und welche Release läuft
uptime; who -rLaufzeit, Last und Runlevel
df -k; swap -lPlatz und Swap – die zwei häufigsten Ursachen
tail -100 /var/adm/SYSLOGAktuelle Meldungen sichten
xlv_mgr -c "show all"; xfs_info /Volume- und Filesystemzustand
netstat -in; ifconfig -aNetzanbindung und Fehlerzähler
versions changed | head -40Wurde am System etwas verändert
chkconfigWelche Dienste sind aktiviert
xfsdump -I | tail -20Wann wurde zuletzt gesichert

Merksätze für IRIX

inst, swmgr, versionsSoftwareverwaltung – kein pkgadd, kein rpm
XLVVolume-Management – kein LVM, kein VxVM, kein ZFS
chkconfig + /etc/init.dDienststeuerung – kein systemctl, kein svcadm
systune + autoconfig + rebootKernel-Parameter – kein sysctl, kein kmtune
fx + prtvtocPlattenlabel – kein fdisk, kein format
xfsdump/xfsrestoreBackup – kein ufsdump, kein mksysb
netsnoopPaketmitschnitt – snoop ist Solaris
osview / gr_osviewSystemmonitor – kein vmstat-Zentrismus
Die acht wichtigsten Stolperfallen: fx arbeitet destruktiv direkt am Plattenlabel · chkconfig setzt Flags in /var/config und ersetzt keine Runlevel-Links · vor Hardware-Eingriffen immer xlv_shutdown · xfs_repair nur ungemountet und -L nur als letzte Maßnahme · nach Patches den Delta-Zustand mit versions changed prüfen · der Hostname kommt aus /etc/sys_id · nach Kerneländerungen autoconfig und Reboot · inst ist interaktiv und führt ohne go nichts aus.
Vor jeder Wartung dokumentieren: hinv -v, versions -b, prtvtoc aller Platten, xlv_mgr -c "show -v all", df -k, chkconfig, ifconfig -a und netstat -rn in eine Datei umleiten und außerhalb des Systems ablegen. Diese acht Ausgaben ersparen im Fehlerfall Stunden.
# --- Systemzustand vor einer Aenderung komplett festhalten ---
D=/var/tmp/doku_$(hostname)_$(date +%Y%m%d)
mkdir -p $D

hinv -v                       > $D/hinv.txt
hinv -mv                      > $D/hinv_boards.txt
uname -aR                     > $D/uname.txt
versions -b                   > $D/versions.txt
versions -j                   > $D/patches.txt
chkconfig                     > $D/chkconfig.txt
systune                       > $D/systune.txt
df -k                         > $D/df.txt
swap -l                       > $D/swap.txt
cat /etc/fstab                > $D/fstab.txt
xlv_mgr -c "show -v all"      > $D/xlv.txt
ifconfig -a                   > $D/ifconfig.txt
netstat -rn                   > $D/routes.txt
cat /etc/sys_id               > $D/sys_id.txt

# Plattenlabels aller erkannten Platten sichern
for vh in /dev/rdsk/dks*vh; do
    echo "=== $vh ===" >> $D/labels.txt
    prtvtoc $vh       >> $D/labels.txt
done

# Paket schnueren und wegkopieren
cd /var/tmp && tar cvf - $(basename $D) | gzip > $D.tar.gz
rcp $D.tar.gz backupserver:/doku/
Abschluss-Checkliste nach Arbeiten am System: Kernel gebaut (autoconfig) und rebootet? – versions changed geprüft und *.N-Dateien zusammengeführt? – alle Filesysteme aus /etc/fstab gemountet (df -k)? – XLV-Volumes vollständig (xlv_mgr -c "show all")? – Dienste aktiv (chkconfig, rpcinfo -p)? – Netz erreichbar (ping, netstat -rn)? – /var/adm/SYSLOG ohne neue Fehler? – Sicherung erfolgreich (xfsdump -I)?