Wie bindet man einen Novell Netware-Server ein? #
Dieser Artikel ist sicherlich für die meisten Linux-Interessierten völlig uninteressant. Obwohl Novell mit seinem Netzwerk-Betriebssystem "Netware" in den 80ern den Markt der Firmenserver dominiert hat, spielt dieses Protokoll im Zeitalter der IP-Intranets kaum noch eine Rolle. Trotzdem kann in so mancher Firma (z.B. meiner) noch ein alter Novell-Server in der Ecke herumstehen und seinen Dienst verrichten.
Wäre es da nicht schön, wenn man auf die Volumes (d.h. Laufwerke) dieses Servers von seiner Linux-Maschine aus zugreifen könnte? Nun gut!
Mein Novell-Server läuft unter Netware 4.11. Es wird nicht TCP/IP zur Kommunikation benutzt, sondern ein Novell-eigenes Protokoll namens IPX/SPX. Für unsere Zwecke brauchen wir davon nur den IPX-Teil. (Übrigens kann TCP/IP und IPX problemlos auf ein und demselben Ethernetkabel gleichzeitig gefahren werden, da andere Ethernet-Frametypen verwendet werden. Das System der Frametypen stammt noch aus einer Zeit, als noch nicht jeder bei der Kreation eines Standards darauf geachtet hat, daß andere damit nichts anfangen können.) Wie üblich bezieht sich die Anleitung auf Debian Linux.
Kernel konfigurieren #
Da IPX in keinem Standardkernel drin sein dürfte, kommt man um eine Koernelkompilierung nicht herum. Wichtig ist, sowohl bei den Netzwerkeinstellungen IPX zu aktivieren als auch bei den Filesystemen das ncpfs.
Pakete installieren #
Folgende Debian-Pakete sind zu installieren:
ipx ncpfs
Schnittstelle Konfigurieren #
Im Prinzip muss das Netzwerk-Interface erstmal normal eingerichtet werden und dann mittels des Befehls ipx_interface für IPX konfiguriert werden. Darum brauchen wir uns aber nicht wirklich zu kümmern, weil die Debian-Startskripten uns das abnehmen. In die Datei /etc/network/interfaces kommt folgender Eintrag:
iface eth0 ipx dynamic frame 802.3
Es kann gut sein, daß ein anderer Frametyp genommen werden muss. Probiert ggf. mal 802.2 aus oder lest die manpage von ipx_interface.
Jetzt das Interface neu initialisieren mit
ifdown eth0 ifup eth0
und mit ifconfig sollte man sehen, daß IPX-Daten für das Interface existieren. Wenn das so ist, kann man mit den Befehlen nwsfind und slist den Server anzeigen lassen. Falls der Server nicht gefunden wird, stimmt was nicht. :-(
mounten #
ich habe folgende Zeile in /etc/fstab eingefügt:
servername:/sys /mnt/novell ncpfs noauto,server=SERVERNAME,volume=SYS,user=USERNAME,nopasswd,uid=65534,gid=65534 0 0
Der erste Eintrag kann auch anders aussehen und direkt den Usernamen enthalten. Komischerweise kann dort aber nicht der Pfad bzw. das Volume stehen (was ich dort hingeschrieben habe). Bei meinem guten alten RedHat 5.2 ging das nämlich so...
wichtig ist, daß man unter Debian noauto verwendet. Das ncp-Filesystem wird nicht richtig als Netzwerksystem erkannt und deshalb ansonsten gemountet, bevor die Netzwerkinterfaces oben sind. Also nicht automatisch mounten sondern von Hand oder ein eigenes Startskript schreiben, das entsprechend später ausgeführt wird und das Volume mountet.
Will man ein NCP-Verzeichnis doch normal maunten, so muss man folgendes in /etc/init.d/mountnfs.sh vor der Zeile mit "case "$MTPT" in" einfügen:
# -TB- # Ich brauche IPX, was komischerweise erst viel spaeter # eingerichtet wird statt bei den anderen Netzwerksachen case "$FSTYPE" in ncp|ncpfs) /etc/init.d/ipx start ;; esac # -TB- # entweder bin ich doof oder hier fehlt das wichtigste... # also fuege ich es hier mal ein: /bin/mount $MTPT
Die richtige manpage für die Optionen kommt mit man mount.ncp.
-- ThomasBayen
BTrieve #
BTrieve ist eine von Novell eine Zeit lang vertriebene Datenbank. Ich habe mich eine Weile mal damit beschäftigt. Um dieses sehr spezielle Thema hier nicht zu sehr zu strapazieren, habe ich es auf die Seite BTrieveDatenbank ausgelagert.
Server unter Linux #
Es gibt ein Projekt namens Mars, mit dem man einen Novell-Server unter Linux bekommen kann. Wer es genauer braucht (weil er z.B. eine BTrieveDatenbank braucht wie ich), kann versuchen, ein vollständiges Netware in einer Virtualisierung laufen zu lassen. Geschafft habe ich das selber auch noch nicht. Hoffnungsvolle Ergebnisse einer Installation hatte ich aber mit Novell 4.11 unter VirtualBox (QEmu ergab bei der Installation ganz früh einen schwarzen Bildschirm) und mit Novell 5.1 nur unter Bochs (QEmu und VirtualBox hängen beide an der gleichen Stelle beim Entpacken einer Java-Klassenbibliothek). Leider nahm das mir zur VErfügung stehende 4.11SB nicht meine 4.11 Lizenzdiskette. Das 5.1 lief wohl, allerdings ist die Einrichtung nicht so intuitiv, daß ich das alleine und "mal eben" machen konnte.
Original-Server übernehmen #
Letztlich war es mir dann möglich, mein vorhandenes (bereits installiertes) System in eine virtualisierte Umgebung zu überführen. Ich habe das alte System mit einer Debian-Installations-CD gebootet, um dann mit dem auf PartImage beschriebenen dd-/ssh-Befehl die ganze Partition auf einen anderen Rechner zu sichern. Dort habe ich dann QEmu gestartet und dieses Image bei der hda-Option angegeben.
Festplatten-Treiber #
In der Datei "startup.ncf" (eine Art autoexec.bat für den Novell-Server) habe ich folgende Änderungen vorgenommen, um den Adaptec SCSI-Treiber auf einen für die IDE-Platte, die QEmu emuliert, umzustellen:
; load AIC7870.DSK slot=1 ; load ide.dsk port=1f0 interrupt=e load ideata.ham port=1f0 int=e
Der ide.dsk-Treiber sollte theoretisch auch gehen, ist aber wohl älter als der ideata.hem-Treiber. Bei mir lief auch nur der letztere. Danach bootete das System wie gewohnt.
Interessant zu wissen ist, daß es neben der Datei "startup.ncf" noch eine Datei "autoexec.ncf" gibt, die Startbefehle enthält. Letztere verschwindet allerdings immer wieder, ihr Inhalt bleibt aber scheinbar dennoch aktiv. Als das Ding schliesslich lief, sah ich keinen Wert mehr darin, dieses Phänomen näher zu untersuchen.
Netzwerk-Treiber #
Das Netzwerk konnte ich erst nach einigen Schwierigkeiten zum Laufen bringen. Ich habe von der Realtek Downloadseite Treiber für NE2000 PCI (RTL 8029) geholt und per mtools auf die DOS-Partition meines Novell-Servers geschrieben. Läuft der Novell-Server, kann man mit
load install
ein Installations-Tool starten, mit dem ich dann den neuen Treiber, der "PCISRV" heisst, installiere.
Idle-Treiber #
Von VMWare gibt es einen Idle-Treiber namens nw4-idle.nlm. Dieser muss (in Grossbuchstaben benannt) in das SYSTEM-Verzeichnis des Novell-Servers und kann dann per "load nw4-idle" geladen bzw. besser per "load install" in die "autoexec.ncf" eingetragen werden. Dann benötigt der Server nur noch die CPU-Zeit, die wirklich nötig ist.
Links #
Interessante Links für Leute, die sich auch heute noch mit Netware beschäftigen (müssen):
- http://netwarefaq.de - deutsche Natware-FAQ mit vielen Tips und Tricks
- http://stuff.mit.edu/afs/sipb/project/vmdialup/lib/vmware-console/help-guestinstall/ - Installationsanleitungen u.a. für Novell auf VMWare, hilft auch ohne selbiges
- http://support.novell.com/cgi-bin/search/searchtid.cgi?/2958220.htm - Fehlerpatch von Novell, der evtl. damit zu tun hat, das Netware nicht mehr auf neueren Rechnern läuft
- http://www.netwarefiles.de/ - Super Toolsammlung, u.a. auch zur BTrieveDatenbank
Mich würde interessieren, wie du das Passwort-Problem praktisch löst. Hast du einen eigenen User auf dem Novell-Server angelegt? Außerdem finde ich es nicht gerade besconders prickelnd das Passwort im Klartext in ein Skript oder in die fstab reinzuschreiben. -- LinuxWiki:BennySiegert