L’utilisation d’un partage de fichiers NFS entre deux PC sous Ubuntu peut être très pratique pour partager des fichiers entre les deux ordinateurs. Cette procédure peut être mise en place via un réseau wifi, ce qui est très pratique et peut être fait rapidement et facilement. Dans cet article, nous allons vous montrer comment mettre en place un partage de fichiers NFS entre deux PC sous Ubuntu via un réseau wifi.
Ubuntu : Procédure : Mise en place d’un partage de fichiers NFS entre 2 PC sous Ubuntu via un réseau wifi
Procédure testée et validée sous Ubuntu LTS 10.04 côté PC fixe et côté PC embarqué – OK en Juin 2011
Introduction
- La procédure décrite ici est utilisée dans le cas d’un PC embarqué (netbook ou eeePC) sous Ubuntu auquel on accède via wifi par accès au bureau distant par VNC sur le port 5900.
- Très vite, on va avoir besoin d’accéder depuis le PC local aux fichiers du PC embarqué : ceci nécessite un système de partage de fichier sur le réseau entre le PC embarqué (qui sera le serveur) et le PC local (qui sera le client).
- Sur cette page, je détaille la procédure opérationnelle qui permet la mise en place de ce partage de fichier sous Ubuntu 10.04
Sources utiles :
- http://doc.ubuntu-fr.org/tutoriel/un_simple_partage_nfs
- http://www.cepcasa.info/parted/nfs.html (source utilisée ++ )
- http://smhteam.info/wiki/index.linux.php5?wiki=NFS (ce qui a marché )
Le réseau utilisé

