Windows Server NFS-Freigabe in Linux einbinden

network_localSeit einigen Version von Windows Server ist es möglich, NFS-Dateifreigaben einzurichten,
welche dann unter vielen Linux-Distributionen eingebunden werden können.
Dieser Artikel zeigt stark bebildert, welche Schritte dazu seitens Windows und anschließend
seitens Linux notwendig sind und auf welche besonderen Gegebenheiten zu achten sind.

 

 

NFS-Server in Windows

Windows Server beziehen

Wir gehen in diesem Artikel von einer “frisch” installierten Instanz von Windows Server 2012 R2 aus.
Wer diese wie in unserem Beispiel zum Testen installieren mag, kann das Image von Microsoft unter folgender Adresse beziehen:

http://technet.microsoft.com/de-de/evalcenter/dn205286.aspx

 

 

NFS-Serverdienst installieren

1 Nach der erfolgreichen Installation von Windows Server 2012 R2 öffnet sich nach dem Login automatisch der Servermanager. In diesem gilt es nun, die Rolle der Dateidienste um das NFS-Feature zu erweitern. Dazu klicken wir wie im Bild markiert auf “Verwalten” und anschließend wählen wir den Punkt “Rollen und Features hinzufügen”.

 

2 Nun begrüßt uns der Installationsassistent mit einer Startseite, welche uns allgemeine Hinweise zur Nutzung und Installation weiterer Dienste liefert. Bei Bedarf kann dieses Fenster zukünftig mit der Aktivierung des Kästchens bei “Diese Seite standardmäßig überspringen” ausgeblendet werden. Wir setzen unserer Vorgang mit einem Klick auf “Weiter” fort.

 

3 Im darauffolgenden Fenster wählen wir die Option zur Rollen- oder Featurebasierten Installation aus und bestätigen unsere Wahl mit “Weiter”.

 

4 Nun werden wir aufgefordert, den Zielserver zu wählen, auf welchem wir die weiteren Dienste installieren wollen. In unserem Beispiel wird lediglich der lokale Server zur Auswahl angeboten, welchen wir deshalb auch markieren und den Vorgang mit “Weiter” fortsetzen.

 

5 In der folgenden Auswahl wählen wir folgende Punkte:

  1. Wir erweitern den Punkt “Datei-/Speicherdienste” durch einen Klick auf den danebenliegenden Pfeil
  2. Wir erweitern den Punkt “Datei- und iSCSI-Dienste”
  3. Wir wählen den neu zu installierenden Punkt “Server für NFS”
  4. Wir bestätigen im sich daraufhin öffnenden Fenster die Installation der Abhängigkeiten

 

6 Anschließend präsentiert uns der Assistent eine Zusammenfassung unserer gewählen Rollen und Features, welche wir nun “Installieren”.

 

7 Wenn das Fenster während der Installation nicht geschlossen wurde, meldet der Assistent nach kurzer Zeit den Abschluss aller Maßnahmen.Ansonsten erscheint eine Meldung über den Erfolg im Servermanager unter dem Bereich “Benachrichtungen” (Graue Flagge rechts oben).

 

NFS-Freigabe erstellen

8 Der Assistent zum Erstellen neuer Freigaben bietet zwar grundsätzlich die Möglichkeit an, während der Erstellung auch den freizugebenden Ordner anzulegen, jedoch besteht dennoch die Möglichkeit, zunächst einen Ordner manuell zu erstellen und diesen im Laufe der Freigabeerstellung auszuwählen. In unserem Beispiel möchten wir den Ordner “Bilder” per NFS für unseren Linux-Client freigeben.

 

9 Um den Assistenten zum Erstellen einer neuen Dateifreigabe zu öffnen, navigieren wir im Servermanager durch folgende Punkte:

  1. “Datei-/Speicherdienste”
  2. “Freigaben”
  3. Menüpunkt “Aufgaben”
  4. Punkt “Neue Freigabe…”

 

10 Als Dateifreigabeprofil wählen wir “NFS-Freigabe – Schnell”.

 

11 Sollten wir wie oben beschrieben den Ordner zunächst manuell erstellt haben oder wollen wir einen bereits bestehenden Ordner freigeben, wählen wir den Punkt (1) “Benutzerdefinierten Pfad eingeben” und anschließend (2) “Durchsuchen”.

 

12 Im sich öffnenden Fenster navigieren wir zum Ordner, welchen wir freigeben möchten und wählen diesen aus.

 

13 Nachdem ein Freigabename definiert wurde, kontrollieren wir, ob der Pfad zum lokalen Ordner aus den vorhergehenden Schritten korrekt übernommen wurde.

 

14 Im Menü der Authentifizierungsmethoden wählen wir sämtliche Möglichkeiten, die Kerberos bietet. Zudem aktivieren wir die Möglichkeit, ohne Serverauthentifizierung auf die NFS-Freigabe zuzugreifen. Dabei sollte jedoch nicht der Punkt “Anonymen Zugriff zulassen” gewählt werden.

 

15 Ein Klick auf “Hinzufügen” im nächsten Fenster bietet uns die Möglichkeit, den Zugriff auf bestimmte Hosts oder ganze Netzbereiche zu beschränken. In diesem Beispiel erlauben wir lediglich dem (Linux-)Host mit der IP “10.0.2.100” den Zugriff auf unsere Freigabe “bilder”. Zudem soll dieser Host berechtigt sein, in der Freigabe zu lesen und zu schreiben.

 

