Olfs Computer Zoo
ULTRIX Tips & Tricks
Stolpersteine
Da die Dokumentation zu ULTRIX gelinde gesagt ein wenig spärlich ist, kommt es viel zu häufig vor das man aus irgend einem Grund nicht weiterkommt.
Ich mag meine Platte nicht fressen!
Man sollte nie versuchen eine Platte mit mehr als einem Gigabyte mit einem ULTRIX vor V4.2A zu verheiraten. Ich hatte das Problem mit einem V4.1, Baujahr 1993 ...

Die prä V4.2A Versionen können nicht mit Blocknummern über 221-1 umgehen. Ekligerweise geht es nicht einfach nur nicht, sondern es kommt zum wrap around und die Daten auf den Blöcken mit niedrigen Nummern werden überschrieben. Bumm.

Die einzige Lösung hierfür ist ausschließlich das erste Gigabyte der Platte zu benutzen.
Ups, meine Platte ist zu groß!
Alle ULTRIX Versionen können nur mit Partitionen umgehen die kleiner als 2GB sind. Natürlich hindert einen niemand daran eine größere Partition anzulegen. Das anschließende newfs schlägt aber mit einer obskuren Meldung fehl.
Die neue Platte mag nicht booten!
Da gibt es zwei Möglichkeiten. Entweder hat man eine Platte erwischt bei der es einfach nicht geht (ist mir mal passiert), oder was wahrscheinlicher ist, es ist kein Bootblock drauf. Im ersten Fall meckert der Monitor das er keinen Bootblock findet, im zweiten das der Bootblock ein falsches Format hat.

Wenns einfach nicht geht, hilft nur eine andere Platte zu nehmen. Anderenfalls hat man typischweise das Root-Filesystem nicht mit newfs sondern mit mkfs angelegt. Nur beim Anlegen eines Filesystems auf einer a-Partition mit newfs wird ein Bootblock auf die Platte geschrieben! Da newfs eine Geometriebeschreibung der Platte in /etc/disktab erwartet, muß die unter Umständen erst erstellt werden.
Prozeduren
Manchmal kennt man alle Einzelschritte, aber das Zusammenfügen bleibt langwierig. Wenn man es aufschreibt, kann man nachsehen! Natürlich alles ohne Gewähr und Geweih!
Sometimes you know each step, but putting it all together is time consuming. If you write it down, you can have a peek. Of course no responsibility is taken for the correctness of this information, or the informness of any correction.
Die Systemplatte durch eine Größere ersetzen
Da die typische DECstation Platte zwischen 200 und 500MB hat, entsteht oft der Wunsch mehr Speicherplatz zur Verfügung zu haben. Der einfachste Weg ist eine zusätzliche Datenplatte anzuschließen. Handelt es sich aber bei der Systemplatte um eine externe 5.25" Platte (ja, so was wurde verkauft) wäre es doch nett den Ziegelstein durch ein schnucklige interene 3.5" Platte zu ersetzen.

Um das zu bewerkstelligen schließt man die neue Platte zunächst zusätzlich zur Systemplatte an. Wenn die Systemplatte z.B. ID1 hat, kann man die neue Platte auf ID2 jumpern. Jetzt das Gerät einschalten und darauf achten ob die neue Platte beim Booten erkannt wird. Jetzt mit rzdisk die Geometrie abfragen:
$ rzdisk -g /dev/rrz2a
Benötigt werden die Anzahl der Zylinder, die Spuren pro Zylinder und die Anzahl der Sektoren pro Spur. Daraus baut man sich einen Eintrag in /etc/disktab, den man passend nennt z.B. "med4g" für eine Seagate Medalist 4GB.

Als nächstes werden mit chpt die Partitionen angelegt. Mit -p wird die Partition ausgewählt und als Argumente der Startblock, die Anzahl der Blöcke und der Geräteeintrag der a- oder c-Partition übergeben.
$ chpt -pd 2354365 4364574 /dev/rrz2c
Definiert eine d-Partition ab 2354365 mit 4364574 Blöcken auf der Platte mit ID2. Für alle Partitionen (außer b und c, also swap und overlap) wird jetzt mit newfs ein Dateisystem angelegt. Dabei greift newfs auf die Partitionsinformationen in /etc/disktab zurück.
$ newfs /dev/rz2d med4g
Richtet auf der g-Partition ein Dateisystem gemäß den Angaben in /etc/disktab ein. ULTRIX kennt im Gegensatz zu vielen anderen Systemen kein explizites Kommando zum Schreiben des Bootblocks. Statt dessen wird der Bootblock automagisch eingerichtet wenn man eine a-Partition mit newfs anlegt.

Jetzt werden die Partitionen nacheinander gemountet und die Daten von der alten Platte auf die neue kopiert.
$ mount /dev/rz2d /mnt $ cd /mnt $ dump 0f - /usr | restore rf -
Mountet die d-Partition und kopiert die Daten aus der /usr Partition der alten Platte. Wichtig ist das man in das Verzeichniss wechselt, weil restore die Daten im aktuellen Verzeichniss auspackt.

Zum Schluß wird die DECstation heruntergefahren und die alte Platte abgebaut. Jetzt noch die neue Platte auf die ID der alten Jumpern und dann sollte das System von der neuen Platte booten.