On utilise un réseau wifi entre 2 PC via routeur wifi DHCP (attribution automatique des adresses IP).
Dans notre cas, les caractéristiques du réseau sont :
- numéro réseau local wifi : 192.168.0.
- sous-masque réseau : 255.255.255.0
- l’adresse IP du serveur embarqué est 192.168.0.3
- l’adresse IP du client permettant d’accéder au serveur est 192.168.0.4
Il est nécessaire d’adapter la procédure décrite ici à votre propre situation.
Procédure Côté serveur
Le Serveur est le pc embarqué sur lequel on veut accéder aux fichiers à distance…
Dans notre cas, l’adresse IP du serveur sera 192.168.0.3
Installation paquets nécessaires sur le serveur
- Installation dans le gestionnaire de paquets Synaptic des paquets :
- nfs-kernel-server
- et nfs-common (est installé en même temps que nfs-kernel-server)
Ce qui donne en ligne de commande :
Vérification ports
- Vérification du fichier /etc/default/portmap
Paramétrage du dossier partagé
- On va partager ici le répertoire /home/xavier/ du PC embarqué (serveur)
- Edition du fichier /etc/exports
Ajouter dans le fichier exports :
/home/xavier 192.168.0.0/255.255.255.0(rw,sync,no_root_squash,no_subtree_check) # autorise accès par client 192.168.0.x en lecture / écriture
Autres exemples à titre informatif :
#/home/hinault/mon_nfs 192.168.1.13 (rw,sync,no_root_squash) # autorise en lecture/écriture l’adresse 192.168.1.13
#/home/xavier 192.168.1.0/255.255.255.0(ro,sync,all_squash,no_subtree_check) # autorise accès par client 192.168.1.x en lecture seule
#/home/xavier 192.168.1.0/255.255.255.0(rw,sync,all_squash,no_subtree_check) # autorise accès par client 192.168.1.x en lecture / écriture
- ATTENTION à l’adresse du réseau utilisé +++ : 192.168.0.0 et notamment le numéro du réseau… !
- IL FAUT IMPERATIVEMENT QUE LA RACINE DU RESEAU UTILISEE COTE CLIENT SOIT DECLAREE DANS CE FICHIER. Ainsi, 192.168.3.0 si réseau 192.168.3.1-255
- Si on utilise 2 réseaux différents (1 wifi et 1 ethernet par exemple), on peut déclarer successivement les 2.
On peut aussi faire :
/home/xavier 192.168.1.0/240/24 (rw,sync,no_subtree_check) # autorise accès par client 192.168.1.x en lecture / écriture
Autre point important :
« par defaut, si, au niveau du serveur on ne met que l’option rw, lors d’une requete de l’utilisateur root d’un serveur client, le serveur nfs change l’UID et le GID root en nobody (c’est le « root squashing »). on a donc pas les droit d’acces root sur le dossier importé par nfs. Heureusement il existe une option no_root_squash pour éviter cela.
Donc la solution est d’ajouter l’option « no_root_squash » coté serveur (« master » pour moi). On a donc dans le fichier /etc/exports :
/home slave1(rw,no_root_squash) slave2(rw,no_root_squash) … »
pour que les modifs soient prises en compte, on fait :
ou
- -a : exporte tous les répertoires
- -r : ré-exporte tous les répertoires
Configuration autorisations dans hosts.deny
On ouvre hosts.deny et on interdit tout par défaut
Ajouter les lignes
# Tout interdire sur portmap, nfsd et mountd
# les autoriser par hosts.allow
portmap:ALL
lockd : ALL
mountd:ALL
rquotad : ALL
statd : ALL
#nfsd:ALL
Configuration autorisations dans hosts.allow
On ouvre hosts.allow et on autorise les adresses voulues :
ON ajoute les lignes :
#Autoriser ces clients à se connecter avec services portmap, nfsd, moundt
portmap:ALL
lockd:192.168.
mountd:192.168.
rquotad:192.168.
statd:192.168.
#nfsd:192.168.
On relance NFS
ou mieux, on redémarre le service :
On obtient quelque chose comme çà :
[sudo] password for xavier:
* Stopping NFS kernel daemon [ OK ]
* Unexporting directories for NFS kernel daemon… [ OK ]
* Exporting directories for NFS kernel daemon… [ OK ]
* Starting NFS kernel daemon [ OK ]
Vérification
Ce qui donne quelque chose comme çà :
program no_version protocole no_port
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 54229 status
100024 1 tcp 48158 status
100021 1 udp 53570 nlockmgr
100021 3 udp 53570 nlockmgr
100021 4 udp 53570 nlockmgr
100021 1 tcp 59175 nlockmgr
100021 3 tcp 59175 nlockmgr
100021 4 tcp 59175 nlockmgr
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100005 1 udp 54077 mountd
100005 1 tcp 39749 mountd
100005 2 udp 54077 mountd
100005 2 tcp 39749 mountd
100005 3 udp 54077 mountd
100005 3 tcp 39749 mountd
Si problème, redémarrer le serveur NFS :
Récupérer ip du serveur
On note l’ip du serveur dont on va avoir besoin pour le montage depuis le client :
On obtient dans mon cas : 192.168.0.3
Désactiver le pare-feu (au moins la première fois)
Sinon, il y a aussi une procédure pour fixer les ports utilisés et utiliser un parefeu en même temps…
Mais si on n’est pas connecté à internet, on peut à priori monter comme çà, sans pare-feu…. au moins mettre un wep quand même non ?
=> C’est terminé sur le PC « serveur NFS »….
Paramétrer routeur
- à priori, il faut ouvrir les port 111 et 2049 sur le routeur en mode UDP et TCP
Voir ici notamment : GnuLinuxOuvrirPortPCetRouteur
Sur le Client
Le client est le PC depuis lequel on accède aux fichiers du serveur
Installation des paquets utiles
- Installer dans synaptic :
- nfs-common
- (et nfs-server tant qu’on y est….)
Création d’un point de montage sur le client
Montage du serveur (embarqué) sur le client (fixe)
On utilise ici l’adresse du serveur : 192.168.0.3
ou
Voilà, si pas de message d’erreur, c’est bon…
Ne pas oublier le / avant le nom du chemin de montage après l’adresse…
Test
Saisir dans la console pour voir si le montage nfs est bien en place :
ce qui donne
192.168.0.03:/home/xavier/ on /mnt/nfs type nfs (rw,addr=192.168.0.03)
Aller dans répertoire /mnt/nfs : on doit voir le contenu du bureau du pc embarqué !
Bon à savoir
Si on veut démonter le partage NFS du côté client, dans un terminal on fait :
Si problème : désactiver le pare-feu (au moins la première fois)
Pour se simplifier la vie : un petit script tout prêt !
- Pour éviter les « prises de tête », j’ai écrit un petit script tout bête qui permet de monter rapidement le partage NFS sur le poste client à partir de 2 ou 3 questions simples.
# script montage NFS
# par XH – Aout 2011
echo « — script de Montage NFS côté client —« $disque
read -p « Quelle est l’adresse du serveur NFS (192.168.x.x ou équiv.) ? « adresse #saisie de l’adresse
echo « L’adresse IP du serveur NFS à monter est : » $adresse
read -p « Quel est le répertoire du /home du serveur NFS à monter sur le client (/xavier ou /glapbox/Bureau ou équiv) ? » repertoire #saisie du répertoire
echo « Le répertoire du /home du serveur NFS à monter sur le client est : » $repertoire
echo « Le script va monter « $adresse« :/home »$repertoire« / sur /mnt/nfs »
read -p « <OK> » # pour attendre entrée pour continuer
sudo mount -t nfs -o rw $adresse:/home$repertoire/ /mnt/nfs
echo « Opération terminée »
read -p « <OK> » # pour attendre entrée pour sortir
exit 0 ;
- C’est un script shell : ouvrir gedit, copier/coller le script et enregistrer-le dans un fichier en .sh et ensuite faire clic-droit sur le fichier obtenu. Sélectionner Propriétés > Permissions > Rendre exécutable.
- Pour lancer le script, faire double-clic dessus et choisir exécuter dans un Terminal. Taper entrée après chaque <OK>… Voici ce que çà donne :

