Geschrieben von Björn | Abgelegt in Banales
Im folgenden ein klitzekleines HOWTO für die Freigabe von Verzeichnissen unter Debian über NFS. Ich bin selber erstaunt gewesen wie einfach es geht, und wie wenig einfache Erklärung ich dafür gefunden habe.Es gibt einen Server, auf dem eine NFS-Freigabe existiert. Diese wird auf dem Client per mount eingebunden.
Zuerst müssen natürlich alle Komponenten installiert werden, die benötigt werden. Das geschieht unter Debian zum Glück mit dem einen Befehl
apt-get install nfs-kernel-server
Es gibt auch noch einen nfs-user-server. In den Informationen zu dem Paket steht, dass der Userserver langsamer, aber doch besser sei. Im Internet stand der Tenor Userserver Kinderkrams, Kernelserver supitoll. Ich hab mich nicht weiter damit beschäftigt und den Kernelserver installiert.
Bevor ich erkläre, wie ich das Verzeichnis freigebe und auf dem Client mounte, gehe ich kurz darauf ein, wie ich die NFTS-Partition eingebunden habe.
Ich wollte gerne das Windowslaufwerk “e:” freigegen. Damit ich es überhaupt lokal gemounted habe, steht in meiner /etc/fstab der Eintrag
/dev/sda1 /windows/e ntfs ro,umask=0277,uid=elien,gid=elien 0 0
Das Laufwerk ist ein SATA Gerät, deswegen /dev/sda1. Einen Überblick über seine Partitionen kann man mit
hwinfo --partition
in Erfahrung bringen. Das Paket kann man mit apt-get install hwinfo installieren, falls es fehlt.
Die Partition /dev/sda1 steht also unter /windows/e zur Verfügung (das Verzeichnis muss natürlich existieren und bei Bedarf angelegt werden). Die Optionen dahinter heißen nichts anderes, als dass das Dateisystem der Partition NTFS ist, und wenn es gemounted wird, dann gehört der Inhalt dem Benutzer “elien” und der Gruppe “elien”.
Als nächstes müßen die Verzeichnisse freigegeben werden. Das geschieht in der Datei /etc/exports. Wer genaueres über das Layout der Datei wissen möchte oder NFS bis zum äußersten ausreizen will, der sollte sich die Manpages von export durchlesen (export(5)).
Jede Zeile beginnt mit dem Namen des Verzeichnises, auf den sich die Freigabeparameter beziehen. Danach stehen dann die Parameter. Abstrakt also:
()
Wobei weggelassen werden können, dann gelten die Parameter für alle – auch das gesamte Internet! In meinem Fall hat die Datei nur einen Eintrag
/windows/e 192.168.1.0/24(rw,sync,no_subtree_check)
Das Verzeichnis wird für alle im lokalen Netz zum Lesen und Schreiben freigegeben. Was sync bzw. async bedeuten hab ich in den Manpages nicht gefunden und auch nicht weiter erforscht. Es kam beim starten des nfs-kernel-servers zu einer Warnung, dass kein sync oder async Parameter gefunden wurde und sync als Default angenommen wird. Um die Warnung zu unterbinden, habe ich deshalb sync in die Parameterliste aufgenommen. Das gleiche gilt für no_subtree_check.
Damit wäre auf dem Server alles eingestellt. Man sollte nun den NFS-Server neustarten:
/etc/init.d/nfs-kernel-server restart
Erscheinen keine Fehlermeldung, dann haben wir alles richtig gemacht ![]()
Auf dem Client binde ich die NFS-Freigabe unter /mnt/ufo/e ein. Das Verzeichnis habe ich natürlich vorher angelegt. Nun mounte ich das Verzeichnis einmal Testweise als root. Im folgenden bezeichnet ufo den Hostnamen meines Linuxrechners. Statt dessen kann man auch die IP-Adresse nehmen, wenn die Auflösung des Hostnamens nicht funktioniert:
mount -t nfs ufo:/windows/e /mnt/ufo/e ls /mnt/ufo/e ...
Nach dem ls kommt dann logischerweise der Inhalt des NFS-Laufwerks. Hat alles geklappt lege ich mir noch in der /etc/fstab einen Eintrag an, damit ich als Benutzer das Verzeichnis einbinden kann, falls ich es brauche. Der Eintrag sieht so aus:
ufo:/windows/e /mnt/ufo/e nfs user,noauto 0 0
Nun reicht bei Bedarf ein einfaches
mount /mnt/ufo/e
und mir steht das Netzlaufwerk zur Verfügung. Anstatt ufo müsst ihr natürlich den Hostnamen eures Servers eingeben, oder die IP Adresse. Unter Gnome erscheint sogar ein schickes Icon dafür auf dem Desktop.
Tja das war’s. Ich hoffe, ich konnte jemandem damit helfen.
Hi.
Ich habe ein ähnliche konstelation. NFS mount einer NTFS Partition aber bekomme die Fehlermeldung:
exportfs: Warning: $MOUNTPOINT does not support NFS export.
Habe dann mal gegoogelt und herausgefunden das es wohl mit dem nfs-user-server gehen soll. Soviel zu Kinderkram und zu supitoll. Könntest du bitte ein paar Infos über dein System geben. Ich habe debian lenny.
Der Eintrag ist vom November 2007. Ich habe seit dem ein ganz anderes Setup und benutze kein NFS mehr. Ich kann dir leider nicht weiter helfen.
Hallo,
danke für deinen Artikel, hat viel geholfen. Ein kleiner Hinweis, hat mich ganz schön grübeln und Haare raufen gekostet:
in der /etc/exports/ sollte man bei
/windows/e 192.168.1.0/24(rw,sync,no_subtree_check)
darauf auchten, zwischen der ip range und den optionen in () KEIN LEERZEICHEN zu haben. ist ein leerzeichen vorhanden, dann kann man zwar das verzeichnis auf dem client mounten, jedoch nur ro und nicht rw.