16 Wurde die Beschränkung auf den Host korrekt hinzugefügt, wird dieses in der Freigabeliste angezeigt und sollte dort nochmals kontrolliert werden.

 

17 Die NTFS-Berechtigungen, welche wir im folgenden Fenster konfigurieren können, belassen wir bei den bisherigen Einstellungen und fahren mit “Weiter” fort.

 

18 Schlussendlich fasst der Assistent nochmals alle gewählten Einstellungen zusammen, bevor die Freigabe mit einem Klick auf “Erstellen” erstellt wird.

 

19 Sollte der Vorgang erfolgreich abgeschlossen worden sein, kann der Freigabeassistent mit der Schaltfläche “Schließen” beendet werden.

 

20 Nun erscheint unsere Freigabe in der Übersicht der Datei- und Speicherdienste.

 

 

NFS-Client in Linux

Systemaktualisierung

Wir führen wie immer vor der Änderung unseres Linux-Clients eine Aktualisierung der Kataloge sowie aller installierten Pakete durch:

apt-get update && apt-get upgrade

 

Vorbereitungen des NFS-Clients

Zunächst installieren wir die für den NFS-Client notwendigen Pakete, hier im Beispiel auf einem Debian-System:

apt-get install nfs-common

 

Im Anschluss erstellen wir den sog. Mountpoint, also das Verzeichnis in das die NFS-Freigabe “eingehangen” wird. In unserem Beispiel erstellen wir ein solches Verzeichnis direkt in der Wurzel und nennen es schlicht “freigabe”.

mkdir /freigabe

 

 

NFS-Versionsproblematik

attention Windows Server unterstützt nur die NFS Versionen 2,3 und 4.1! Daher muss die Version beim Einbinden
im Linux-Client 
explizit angegeben werden! Dies kann beispielsweise durch die Option “-o v3” erfolgen.

 

winnfsver Wie wir uns in den NFS-Servereigenschaften von Windows anzeigen lassen können, unterstützt dieser die NFS-Versionen 2, 3 und 4.1 und nicht die Version 4.

 

screenshot 5 Versuchen wir nun, die NFS-Freigabe in Linux einzubinden ohne weitere Optionen anzugeben, schlägt dieser Versuch mit einer wenig informativen Meldung fehl. Es wird lediglich die Fehlermeldung “mount.nfs mount system call failed” ausgegeben.

 

screenshot 6 Auch eine detailierte Ausgabe von “mount” ist leider nicht informativer.

 

 

screenshot 1 Erst eine explizite Angabe der zu verwendenden NFS-Version (hier 4.1) führt zum erfolgreichen Einbinden der Freigabe.

 

 

NFS-Freigabe einbinden

Nun prüfen wir zunächst, welche Freigaben von unserem Windows NFS-Server angeboten werden:

showmount -e 10.0.2.15

wobei “10.0.2.15” die IP des NFS-Servers darstellt.

 

screenshot 9

 

 

Nun binden wir die Freigabe zunächst per Hand ein, um ggf. Fehler festzustellen.

mount -o minorversion=1 10.0.2.15:/bilder /freigabe

Sollte dies Fehlerfrei ausgeführt werden, kann der Erfolg durch die Auflistung aller eingebundenen Medien erfolgen:

mount

 

 

 

NFS-Freigabe automatisch beim Systemstart einbinden

Nun wollen wir die Freigabe automatisch bei jedem Systemstart in das Verzeichnis “/freigabe” einbinden lassen. Zwar bestünde dazu die Möglichkeit, eine entsprechende Zeile der “/etc/fstab” hinzuzufügen, jedoch führt dies erfahrungsgemäß immer wieder zu Fehlern. Beispielsweise könnte der Versuch des Einbindens stattfinden, bevor das Netzwerk verfügbar ist. Deshalb habe ich mich dazu entschieden, die NFS-Freigabe mittels eines kleines Scriptes, welches die Verfügbarkeit des NFS-Servers vorab prüft, in der Datei “/etc/rc.local” einbinden zu lassen. Dieses Script könnte beispielhaft so aussehen:

NFSSRV="10.0.2.15"
ping -c 1 $NFSSRV
if [ $? -eq 0 ]; then
 /bin/mount -o minorversion=1 $NFSSRV:/bilder /freigabe
 echo "NFS-Freigabe wird eingebunden..."
fi

Zur Erklärung dieses kleinen Scripts:

screenshot 4 Zunächst wird die IP des NFS-Servers in eine Variable gelegt, damit diese, sofern es notwendig werden sollte, nur an einer Stelle geändert werden muss.
Anschließend wird diese IP einmal (Count 1) angepingt.
Nun wird geprüft, ob der vorherige Befehl (ping) erfolgreich durchgeführt wurde. Sollte dem so sein, ist der NFS-Server erreichbar.
Dann erst wird die Freigabe eingebunden und der Vorgang mittels “echo” ausgegeben.

 

Um dieses Script zu testen, starten wir kurzerhand unser Linux-System neu mit:

shutdown -r now

und prüfen anschließend wieder mit dem Befehl

mount

ob die Freigabe erfolgreich eingebunden wurde und uns unter “/freigabe” zur Verfügung steht.

 

Ein

touch /freigabe/test.txt

prüft zudem, ob wir über Schreibrechte in diesem Verzeichnis verfügen.