BIEN VEILLER A CE QUE LE BON NUMERO DE RESEAU SOIT DECLARE DANS LE FICHIER /etc/exports du côté serveur !! Voir ici : Ubuntu : Procédure : Mise en place d’un partage de fichiers NFS entre 2 PC sous Ubuntu via un réseau wifi
Fignolages
Pour avoir tous les droits, côté serveur, faire aussi :
$ sudo chmod 777 -R *
Utilisation
- Ensuite, c’est assez simple : les fichiers du répertoire /home/utilisateur/ du serveur embarqué sont accessibles depuis le répertoire /mnt/nfs du client fixe.
- Après, çà s’utilise comme un répertoire classique pour copier/coller des fichier dans un sens ou dans l’autre.
- Pour faciliter l’accès au répertoire /mnt/nfs/, il est pratique de créer un lanceur « emplacement » sur le bureau du client.
- Sinon, on pourra aussi utiliser un logiciel comme Krusader (Logithèque Ubuntu ou Applications > Accessoires > Krusader ) qui va permettre de gérer les fichiers côté NFS et côté PC fixe à la façon « Filezilla » (logiciel de transfert FTP) avec les 2 volets PC local et PC embarqué en vis à vis.
- Il est également possible de lancer Processing sur le PC embarqué en utilisant les programmes présent sur le PC fixe…
- En bref, plusieurs possibilités qui permettent de travailler et de transférer des fichiers entre le PC fixe et le PC embarqué..
Dépannage
- Vérifier que votre GLAP-Box est bien allumée et opérationnelle (faire connexion VNC pour vérifier..)
- Désactiver le pare-feu sur le client si çà foire…
- On peut aussi lancer Zenmap pour avoir une idée des ports ouverts sur le réseau.
Divers
- Problème programme Processing ???????? => en fait désactiver Compiz (Système > Préférence > Apparence > Effets > Aucun )
[–
A noter qu’un fichier copié du Client vers le Serveur appartient au groupe «nogroup » : du coup, j’ai constaté un plantage dans le cas d’une exécution d’un programme Processing.
Ainsi, il faut mettre tous les fichiers de /home/utilisateur du serveur dans le groupe utilisateur, ce qui se fait par en étant positionné dans /home/utilisateur par :
$ sudo chgrp -R utilisateur *
Cette manip a l’air de suffire à résoudre le problème.
Pour changer le propriétaire, on fait :
$ sudo chown -R utilisateur *
–]
Articles similaires:
- GLAP-Box : Utiliser le partage de fichier NFS entre la GLAP-Box et un poste client sous Ubuntu.
- Configurer l’attribution statique d’adresse sous Ubuntu
- … d’une carte Arduino vers une autre carte Arduino via deux interfaces Processing Client/Serveur sur 2 PC connectés en réseau wifi.
- GLAP-Box : Sécuriser l’accès au bureau distant par tunellisation de VNC par SSH
- Pyduino + Bottle : Réseau : Créer un serveur de fichiers textes contenus dans un répertoire
Articles Liés
- Javascript : Graphique Dygraphs simple
Le Javascript est un langage de programmation très populaire et puissant qui permet aux développeurs…
- Javascript : Afficher 6 widgets graphiques fournis par une librairie graphique externe.
Le Javascript est un langage de programmation très populaire qui permet aux développeurs de créer…
- Javascript : Graphique Dygraphs : afficher date à partir unixtime
Le langage de programmation Javascript est très populaire et est utilisé pour créer des applications…