Le RaspberryPi : Installer et utiliser le partage de fichier NFS
Transcription
Le RaspberryPi : Installer et utiliser le partage de fichier NFS
Le RaspberryPi : Installer et utiliser le partage de fichier NFS Par X. HINAULT – Octobre 2012 – www.mon-club-elec.fr Installation du partage de fichier NFS : le raspberryPi en serveur NFS • J'ai déjà décrit la procédure sous Ubuntu en détail ici : Mise en place d'un partage de fichier NFS via réseau wifi entre le PC embarqué et le PC fixe, C'est quoi le partage de fichier • Le partage de fichier va consister à ouvrir sur le poste fixe le répertoire utilisateur du RaspberryPi et à y travailler comme si c'était un répertoire de votre PC fixe !! Vous allez alors pouvoir copier / coller des fichiers qui seront instantanément copier/coller sur le RaspberryPi et inversement. • • Ceci va s'avérer très pratique surtout lorsque le RaspberryPi sera loin du poste fixe.... aucune intervention physique ne sera nécessaire ! Ceci va également être très intéressant pour transférer des fichiers... sans fil, car çà fonctionne aussi bien en wifi qu'en filaire ! Préalable • • Sachez que vous pouvez à tout moment utiliser le « partage de fichier pour les nuls » avec... une simple clé USB !! Vous copier le fichier voulu du RaspberryPi ou de votre PC sur une clé USB... et vous le copiez ensuite sur le poste de destination. Ceci fonctionne très bien mais devient vite fastidieux... !! Aspects techniques • • Plusieurs techniques sont possibles, notamment SAMBA, NFS : nous utiliserons ici NFS qui est plus spécifique au monde Gnu/Linux. Au niveau du réseau, le partage NFS va utiliser les ports 2049 (nfs) et 111 (rpcbind) Installation des paquets nécessaire • On commence donc par installer les paquets nécessaire pour transformer le RaspberryPi en serveur NFS : nfs-kernel-server et nfs-common (est installé en même temps que nfs-kernel-server). Ce qui donne en ligne de commande : $ sudo apt-get install nfs-kernel-server nfs-common Paramétrage du dossier partagé • On va partager ici le répertoire /home/pi/ du RaspberryPi (serveur). On commence par éditer du fichier /etc/exports $ sudo geany /etc/exports Le RaspberryPi : Personnalisation du système Gnu/Linux (Raspbian) de base - Par X. HINAULT – Octobre 2012 – www.mon-club-elec.fr – p. 1 / 6 • Ajouter dans le fichier exports (pour pouvoir partager sur des réseaux ayant comme racine 192.168.0, .1 ou .2 - à adapter à votre situation) : # pour avoir tous les droits root : /home/pi 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 /home/pi 192.168.1.0/255.255.255.0(rw,sync,no_root_squash,no_subtree_check) # autorise accès par client 192.168.1.x en lecture / écriture /home/pi 192.168.2.0/255.255.255.0(rw,sync,no_root_squash,no_subtree_check) # autorise accès par client 192.168.2.x en lecture / écriture • Une fois que fait, pour que les modifs soient prises en compte, on fait : $ sudo exportfs -a • ou mieux $ sudo exportfs -ra • avec ◦ -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 $ sudo geany /etc/hosts.deny • Ajouter les lignes #pour partage NFS # 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 : $ sudo geany /etc/hosts.allow • On ajoute les lignes : Le RaspberryPi : Personnalisation du système Gnu/Linux (Raspbian) de base - Par X. HINAULT – Octobre 2012 – www.mon-club-elec.fr – p. 2 / 6 #partage NFS #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. Activation de rcpbind • Lors du lancement du serveur NFS, il y a un warning avec portmapper... sur le raspberryPi. En fait, il semble que le service rpcbind ne fonctionne pas par défaut sur le raspberryPi. Voir ici : http://www.raspbian.org/RaspbianFAQ « On the current version of Raspbian, rpcbind (part of the portmap package) does not start by default. This is presumably done to control memory consumption on our small systems. However, it isn't very big and we need it to make an NFS mount. » • Pour l'activer manuellement : $ sudo service rpcbind start • Pour l'activer au démarrage, ce qui est préférable : $ sudo update-rc.d rpcbind enable Redémarrage serveur NFS • On relance NFS $ sudo /etc/init.d/nfs-kernel-server reload • ou mieux, on redémarre le service : $ sudo /etc/init.d/nfs-kernel-server restart +/- Activation ipv6 • • Au démarrage du serveur NFS, on a un message de warning indiquant que nfsd ne supporte pas ipv6. A priori, çà n'a pas d'impact sur ipv4 donc çà doit marcher. Ceci étant, pour résoudre çà : soit on l'installe en manuel avec : Le RaspberryPi : Personnalisation du système Gnu/Linux (Raspbian) de base - Par X. HINAULT – Octobre 2012 – www.mon-club-elec.fr – p. 3 / 6 $ sudo modprobe ipv6 • soit on charge ipv6 au démarrage avec : $ sudo geany /etc/modules • Ajouter la ligne ipv6 Vérification • Pour vérifier que tout est ok, on peut faire : $ rpcinfo -p Récupérer adresse ip du RaspberryPi • Une fois fait, il suffit de monter le raspberryPi sur le poste client pour pouvoir échanger des copier coller des fichiers. On commence par retrouver l'adresse ip du raspberryPi avec la commande $ ifconfig Le RaspberryPi : Personnalisation du système Gnu/Linux (Raspbian) de base - Par X. HINAULT – Octobre 2012 – www.mon-club-elec.fr – p. 4 / 6 Accéder au partage de fichier depuis le client Gnu/Linux Attention : la suite de la procédure se passe sur le poste fixe qui accède au Raspberry Pi Installation des paquets utiles • Installer les paquets : nfs-common (et nfs-server tant qu'on y est... ? ) $ sudo apt-get install nfs-common Création d'un point de montage sur le client • Dans une console, on crée un répertoire pour le montage : $ sudo mkdir /mnt/nfs Montage du serveur (le RaspberryPi) sur le client (le poste fixe) On utilise ici l'adresse du serveur : 192.168.1.x C'est l'adresse obtenue par ifconfig sur le raspberryPi On peut également obtenir cette adresse par nmap. $ sudo mount -t nfs 192.168.1.x:/home/pi/ /mnt/nfs ou $ sudo mount -t nfs -o rw 192.168.1.x:/home/pi/ /mnt/nfs 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... A noter, pour automatiser le montage NFS depuis le poste client, on pourra utiliser un sccript comme par exemple : #!/bin/bash # 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" Le RaspberryPi : Personnalisation du système Gnu/Linux (Raspbian) de base - Par X. HINAULT – Octobre 2012 – www.mon-club-elec.fr – p. 5 / 6 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 ; Test • +/- Saisir dans la console pour voir si le montage nfs est bien en place : $ mount | grep nfs • ce qui donne nfsd on /proc/fs/nfsd type nfsd (rw) 192.168.1.3:/home/xavier/ on /mnt/nfs type nfs (rw,addr=192.168.1.3) • Aller dans le répertoire /mnt/nfs : on doit voir le contenu de RaspberryPi ! On peut dès lors réaliser des échanges de fichiers entre la RaspberryPi et le PC de contrôle en toute simplicité ! • On pourra également créer un lanceur sur le bureau du client vers le répertoire /mnt/nfs pour accéder facilement au contenu du répertoire. A noter que pour ouvrir un dossier à partir d'un lanceur, il faudra faire : • sous Ubuntu : nautilus /rep • sous xubuntu : thunar /rep Bon à savoir Si on veut démonter le partage NFS du côté client, dans un terminal on fait : $ sudo umount /mnt/nfs Le RaspberryPi : Personnalisation du système Gnu/Linux (Raspbian) de base - Par X. HINAULT – Octobre 2012 – www.mon-club-elec.fr – p. 6 / 6