22.08.2014, 15:02 UhrDeutsch | English
Hallo Gast [ Registrierung | Anmelden ]

Nfs-Kernel-Server Howto


Ich stand vor der Frage, wie ich zwischen meinem Notebook und dem Desktop-Computer Daten austauschen kann. Also keine "richtige Kommunikation", sondern lediglich mal was hin- oder herkopieren.

Ich wurde auf eine (angeblich) einfache Lösung dafür, den Nfs-Kernel-Server aufmerksam gemacht.
Und damit Ihr nicht so ein Gewurschtel habt wie ich, schreib ich Euch jetzt auf, wie das ging.

Also

Mein Notebook und der Desktop sind beide an einen Router angeschlossen. Feine Sache das, denn so kann ich mit beiden ins Net. Der Router war auch so freundlich, beiden eine IP zu geben:
  • 192.168.xx.xx und
  • 192.168.xx.xy
(x und y stehen hier für echte Werte. Ich weiss ja nie wer das mal liest und es zu einfach hätte, wenn ich die echten Zahlen hinschreibe.

Die brauchte ich, um in der Datei /etc/exports mitzuteilen, wer denn nun mit wem....ausserdem brauchte ich den laufenden Nfs-Kernel server, der wie vieles mit /etc/init.d usw gestartet werden kann, ebenso muss der portmap dämon laufen, sofern er nicht bereits aktiv ist.

Und dann muss es noch einen Mountpunkt geben, an dem man dann auf seinem jeweiligen Rechner auf die Daten des anderen zugreift. Sinnigerweise heissen die bei mir, auf dem Desktop /mnt/notebook und auf dem Notebook, na wie wohl... genau /mnt/desktop. Dass man die auf jeden fall manuell mal anlegen kann, indem man als su macht:
mkdir /mnt/desktop
und auf dem anderen Computer
mkdir /mnt/notebook
dürfte klar sein.

Als ich das ganze dann praktiziert habe- jetzt kommt der Grund warum die Ausführungen oben noch so dürftig sind-, fiel mir auf, wenn das fest eingebaut ist, kostet's zumindest beim Booten und beim Shutdown unnötig Zeit. Auch im Betrieb schienen mir ein paar Vorgänge in der Dateiverwaltung verlangsamt.
Also habe ich mal angefangen mit Scripten, selbst zu schreiben. Wollte ich schon lange, war aber erst gestern erstmalig in die Verlegenheit gekommen.

Ich hab also ein bischen bei Kano geguckt, und auch mal für ein paar Kleinigkeiten (naja, fast alles) nachgefragt und hab dann folgendes zusammengebastelt:

#!/bin/bash
if [ $(id -u) != 0 ]; then
 echo Error: You must be root to run this script!
 exit 1
fi
cat ""<<""EOT > /etc/exports
/        192.168.xx.xx(rw,no_root_squash,no_subtree_check,sync) 192.168.xx.xy(rw,no_root_squash,no_subtree_check,sync)
EOT
# diese Zeilen braucht man, wenn man die /etc/exports nicht löschen will eigentlich nur einmal, kann man auch 
#genausogut manuell machen und dann so lassen und hier die Zeilen rausnehmen
#bei der Version von CD oder poorman's braucht man's sicher
echo exports gesetzt
#/etc/init.d/portmap start (falls der nicht schon läuft, ich hab ihn hier mal auskommentiert)
/etc/init.d/nfs-kernel-server start
echo NFS-Server gestartet
mount -t nfs 192.168.xx.xy:/ /mnt/notebook
echo Notebook gemounted


Das ist ein Script, was ich auf meinem Desktop ausführe. Es ist als nfsstart.sh geschrieben, dann mit chmod +x ausführbar gemacht und dann (ohne .sh, das habe ich dann umbenannt) in /usr/local/bin kopiert. Nun kann ich es als su in der Shell einfach mit nfsstart ausführen.

Da das Notebook davon ja nichts weiss und nicht mitmachen würde, habe ich fast genauso eins auch dort. Nur dass die Reihenfolge der IP's in der siebten Zeile vertauscht ist und natürlich statt "Notebook" "Desktop" mit der entsprechenden IP gemounted wird. Die Echos hab ich mal mit reingemacht, damit ich besser sehe, was denn nun passiert ist.

Die ersten Zeilen sind voll von Kano geklaut, von # bis fi dient das der Kontrolle, ob ich auch der su bin.

Und wenn ich das ganze nicht mehr brauche, dann stoppe ich es auch wieder. Und zwar so:

#!/bin/bash
if [ $(id -u) != 0 ]; then
 echo Error: You must be root to run this script!
 exit 1
fi
umount /mnt/notebook
echo Notebook umounted
#portmap stoppe ich nicht, glaub nicht dass der gross stört, falls es aber jemand möchte einfach den nächsten Kommentar # entfernen
#/etc/init.d/portmap stop
/etc/init.d/nfs-kernel-server stop
echo Kernel Server gestoppt


Hier ist der Unterschied zwischen beiden Computern nur in der mount-Zeile.

Auch dieses Script liegt ausführbar gemacht ohne .sh in /usr/local/bin und wartet darauf, dass ich als su nfsstop eingebe.
Die Namen der "Programme" sind natürlich (fast) beliebig wählbar, kommt halt drauf an, wie man sie speichert. Sie sollten nicht gerade genauso heissen, wie ein bereits vorhandenes, denn das könnte Probleme geben....

Also nochmal kurz, was man machen muss:
  1. seinen Computern einen Mountpunkt machen (jeweils)
  2. die Scripte editieren, die eigenen IP´s und Mountpunkte eingeben.
  3. die Scripte ausführbar machen und im jeweiligen Computer in /usr/local/bin verschieben (ohne .sh, damit sie auf Aufruf aus der Shell wie ein Programm starten)


Das war's dann auch schon. Noch ein winziger Hinweis, ich musste das Start-Script auf dem Computer, wo ich begonnen hatte, anschliessend nochmal ausführen. Denn die Compis gucken natürlich, ob beim Nachbarn überhaupt was abgeht und melden womöglich, es ginge was nicht. Klar, weil ging ja auch noch nicht, aber einer muss ja anfangen....

Wer Tips hat, wie's noch besser, sicherer, einfacher geht, ist immer willkommen, ansonsten einfach viel Spass.


Zwei Tage später:
(für poormans installs oder von CD mit persistent Home)
So, und nachdem ich wieder ein bischen gebastelt habe, fiel mir bei meinen poorman's installs etwas auf. Der portmap dämon lief hier tatsächlich noch nicht. Ich habe ihn oben entsprechend ergänzt, aber mit # versehen. Das # bedeutet, diese Zeile ist auskommentiert und so wie sie ist unwirksam. Wenn Du das also brauchst, mach das # einfach weg. Du kannst auch sicherheitshalber restart statt start schreiben, ich glaube, falls er dann noch nicht lief wird er trotzdem gestartet, falls aber schon, vermute ich, dass von dem vorherigen zumindest nichts verlorengeht.

Solltest Du das Spielchen, so wie ich jetzt, mit poorman's installs oder von CD mit persitent Home machen, solltest Du die Mountpunkte für die jeweils anderen Computer in Dein /home/knoppix-Verzeichnis legen. Einfach einen Ordner anlegen und in nfsstart und nfsstop entsprechend ändern. Um auch hier die günstige Möglichkeit des Scriptaufrufs zu nutzen, wäre es am einfachsten, ein Programm mit Kano´s Scripten zu installieren. Irgendeins, ich hatte den Opera installiert und sah dann die tolle Möglichkeit, in den durch diese Installation angelegten Ordner /home/knoppix/dist/bin meine Scripte zu legen und sie somit "im Pfad" zu haben. (einfach aus der Shell mit Namen aufrufen zu können)

Kleiner Tip aus hier gegebenem Anlass. Dort kannst Du sowieso wunderbar ausführbare Scripte unterbringen, die Du dann aus einer Shell ganz einfach mit Namen aufrufst. Tolle Sache.


zurück
XML Revisions of $tag
Seiten-History :: Letzter Editor : RoEn :: Eigentümer : DerEinzigWahreMipooh ::
Powered by pnWikka 1.0
 
 
Deutsch | English
Logos and trademarks are the property of their respective owners, comments are property of their posters, the rest is © 2004 - 2006 by Jörg Schirottke (Kano).
Consult Impressum and Legal Terms for details. Kanotix is Free Software released under the GNU/GPL license.
This CMS is powered by PostNuke, all themes used at this site are released under the GNU/GPL license. designed and hosted by w3you. Our web server is running on Kanotix64-2006.