Auf dem Sperrmüll habe ich einen Siemens Nixdorf RM400-252 Server gefunden. Er war ziemlich verstaubt, deshalb habe ich ihn erstmal gründlich zerlegt und ausgesaugt.
Er hat
- 133 Mhz MIPS 4600 (IDT Orion) CPU
- 64 MB Ram, angeblich davon nur 47M nutzbar
- 2 SCSI Festplatten
- ganz normales LAN onboard(!)
- 3 serielle Schnittstellen
- keine Grafikkarte
- als Betriebssystem SINIX 5.43
Inbetriebnahme
Nach erstem Suchen bin ich dann auf Wikipedia und bei Fujitsu-Siemens fündig geworden – ähnliche Maschinen haben eine serielle Konsole mit 19200 baud. Schnell ein Nullmodemkabel gebaut, an den PC angeschlossen, mit cutecom ttyS0 als 19200,8N1 geöffnet, eingeschaltet und schon liefen die ersten Bootmeldungen über den Schirm:
Running Power-On Diagnostics...
Hit s key to Skip PON Tests... Not Skipped
Cache Test #1...PASSED
...
Time-of-Day Clock Test...PASSED
Ending Power-On Diagnostics...
Machine is coming up...
soweit so gut, die ersten Selbsttests scheinen OK. Nun bootet der SINIX-Kernel:
Autoboot: Waiting to load dkncr(0,0,10)sash (CTRL-C to abort, RETURN to expedite)
loading
Starting channel 0 unit 0
305280+133696+632592 entry: 0xa0e00000
SNI Standalone Shell Version 4.2004 SNI_R4000 OPT Mon Oct 20 11:37:12 MDT 1997 livsa542
Loading dkncr(0,0,0)unix
4104556+1476624+1825976 entry: 0x80020100
SINIX-N: HAL (a20r) 1.9 97/03/10 14:14:41
Board Type: 5
SNI RM400
UNIX(R) SINIX-N Release 5.43 Version C4001
Copyright (c) Siemens Nixdorf Informationssysteme AG 1990-1998
Basis:\0x09DC/OSx (R), Copyright (c) Siemens Pyramid Information Systems, Inc. 1984;
\0x09UNIX (R), Copyright (c) The Open Group 1983
All rights reserved
...
CPU 0:\0x09ORION (R4600) Processor Chip Revision: 2.0
FPU 0:\0x09ORION (R4600) Floating Point Unit Revision: 2.0
Memory Map:
\0x09\0x090x00000000 - 0x03ffffff
CPU Freq = 133 MHZ
...
[00000000] md : Streams Debugging Utility installed (c) SNI 1996
Mirror Disk initialization ... completed.
dann fährt das System weiter hoch, aber scheinbar ist die zweite SCSI-Platte kaputt:
...
<status> 02b30200 (hard 1/1) Unit Not Ready - Drive failed to spin up
\0x09 () Extended Sense Bytes 13-17 for lpb at 0xc07f23c0
\0x09 * 00000000 00000000
CMN: NOTICE: sdi 170 Drive Configuration Failed: ios0/sdisk001, Can't Start Unit.
CMN: NOTICE: sdi 102 ios0/sdisk001: Unit Not Ready
vxfs fsck: open of /dev/ios0/rsdisk001s5 failed: I/O error
.... weitere Bootmeldungen und das Starten der Dienste folgen ...
The system is ready.
SNI
Console Login:
Na gut, hochgefahren ist es schon, jedoch brauche ich jetzt das root-Passwort. Alle Versuche scheitern. Also muss eine andere Lösung her.
Rücksetzen des Rootpassworts
Nach langem Probieren und Manuals lesen komme ich Stück für Stück auf die Lösung, wie man das root-Passwort zurücksetzt, ohne Bootmedien oder PCs mit SCSI-Controller zu haben. Dieses mal nehme ich gtkterm zur seriellen Verbindung, da cutecom scheinbar etwas verzögert und keine Terminal-Emulation bietet. Ich resette das System (man muss den Resetknopf lange drücken, sonst kommt nur der Kerneldebugger) und drücke STRG-C sobald der Bootloader sich meldet:
Autoboot: Waiting to load dkncr(0,0,10)sash (CTRL-C to abort, RETURN to expedite)
CONSOLE ABORT
exit(-1) called
SNI Monitor Version 4.2004 SNI_R4000 OPT Mon Oct 20 11:18:48 MDT 1997 livsa542
Memory size: 64 MBytes (0x4000000 bytes)
Bank #0: 64 MBytes Bank #1: 0 MBytes
Bank #2: 0 MBytes Bank #3: 0 MBytes
CPU : R4600 PC, Revision 2.0
I-cache size: 16384 (0x4000) bytes
D-cache size: 16384 (0x4000) bytes
>>
Ich bin nun im PROM-Monitor, einer Art Bios. Nun boote ich in die sash, eine Art Bootloader.
>> boot
Starting channel 0 unit 0
305280+133696+632592 entry: 0xa0e00000
SNI Standalone Shell Version 4.2004 SNI_R4000 OPT Mon Oct 20 11:37:12 MDT 1997 livsa542
sash:
aus der Sash wird nun der Kernel mit dem Kommando boot geladen. Da man laut Systemverwalter-Handbuch durch Anhängen von initarg=-s in single-User kommt, habe ich es zuerst mit initarg=-abcdefghijklmnopqrtuvwxyz versucht, also allem außer -s. Dann kam im Verlauf des Bootens mehrmals folgende Hilfe:
INIT: Usage: init [-l {123456sS}] [-s|-S] [-x #] [-a] [-n] [-v]
INIT: -l # for init level
INIT: -s for single user level
INIT: -S for single user level
INIT: -x # for debug level
INIT: -a to ask for level
INIT: -n give a sh NOW!
INIT: -v sets INIT_VERBOSE=1 in global environment for init's children
INIT: will default to state s
INIT: Unrecognized value 'c' ignored
Da war sie nun, die Init-Doku. Nun resettete ich erneut bis zur Eingabe der init-Parameter, wählte aber jetzt -n.
boot -f dkncr(0,0,0)unix initarg=-n
Nun bootete das System bis zu folgender Anzeige:
*** ROOT REMOUNTED ***
link /dev/rroot to /dev/ios0/rsdisk000s0
link /dev/root to /dev/ios0/sdisk000s0
Node: SNI
INIT: STREAM modules (ldterm,ttcompat) were already present!
INIT: Starting a pre-single user /sbin/sh. The root file system may
INIT: be read-only. You may need to do a 'fsck -F ufs /dev/rroot'
INIT: and then do a 'uadmin 4 0' to remount it read-write
INIT: See /sbin/bcheckrc for details
#
Endlich, die erhoffte Shell. Nun mountete ich alle Dateisysteme und änderte /etc/shadow mit dem prähistorischen zeilenorientierten Editor "edit":
# mountall
...
# edit /etc/shadow
"/etc/shadow" [Schreibgeschuetzt] 31 Zeilen, 777 Zeichen
:1
root:a2bcdeFGH3/4:13982:0:168:7:::
in der ersten Zeile ist der gewünschte Eintrag. Nun lösche ich mit dem Kommando s den gespeicherten Hash (hier steht natürlich nicht der originale, sondern ein anderer Hash, nicht dass jemand noch das Rootpasswort des unbekannten Vorbesitzers herausfindet). Der enthaltene Schrägstrich musste mit einem Backslash escaped werden.
:s/a2bcdeFGH3\/4//
root::13982:0:168:7:::
:w!
"/etc/shadow" 31 Zeilen, 764 Zeichen
:q
# exit
Nun lief der normale init-Prozess los und ich konnte mich dann als root ohne Passwort anmelden und mit passwd ein neues Passwort setzen.
Ergebnis
Das Sinix-System läuft, der C-Compiler hat aber keine Lizenz. Einen gcc konnte ich bis jetzt nicht auftreiben, also steht das System vorerst ungenutzt im Keller herum. Linux geht scheinbar auf dieser Maschine nicht, auch wenn man angeblich Windows NT zum Laufen bringen kann (darauf kann ich verzichten). Es gibt, wenn ich mich richtig erinnere, uralte apache- und sshd Versionen für SINIX, ich habe aber den Link nicht mehr parat. Dateiübertragung geht per rsh, Shell per rlogin.
Links