kleiner nfs server

hood

hood

Robin von Locksley
hallo,

ich wollte mir wieder einen kleinen server einrichten, aber ich bekomme es dieses mal ums verrecken nicht auf die reihe. mein alter rechner soll der server sein, mein notebook der client.
ich habs gestern schon probiert und heute früh nochmal - klappt nicht.
bin unter anderem nach diesem howto vorgegangen:

http://www.howtoforge.de/howto/einrichten-eines-nfs-servers-und-clients-unter-debian-etch/

bei:

Code:
mount 192.168.0.100:/home /mnt/nfs/home

gibt die konsole nach 1:30 minuten folgende meldung raus:

Code:
mount.nfs: internal error

woran könnte es liegen? an der ip? könnte ein wenig hilfe gut gebrauchen.

auf beiden rechnern ist debian sid drauf.
 
nfs

Hallo


Poste erstmal

/etc/exports

welche Verzeihnisse auf dem Server sollen denn exportiert werden

Die IP von Server und Client.

mfg
schwedenmann

P.S.
Du hast doch die server-IP in die 7etc/hosts auf dm Client eingetragen, oder ?
 
Ich kann hier auch nur raten, würde aber mal folgendes probieren:

Normalerweise wird bei nfs beim mounten immer der Filesystemtyp angegeben, also

Code:
mount -t nfs IP.IP.IP.IP:/Verzeichnis/auf/Server /lokales/Verzeichnis

nfs wertet auch die beiden Dateien /etc/hosts.allow und etc/hosts.deny aus, falls sich hier dein Client nicht mit dem Server verbinden darf, funktioniert auch nfs nicht.

Die Angabe von IP-Adressen funktioniert normalerweise nur, wenn der Rechnername nicht bekannt ist. Also falls du mit Namensauflösung arbeitest, oder deinen Server in /etc/hosts eingetragen hast musst du den Rechnernamen statt der IP angeben, ansonsten ist die IP richtig.

Ich gehe mal davon aus, dass die Freigabe richtig in /etc/exports eingetragen ist, oder?

portmap und nfsserver laufen ja oder?

Das ist mal das was mir als erstes dazu einfällt, hoffe es hilft dir
 
also die /etc/exports auf dem server sieht so aus:

Code:
/home           192.168.0.101(rw,sync,no_root_squash,subtree_check)
/var/nfs        192.168.0.101(rw,sync,subtree_check)


die /etc/hosts auf dem client sieht so aus:
Code:
#127.0.0.1      localhost
#127.0.0.1      box

192.168.0.100   localhost
192.168.0.100   box

# The following lines are desirable for IPv6 capable hosts
# (added automatically by netbase upgrade)

::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
die /etc/hosts ist leicht von mir verändert.

Code:
# route -n
Kernel-IP-Routentabelle
Ziel            Router          Genmask         Flags Metric Ref    Use Iface
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 eth0
 
Warum hast du localhost auf deine Server-IP gesetzt? Stell das mal wieder auf 127.0.0.1 zurück und probier dann mal:

Code:
mount -t nfs box:/home /mnt/nfs/home
 
/etc/exports auf dem server sollte demnach so aussehen?

Code:
/home           127.0.0.1(rw,sync,no_root_squash,subtree_check)
/var/nfs         127.0.0.1(rw,sync,subtree_check)


die /etc/hosts auf dem client habe ich wieder zurück gesetzt.


jetzt kommt folgende ausgabe:

Code:
root@box:~# mount -t nfs 127.0.0.0:/home /mnt/nfs/home
mount.nfs: mount to NFS server 'rpcbind' failed: System Error: Network is unreachable
mount.nfs: internal error
root@box:~# mount -t nfs 127.0.0.1:/home /mnt/nfs/home
mount.nfs: mount to NFS server 'rpcbind' failed: RPC Error: Program not registered
mount.nfs: internal error
root@box:~# mount -t nfs box:/home /mnt/nfs/home
mount.nfs: mount to NFS server 'rpcbind' failed: RPC Error: Program not registered
mount.nfs: internal error

die /etc/hosts.allow steht auf portmap: ALL
die /etc/hosts.deny ist komplett auskommentiert.
 
Mein letzter Beitrag hat sich nur auf folgenden Eintrag in deiner /etc/hosts bezogen:

Code:
192.168.0.100   localhost

Das macht meiner Meinung nach keinen Sinn. localhost, sowie der Adressbereich 127.x.x.x ist für das Loopbackinterface reserviert. Deshalb steht in der /etc/hosts normalerweise immer

Code:
127.0.0.1 localhost

