Raspberry Pi – Utiliser votre système sur NFS

Après vous avoir proposé un article sur l’utilisation d’une clé USB ici, je voulais vous proposer un autre moyen de démarrer votre Raspberry Pi : NFS.

NFS_Linux

NFS signifie Network File System. Il s’agit d’un protocole réseau permettant d’utiliser un répertoire distant comme système de fichier en local. Je vous donne la page Wikipédia pour plus d’informations techniques 🙂

A quoi ca va bien pouvoir vous servir ? Mon idée était de mettre à disposition sur mon Raspberry Pi qui me sert de serveur, un ensemble de distributions Linux, puis de faire démarrer mon Raspberry Pi de test sur l’une ou l’autre en fonction de mes choix/envies.

Les instructions :

  1. Télécharger la(les) distribution(s) que vous voulez utiliser.
  2. Installer sur le serveur les archives et les décompresser.
    Comment récupérer le contenu d’une distribution :

    1. Vous avez votre fichier IMG. Utiliser la commande file pour en connaitre la structure. Elle devrait être toujours la même :
      file <nom du fichier>.img

      Capture_d_écran_20_06_13_21_06Ce qui est important c’est le point de départ de la seconde partition (startsector 122880) et son type (ID=0x83 soit du ext4)

    2. Vous pouvez maintenant monter la partition dans un répertoire temporaire avec un offset égal à startsector multiplié par 512 :
      mkdir /tmp/img
      mount -t ext4 moebius-1.1.0.img -o offset=62914560 /tmp/img
    3. Vous avez maintenant accès au contenu. Vous pouvez le copier dans le répertoire qui va stocker vos distributions. Chez moi c’est /media/usbdrive/distributions :
      cp -R /tmp/img/* /media/usbdrive/distributions/moebius1.1.0
    4. Dans le répertoire nouvellement créé, modifier le contenu du fichier fstab. Dans notre exemple le fichier est /media/usbdrive/distributions/moebius1.1.0/etc/fstab. Il faut y supprimer la ligne qui cherche à monter la partition principale :
      Capture_d_écran_21_06_13_10_57
  3. Il faut mettre à disposition sur le réseau ce répertoire comme un filesystem. Installer le support NFS pour le noyau :
    apt-get install nfs-kernel-server
  4. Configurer les répertoires à partager. C’est dans le fichier /etc/exportfs :
    Capture_d_écran_21_06_13_09_23
  5. Mettre à jour les tables de partage NFS :
    exportfs -av
  6. Vous pouvez redémarrer les services nfs et rpcbind
    service nfs-kernel-server restart
    service nfs-common restart
    service rpcbind restart
  7. Nous allons tester sur un autre Raspberry Pi que notre système de fichier est bien disponible. Pour cela nous devons installer les outils NFS coté client :
    apt-get update && apt-get -y upgrade && apt-get install nfs-common
  8. Vous pouvez tester votre serveur NFS de plusieurs manières :
    1. Monter votre partition partagée
      mount.nfs4 192.168.1.18:/media/usbdrive/distributions/moebius1.1.0 /tmp/nfs
    2. Utiliser rpcinfo pour demander des informations à votre serveur
      Capture_d_écran_21_06_13_10_36
  9. Vous avez maintenant votre serveur NFS. Pour utiliser le filsystem, vous devez modifier coté client, le fichier /boot/cmdline.txt pour utiliser ce que vous venez de partager. Il y a des paramètres à changer :
      1. root : le device du point de montage. Ici ça sera /dev/nfs
      2. rootfstype : type de montage. Chez nous nfs.
      3. nfsroot : l’adresse complète du point de montage avec des options en plus. Chez moi j’utilise
        root=/dev/nfs nfsroot=192.168.1.18:/media/usbdrive/distributions/moebius1.1.0,udp,vers=3 ip=dhcp

        Merci à ce site pour l’info !

    Pensez à sauvegarde votre fichier original 😉

  10. Redémarrer le client. Et croiser les doigts !

Quelques informations en plus. Raspbian me pose problème pour le moment car il veut forcer un contrôle du système au boot et demande le mot de passe root qui n’existe pas. Pour Moebius j’ai pas eu de soucis à me connecter.

Chez moi j’ai trois distributions partagées. J’ai créé un lien symbolique raspberry vers celle que je souhaite utiliser. Sur ma carte j’utilise le nom du lien au lieu du chemin complet. Cela me permet de changer de distribution depuis mon serveur sans avoir à aller sur la carte SD (pratique en cas de plantage).

Pour ceux qui n’ont pas plusieurs Raspberry, vous avez des outils sous Windows et Mac OS pour avoir votre serveur NFS. Sous Linux, la procédure reste presque identique à celle de cet article.

Amusez vous bien !

Vous aimez cet article ? Supportez-moi sur Patreon!

Vous aimerez aussi...