Montage d'un système de fichiers NFS sur une carte de développement Linux

Le montage d'un système de fichiers NFS (Network File System) sur un système Linux embarqué offre plusieurs avantages pratiques. Il permet d'exécuter des applications directement depuis un serveur distant sans transfert de fichiers, et de valider un système de fichiers racine personnalisé sans nécessiter de reflashage de la mémoire. Ce guide détaille la mise en place pour une configurasion typique basée sur Ubuntu et une carte ARM.

Configuration du serveur NFS sous Ubuntu

Installez d'abord les paquets nécessaires sur la machine hôte :

sudo apt-get install nfs-kernel-server

Créez ensuite un répertoire dédié au partage, par exemple dans votre dossier utilisateur :

mkdir -p ~/partage_nfs
# Copiez ici les fichiers du système de fichiers racine à partager

Modifiez le fichier de configuration des exportations NFS pour autoriser l'accès :

sudo vi /etc/exports

Ajoutez la ligne suivante (adaptez le chemin et les options selon vos besoins) :

/home/user/partage_nfs 192.168.1.0/24(rw,sync,no_subtree_check)
  • /home/user/partage_nfs : répertoire partagé sur le serveur.
  • 192.168.1.0/24 : sous-réseau autorisé (ici, tous les clients de ce réseau).
  • rw : accès en lecture/écriture.
  • sync : écriture synchrone pour plus de fiabilité.
  • no_subtree_check : améliore les performances en désactivant la vérification de sous-arborescence.

Démarrez le service NFS et vérifiez son état :

sudo systemctl start nfs-kernel-server
sudo systemctl enable nfs-kernel-server

Test de montage depuis le serveur Ubuntu

Assurez-vous que le service fonctionne en montant localement le partage :

mkdir -p ~/test_mount
sudo mount -t nfs 127.0.0.1:/home/user/partage_nfs ~/test_mount
ls ~/test_mount  # Vérifiez le contenu
sudo umount ~/test_mount

Montage sur la carte de développement

Avant de procéder, configurez les adresses IP de sorte que la carte et le serveur soient sur le même réseau. Par exemple, affectez l'IP 192.168.1.101 à la carte et 192.168.1.100 au serveur Ubuntu.

Depuis le terminal de la carte, exécutez la commande de montage suivante :

sudo mount -t nfs 192.168.1.100:/home/user/partage_nfs /mnt -o nolock,vers=3
  • nolock : désactive le verrouillage de fichiers NFS, souvent nécessaire pour les systèmes embarqués.
  • vers=3 : force l'utilisation de la version 3 du protocole NFS pour une meilleure compatibilité.

Le contenu du répertoire partagé devrait maintenant être accessible sous /mnt sur la carte.

Démarrage du système Linux via NFS

Pour amorcer le système de fichiers racine depuis le réseau, conservez le noyau et le chargeur d'amorçage (comme U-Boot) en mémoire flash. Seul le système de fichiers racine sera chargé via NFS.

  1. Préparez un système de fichiers racine complet dans le répertoire partagé sur le serveur.
  2. Dans U-Boot, modifiez les paramètres de démarrage pour pointer vers le partage NFS. Par exemple, dans l'environnement U-Boot : ``` setenv bootargs root=/dev/nfs nfsroot=192.168.1.100:/home/user/partage_nfs ip=192.168.1.101:192.168.1.100::255.255.255.0::eth0:off
  3. Sauvegardez les paramètres et redémarrez la carte.

Résolution des problèmes courants

Échec du montage NFS

Cause probable : le service NFS n'est pas actif sur le serveur Ubuntu.

Solution : vérifiez avec sudo systemctl status nfs-kernel-server et redémarrez le service si nécessaire.

Perte de connexion après le montage initial

Cause probable : le système Linux reconfigure l'interface réseau au démarrage, changeant son adresse IP.

Solution : dans le système de fichiers racine partagé, éditez le script d'initialisation (par exemple /etc/init.d/rcS) et commentez les lignes qui relancent la configuration réseau, comme # /etc/init.d/networking restart. Cela stabilise l'adresse IP durant le processus de démarrage.

Étiquettes: nfs Linux embedded-system ARM TQ2440

Publié le 21 juillet à 05h13