Ich kann mir keinen Grund vorstellen, warum man dies ändern sollte. Im Rest deiner Einstellungen konnte ich keinen Fehler entdecken. Dass es nicht funktioniert, wenn du alles auf 127.0.0.1 umstellst ist klar, da unter dieser Adresse immer der lokale Rechner erreichbar ist. Ich kann mir allerdings vorstellen, dass es den nfsclient durcheinanderbringt wenn du localhost auf deine Server-IP verweisen lässt. Das habe ich aber noch nie probiert.

Das einzige, was du ändern sollst ist also die Zeile für localhost in deiner /etc/hosts, denn Rest kannst du von deinem ursprünglichen Post übernehmen. Probiers mal, wenns dann nicht klappt kann man weiterschaun.

EDIT:
Doch noch einen evtl. Fehler übersehen: In /etc/exports haben IP-Adressen nur dann Gültigkeit, wenn die Hostnamen nicht bekannt sind. Wenn du Serverseitig die /etc/hosts auch pflegst, musst du hier den Hostnamen deines Clients eintragen.
 
Zuletzt bearbeitet:
ja du hast schon recht, aber nachdem nichts ging, habe ich auch an der /etc/hosts am client herumgespielt.

es sieht jetzt folgendermaßen aus
die /etc/exports auf dem server:
Code:
/home           192.168.0.101(rw,sync,no_root_squash,subtree_check)
/var/nfs        192.168.0.101(rw,sync,subtree_check)

die /etc/hosts auf dem client:
Code:
# cat /etc/hosts
127.0.0.1       localhost
127.0.0.1       box

#192.168.0.1   localhost
#192.168.0.1    box

# The following lines are desirable for IPv6 capable hosts
# (added automatically by netbase upgrade)

::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts


rpcinfo -p auf dem client:
Code:
rpcinfo -p
   Program Vers Proto   Port
    100000    2   tcp    111  portmapper
    100024    1   udp  52490  status
    100024    1   tcp  47654  status
    100000    2   udp    111  portmapper

und rpcinfo -p auf dem server:
Code:
rpcinfo -p
   Program Vers Proto   Port
    100000    2   tcp    111  portmapper
    100000    2   udp    111  portmapper
    100024    1   udp  37251  status
    100024    1   tcp  51635  status
    100003    2   udp   2049  nfs
    100003    3   udp   2049  nfs
    100003    4   udp   2049  nfs
    100021    1   udp  36884  nlockmgr
    100021    3   udp  36884  nlockmgr
    100021    4   udp  36884  nlockmgr
    100003    2   tcp   2049  nfs
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100021    1   tcp  53742  nlockmgr
    100021    3   tcp  53742  nlockmgr
    100021    4   tcp  53742  nlockmgr
    100005    1   udp  51868  mountd
    100005    1   tcp  48272  mountd
    100005    2   udp  51868  mountd
    100005    2   tcp  48272  mountd
    100005    3   udp  51868  mountd
    100005    3   tcp  48272  mountd

Jetzt bin ich wieder genau da, wo ich am anfang war.

nach der eingabe von
Code:
mount 192.168.0.100:/home /mnt/nfs/home
oder
Code:
mount 192.168.0.101:/home /mnt/nfs/home
gibt die konsole nach 1:30 minuten folgende meldung raus:
Code:
mount.nfs: internal error
 
Jetzt mal ganz langsam, ich glaube wir reden hier aneinander vorbei. Wenn ich dich richtig verstanden habe, dann hast du folgende IP-Adressen:

192.168.0.100 ist der Server (Hostname box)
192.168.0.101 ist der Client

Du willst mit Namensauflösung arbeiten, d.h. du trägst den Hostnamen und IP-Adresse des jeweiligen anderen Partners in die Datei /etc/hosts ein. Der Eintrag für localhost muss dabei IMMER auf 127.0.0.1 lauten, unabhängig vom Rechner. Folglich müssten deine Dateien so aussehen:

Server:
Code:
127.0.0.1          localhost
192.168.0.101    clientname #hast du ja noch nicht angegeben

Client:
Code:
127.0.0.1          localhost
192.168.0.100    box

Da die Hostnamen jetzt bekannt sind, ist keine IP in /etc/exports mehr zulässig, d.h. hier muss jeweils der Hostname stehen:

Code:
/home           client(rw,sync,no_root_squash,subtree_check)
/var/nfs        client(rw,sync,subtree_check)

Da ich den Hostnamen des Clients nicht kenne, habe ich stellvertretend mal client reingeschrieben

Noch was ist mir eingefallen: Du hast geschrieben, dass in deiner /etc/hosts.allow der Portmap akzeptiert wird. Wie siehts aber mit mountd aus, welcher für nfs auch relevant ist?
 
es sieht folgendermaßen aus, hab noch ein wenig herumjustiert:

die /etc/hosts beim server:

