TUTOS.EU

Monter un partage NFS sous Linux


Nous sommes ici sur une machine qui tourne sur Ubuntu 20.04.4 LTS

La documentation officielle de nfs se trouve sur
https://manpages.ubuntu.com/manpages/impish/fr/man5/nfs.5.html

Ici on va suivre ce qui est indiqué sur https://www.digitalocean.com/community/tutorials/how-to-set-up-an-nfs-mount-on-ubuntu-20-04-fr

côté client il faut installer le paquet nfs-common

sudo apt install nfs-common
Lien vers le fichier : cliquez ici Copier le code

Sur une centos V7 j'ai du installer ce complément sous peine d'avoir ce message d'erreur :

 

mount: mauvais type de système de fichiers, option erronée, superbloc erroné
        sur monserveur:/monpartage, page de code ou programme auxiliaire manquant, ou autre erreur
        (pour plusieurs système de fichiers (NFS ou CIFS par exemple), un
        programme /sbin/mount. auxiliaire pourrait être nécessaire)

 

yum install nfs-utils nfs-utils-lib
Lien vers le fichier : cliquez ici Copier le code

Ensuite, toujours côté client, il faut créer un répertoire sur lequel on viendra monter le partage nfs.
Bien sûr vous pouvez adapter le nom du répertoire

sudo mkdir -p /point_montage_nfs_cote_client
Lien vers le fichier : cliquez ici Copier le code

Côté firewall il faut ouvrir ce port en entrée sur le serveur et en sortie sur le client

2049
Lien vers le fichier : cliquez ici Copier le code

Ensuite pour monter le partage NFS :
Il y a plusieurs version, la plus récente est la V4.
Si on ne précise rien, c'est cette version qui est utilisée. La commande à adapter est alors

sudo mount -t nfs ip_serveur_nfs:/nom_partage_nfs /point_montage_nfs_cote_client
Lien vers le fichier : cliquez ici Copier le code

Sur mon synology avec un DSM V6.2.4-25556, je n'avais pas l'option pour NFS V4. J'étais en V3 et j'avais l'erreur "mount.nfs: requested NFS version or transport protocol is not supported"

Pour lever le problème, il faut préciser la version dans la commande

sudo mount -t nfs -o vers=3 ip_serveur_nfs:/nom_partage_nfs /point_montage_nfs_cote_client
Lien vers le fichier : cliquez ici Copier le code

Comme indiqué sur https://www.linuxtricks.fr/wiki/centos-7-installer-un-serveur-nfs-et-configurer-un-client-nfs
Si le réseau est capricieux, on peut mettre un mode 'soft' avec du retry

sudo mount -t nfs ip_serveur_nfs:/nom_partage_nfs /point_montage_nfs_cote_client -o soft,retrans=2,timeo=5
Lien vers le fichier : cliquez ici Copier le code

Pour rendre le montage persistant il faut le mettre dans fstab via

nano /etc/fstab
Lien vers le fichier : cliquez ici Copier le code

Ajoutez une ligne de ce type

Nom_serveur_nfs:/nom_partage /nom_repertoire_de_montage     nfs     auto,_netdev,,nofail        0 0
Lien vers le fichier : cliquez ici Copier le code

Pour information :
• _netdev indique que la source du partage est située sur un serveur distant
• auto permet un montage automatique au lancement du système
• user : permet à un utilisateur de faire le montage
• noexec : ne permet pas de lancer un exécutable
• nofail fait qu'il n'y a pas d'erreur lorsque device n'existe pas
• 0 : le premier zéro indique qu'il n'y a pas de dump en cas d'erreur
• 0 : le second zéro determine l'ordre de check du filesystem au boot

 

On trouve plus d'informations sur (par exemple) https://man7.org/linux/man-pages/man5/fstab.5.html
ou https://man7.org/linux/man-pages/man8/mount.8.html

Démontez ce que vous venez de monter manuellement avec

umount /nom_repertoire_de_montage
Lien vers le fichier : cliquez ici Copier le code

Testez la configuration de fstab avec cette commande. Elle doit monter tout ce qu'il y a d'indiqué dedans

mount -a
Lien vers le fichier : cliquez ici Copier le code

En suivant https://www.digitalocean.com/community/tutorials/how-to-set-up-an-nfs-mount-on-centos-6
Sur RedHat/CentOs, il faut installer ces packages. A note que pour mon cas cela a fonctionné sans nfs-utils-lib

yum install nfs-utils nfs-utils-lib
Lien vers le fichier : cliquez ici Copier le code

Activer le service server

sudo systemctl enable nfs-server.service
sudo systemctl start nfs-server.service
sudo systemctl status nfs-server.service
Lien vers le fichier : cliquez ici Copier le code

Configurer /etc/exports avec

nano /etc/exports
Lien vers le fichier : cliquez ici Copier le code

Ajoutez une ligne par répertoire que vous voulez mettre à disposition

/repertoire_a_partager nom_client_qui_doit_accéder(rw,no_root_squash,no_subtree_check)

 

On trouver des explication sur les options sur https://doc.ubuntu-fr.org/nfs voir https://access.redhat.com avec

  • rw : accès en lecture/écriture
  • ro : accès en lecture seule
  • root_squash : empêche les utilisateurs root connectés à distance d'avoir des privilèges root. Au lieu de cela, le serveur NFS leurs assignera l'ID d'utilisateur nfsnobody (option par défaut).
  • no_root_squash : Permet l'accès à l'utilisateur root en tant que root.
  • no_subtree_check : Disabling the subtree check may increase the reliability of NFS, but reduce security.

Ensuite pour mettre à disposition des clients, faire

exportfs -arv
Lien vers le fichier : cliquez ici Copier le code

Pages Web

Site WebDescription
docs.formatux.frNetwork File System par formatux
youtube.comInstaller et configurer un serveur NFS (Network File System) sous Linux

2