Code:
127.0.0.1          localhost
192.168.0.101   box

die /etc/hosts beim client:
Code:
127.0.0.1          localhost
192.168.0.100   box861

server: box861 mit 192.168.0.101
client: box mit 192.168.0.100

jetzt muss ich mit
Code:
mount -t nfs box861:/home /mnt/nfs/home
mounten? habe ich das richtig verstanden?
geht aber immer noch nicht. immernoch internal error.

/etc/exports auf dem server sieht jetzt so aus:
Code:
/home           box(rw,sync,no_root_squash,subtree_check)
/var/nfs         box(rw,sync,subtree_check)

was meinst du mit mountd?
 
Also du kannst einen ganz schön verwirren. Du schreibst jetzt, dass dein Server(box861) die IP 192.168.0.101 hat, aber nach deinen Dateien zu urteilen hat der Server 192.186.0.100. Gehe jetzt davon aus, dass die Dateien stimmen und dein Kommentar falsch ist, dann müsste das schon so stimmen.

Das mit dem mounten ist schon richtig

was meinst du mit mountd?

Für nfs sind zwei Dienste erforderlich: portmap und mountd. Beide müssen in /etc/hosts.allow freigegeben werden (hosts.deny ist ja auskommentiert und somit nicht weiter wichtig). Bei mir sehen die relevanten Zeilen von /etc/hosts.allow so aus:

Code:
portmap :       10.1.0.0/255.255.0.0    :       ALLOW
mountd  :       10.1.0.0/255.255.0.0    :       ALLOW

Falls du es immer noch nicht hinbringst würde ich vorschlagen, die Sache mit der Namensauflösung mal zu vergessen und rein mit den IP-Adressen zu konfigurieren. Falls es damit klappt, kannst du ja im nächsten Schritt die Namensauflösung wieder hinzufügen. Ich persönlich finde die Konfiguration mit IP-Adressen leichter, wenn es nicht zu viele Rechner sind. (Dazu musst du deine /etc/hosts Dateien wieder anpassen)
 
ich könnte mich auf den kopf stellen. es geht gar nichts.
könnte es daran liegen, dass der server reiserfs ist und der client ext3?
 
Das Dateisystem, das sich auf den einzelnen Rechnern befindet ist egal.

Klingt vielleicht blöd, aber du startest die jeweiligen Dienste bzw. das System schnon neu, nachdem du was geändert hast?

Ich schlage vor, dass wir das ganze mal ohne Namensauflösung aufsetzen. Das heißt du kommentierst in den beiden /etc/hosts die die entsprechenden Zeilen für den anderen Rechner aus (die localhostzeile lässt du drin). Damit hast du erreicht, dass die Rechner nicht mehr namentlich bekannt sind und du kannst rein mit IP-Adressen konfigurieren.

Als nächstes stellst du überall, wo du vorher die Hosnamen dringehabt hast auf IP-Adressen um, startest die Dienste neu (bzw. das System, wenn du dir nicht sicher bist welche Dienste), und probierst es aus.

Falls es nicht klappt poste mal nochmals alle relevanten Dateien (hosts, hosts.allow, exports)

EDIT: Eine Firewall funkt uns aber nicht dazwischen, oder?
 
hallo,

schon mal vielen dank für deine geduld, ich bekomm schon langsam gehirnschwurbl.


firewall hab ich vorher extra runtergeschmissen.


ich poste jetzt nochmal alles, ich hab auch schon irgendwie den überblick verloren:

alles daten vom server:

1. /etc/exports:
Code:
/home          192.168.0.101(rw,sync,no_root_squash,no_subtree_check)
/var/nfs        192.168.0.101(rw,sync,no_subtree_check)

2. /etc/hosts:
Code:
127.0.0.1       localhost
#127.0.0.1      box861    [COLOR="Red"]sollte ich ja auskommentieren,oder?[/COLOR]

::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

3. /etc/hosts.allow:
Code:
portmap:ALL
mountd:ALL

jetzt der client:

1./etc/hosts
Code:
127.0.0.1       localhost
#127.0.0.1      box [COLOR="Red"]wieder auskommentiert durch mich[/COLOR]

::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

2. /etc/hosts/allow:
Code:
portmap:ALL
mountd:ALL


server soll box861 sein
client soll box sein

zu sicherheit fahr ich jetzt alles nochmal hoch.
 
Meiner Meinung nach stimmt deine /etc/hosts.allow noch nicht. Die Einträge bestehen normalerweise immer aus 3 Teilen: Dienst, Rechner, und Aktion. Die Aktion fehlt bei dir allerdings. Müsste theoretisch so lauten:

Code:
portmap   :   ALL   :   ALLOW
mountd    :   ALL   :   ALLOW

Ist allerdings sehr unsicher, da du hier allen die Erlaubnis gibst, dich mit deinem Rechner zu verbinden. Besser du machst es wie ich in meinem Beispiel oben. Also Subnetz, oder sogar nur einige auserwälte IPs erlauben. Für den ersten Versuch müsste aber ALL auf alle Fälle funktionieren.

Wenn du jetzt mountest musst du wieder mit IPs arbeiten, da die Namensauflösung ausgeschaltet ist:

Code:
mount -t nfs 192.168.0.100:/home /mnt/nfs/home

Im Momentanen Zustand kennen die beiden Rechner ihren Partner nicht beim Namen. Das ist erst der nächste Schritt.

Nur so am Rande: Wenn du die auskommentierten Zeilen wieder einfügst (mach das jetzt aber bloß nicht), dann kann es nicht gehen, da hier schon wieder die 127.0.0.1 drinsteht. Es müsste aber die IP des anderen Rechners drin stehen, damit der lokale Rechner den Namen des anderen kennt. 127.0.0.1 darf nur vor localhost stehen. Das Problem stellt sich aber erst wenn du wieder mit Namensauflösung arbeitest, also erst im nächsten Schritt.
 
hab jetzt alles so gemacht wie es im thread steht und es kommt wieder der fehler:

Code:
mount.nfs: internal error

meine rechner schikanieren mich offenbar. viel mehr kann man ja nicht mehr versuchen.
 
Langsam gehen auch mir die Ideen aus, oder ich bin einfach zu blind um den Fehler zu sehen.

Vielleicht sieht ein anderer den Fehler.
 
Und jetzt bitte nochmal die Ausgabe von ifconfig von Server und Client ...

Btw. portmap haste auf beiden Rechnern installiert?
 
portmap ist auf beiden rechnern installiert.

ifconfig server:
Code:
# ifconfig
eth0      Link encap:Ethernet  Hardware Adresse 00:01:02:05:d8:df
          inet Adresse:192.168.0.187  Bcast:192.168.0.255  Maske:255.255.255.0
          inet6-Adresse: fe80::201:2ff:fe05:d8df/64 Gültigkeitsbereich:Verbindung
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metrik:1
          RX packets:155 errors:0 dropped:0 overruns:0 frame:0
          TX packets:150 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:1000
          RX bytes:17071 (16.6 KiB)  TX bytes:13560 (13.2 KiB)
          Interrupt:5 Basisadresse:0x2000

lo        Link encap:Lokale Schleife
          inet Adresse:127.0.0.1  Maske:255.0.0.0
          inet6-Adresse: ::1/128 Gültigkeitsbereich:Maschine
          UP LOOPBACK RUNNING  MTU:16436  Metrik:1
          RX packets:102 errors:0 dropped:0 overruns:0 frame:0
          TX packets:102 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:0
          RX bytes:8584 (8.3 KiB)  TX bytes:8584 (8.3 KiB)
ifconfig client:

Code:
# ifconfig
eth0      Link encap:Ethernet  Hardware Adresse 00:0a:e4:a2:62:3b
          inet Adresse:192.168.0.123  Bcast:192.168.0.255  Maske:255.255.255.0
          inet6-Adresse: fe80::20a:e4ff:fea2:623b/64 Gültigkeitsbereich:Verbindung
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metrik:1
          RX packets:521 errors:0 dropped:0 overruns:0 frame:0
          TX packets:470 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:1000
          RX bytes:528045 (515.6 KiB)  TX bytes:115005 (112.3 KiB)
          Interrupt:22 Basisadresse:0x6800

lo        Link encap:Lokale Schleife
          inet Adresse:127.0.0.1  Maske:255.0.0.0
          inet6-Adresse: ::1/128 Gültigkeitsbereich:Maschine
          UP LOOPBACK RUNNING  MTU:16436  Metrik:1
          RX packets:74 errors:0 dropped:0 overruns:0 frame:0
          TX packets:74 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:0
          RX bytes:5680 (5.5 KiB)  TX bytes:5680 (5.5 KiB)
 
Komisches Problem, eigentlich ist ja NFS in wirklich 5 Minuten eingerichtet.

Das hier

Code:
mount.nfs: internal error

kann leider alles mögliche heißen.

Mach mal nach dem Starten / Mounten ein

Code:
dmesg | tail

und poste das hier, das System sollte schon genauere Fehlermeldungen geben.
 

Ähnliche Themen

Raid-1 einrichten

nis und nfs durch ldap ersetzen

Hardware RAID-0 kaputt / wird nicht mehr erkannt

NTP Server verweigert Zugriff auf Quellen - Port 123 blocked?

Samba Update von 3.2.5 auf 3.5.6 - Probleme beim Server Browsen

Zurück
Oben