Monter un disque dur externe partagé sur un Raspberry Pi

Je veux disposer d’un disque dur accessible en permanence dans la maison. Mais je ne souhaite pas le connecter à un PC à cause de la consommation d’énergie d’un tel appareil. Je vais donc le connecter à un Raspberry Pi qui pourra rester allumer en permanence et mettre les fichiers à disposition.

02/01/2018 : Je viens de mettre en service un Raspberry Pi 3 et le contenu de cet article est toujours d’actualité. J’ai rencontré deux difficultés et j’ai mis à jour le contenu de cet article.

Préparer le Raspberry Pi

J’ai utilisé un Raspberry Pi B+, avec un dongle wifi Edimax EW-7811Un.

J’ai installé Raspbian Jessie Lite (2016-05-27-raspbian-jessie-lite.img) selon la méthode décrite dans Mise en service d’un Raspberry Pi. A la fin j’ai mis à jour le Pi avec apt-get update , apt-get dist-upgrade  et rpi-update .

J’ai ensuite réglé le Pi pour qu’il fonctionne en wifi, avec une adresse IP fixe, comme décrit dans Raspberry Pi : connexion internet en wifi et/ou IP fixe. Mais ça n’est pas obligatoire pour installer un disque dur externe.

Connecter un disque dur

Le disque dur doit avoir une alimentation externe. Le Pi ne pourra pas lui fournir assez d’énergie. Le disque est donc connecté d’une part à une source d’énergie, d’autre part à un port USB du Raspberry Pi pour l’échange de données.

Avec Jessie, on peut connecter le disque au Pi sans manipulations préalables. Mais ensuite il faut faire des réglages pour accéder au disque et le partager avec d’autres équipements du réseau local.

Pour ce qui suit, je me suis inspirée principalement des articles suivants :

identifier le type de disque dur

Pour savoir quel type de disque dur on a, on tape :

Le Pi nous répond avec la liste des unités de stockage qu’il a identifié. Pour moi, il y a les 3 partitions de la carte SD du Pi et le disque dur IOMEGA_HDD que je viens de connecter :

blkid-pour identifier un disque dur externe

J’apprends ainsi que le disque est monté comme sda1 et qu’il est de type NTFS (le système de fichiers).

Comme le disque utilise le système NTFS, j’installe les drivers correspondants sur le Pi :

Monter le disque de manière permanente

Si je décide de connecter un autre disque dur, ou une clé USB, le disque Iomega pourrait devenir sda2 et je ne saurai plus comment y accéder. Il faut donc lui donner une « adresse » permanente.

On crée un répertoire sur lequel on va monter le disque dur :

Evidemment on peut appeler le répertoire comme on veut, la seule contrainte est que ce soit un sous-répertoire de /media .

Il faut pouvoir donner l’accès à ce répertoire. Dans mon cas, c’est à l’utilisateur al que je veut donner l’accès. Pour savoir quel est l’identifiant de l’utilisateur ( -u ) al et du groupe ( -g )correspondant, je tape :

La réponse est 1001 pour les deux. Je sais donc que ‘group id’ est 1001 et ‘user id’ est 1001. Pour donner la propriété d’un répertoire au fichier, on définit d’abord l’utilisateur, ensuite le groupe ( [utilisateur]:[groupe] ) :

Pour monter le disque dur de manière permanente sur  /media/iomega :

Si le disque était en FAT32, j’aurais utilisé -t vfat  à la place de -t ntfs-3g .

02/01/2018 : En entrant cette commande j’ai eu une erreur « Mount is denied because the NTFS volume is already exclusively opened.« . J’ai simplement déconnecté le disque avec la commande umount /dev/sda1  puis exécuté de nouveau la commande précédente.

A partir de maintenant, si je veux déconnecter le disque dur, j’utilise la commande :

Dans /etc/fstab , j’ajoute la ligne suivante :

Noter la règle nofail , qui permet d’éviter que le Pi ne bloque au démarrage si le disque dur n’est pas connecté ou pas prêt. On vérifie que tout va bien avec mount a . S’il n’y a pas d’erreur, pas de souci.

Enfin, j’ajuste les paramètres de démarrage du Pi pour laisser le temps au disque dur de démarrer et d’être monté. On édite /boot/cmdline.txt  et on ajoute rootdelay=5  à la fin de l’unique ligne qu’il contient :

Je redémarre le Raspberry Pi et je vérifie que tout va bien en allant regarder le contenu de /media/iomega.

A ce stade, je fais une copie de la carte SD.

Partager le disque dur avec Samba

Pour cette phase, j’ai suivi les instructions de ces deux sites :

Samba a été installé lors de la mise en service du Pi. Il ne reste plus qu’à le configurer pour partager le disque dur externe. Il vaut mieux créer une copie du fichier de configuration avant de le modifier :

On édite ensuite /etc/samba/smb.conf  et on y ajoute tout à la fin :

Je ne suis pas très sûre des raisons d’être de la plupart des lignes. Mais valid users  définit que tous les utilisateurs du groupe users auront droit d’accès.

On redémarre samba pour utiliser les nouveaux paramètres :

Accéder au disque de l’extérieur

Avec certaines versions de Windows, je peux maintenant voir le disque Iomega dans l’explorateur de fichiers, sous « réseau ». Avec d’autres versions (Windows 10 en particulier), il faudra que je crée une « connexion réseau ». Mais dans tous les cas Windows me demandera un nom d’utilisateur et un mot de passe…

créer un nom d’utilisateur Samba

Sur le Pi, j’ajoute un utilisateur ‘alwindows’ qui fera partie du groupe users, que j’ai précédemment défini comme pouvant accéder au disque (dans smb.conf).

Je crée un mot de passe samba pour cet utilisateur. Le Pi me demande de l’entrer deux fois :

Je redémarre samba.

Sous Windows 10, créer un lecteur réseau

Dans l’ordinateur Windows si je vois le disque dur sous « Réseau », je clique dessus et je met cet utilisateur et le mot de passe.

Le disque dur du Raspberry Pi vu dans l'explorateur Windows

Sous Windows 10 (et dans d’autres cas si mes souvenirs sont bons), il faut créer un lecteur réseau.

Dans l’explorateur de fichier, cliquer à droite sur « Ce PC » et choisir « connecter un lecteur réseau » :

Créer un lecteur réseau sous WIndows 10 - étape 1

Indiquer la localisation du lecteur : \\NomDuPi\NomDuDisqueDansSamba :

Créer un lecteur réseau sous WIndows 10 - étape 2

Entrer le nom d’utilisateur Samba et le mot de passe précédemment défini :

 

Créer un lecteur réseau sous WIndows 10 - étape 3

J’ai maintenant accès au disque dur géré par le Raspberry Pi sous « Ce PC »

Créer un lecteur réseau sous WIndows 10 - et voilà !

Et voilà. Les fichiers de ce disque sont accessibles 24h sur 24 sans laisser un ordinateur énergivore en fonctionnement !

11 commentaires


  1. Bonjour. J’ai suivi a la lettre et tout vas bien.
    Seul problème, je veux collecter ma bibliothèque a Sonos mais impossible.
     » RASPBERRYPI refuse la collection avec sonos »
    Pouriez-vous m’aider SVP

    J’ai accès au raspberry sur mon ordi.

    Merci

    Répondre

    1. Bonjour
      Je n’ai aucune idée de ce qu’il faut faire, je ne connais pas Sonos.
      C’est probablement une histoire de droits d’accès.
      Bons ajustements
      Anne-Laure

      Répondre

  2. Bonjour,

    Est-il possible d’accéder sous un environnement linux (rastbian ou ubuntu mate) d’accéder au disque dur partagé?

    Par exemple via un autre rasbery PI.

    merci d’avance

    Répondre

    1. Bonjour Gandalf
      Je pense que c’est possible, je ne vois pas de raison que ça ne soit pas le cas. Mais je n’ai jamais essayé. J’espère que quelqu’un d’autre pourra répondre avec des instructions précises !
      Anne-Laure

      Répondre

  3. Bonjour,

    J’ai une question quand au partage de ce disque. Est-i possible d’accéder à ce disque à partir d’un environnement Linux (raspbian ou ubuntu mate)?

    Merci d’avance

    Répondre

  4. Bonjour

    Je penses qu’il y a une erreur d’interprétation du code html dans les partie code/citation.
    Voilà la ligne qui pose problème (celle du fstab) :
    /dev/sda1     /media/iomega   ntfs   nofail,uid=1001,gid=1001   0       0

    Sur deux navigateurs (Firefox et edge) il y a la balise autour du nofail qui apparaît en toute lettre et qui n’est pas interprétée.

    Bonne journée,
    David

    Répondre

    1. Je me rend compte que mon commentaire précédent n’a pas de sens car les balises html ont été interprétées cette fois-ci dans le commentaire.

      Du coup dans la ligne du fstab, les balise html pour mettre le texte en gras du type «  » sont apparentes et non interprétées.

      En espérant que c’est plus claire ainsi 😉

      David

      Répondre

      1. Ok, je n’ai vraiment pas de chance, encore une autre balise (dont je ne connaissais pas le code), celle pour barrer le texte…on ne va pas s’en sortir.

        Du coup je parle des balises strong au milieu de la ligne du fstab (en espérant que cette foi c’est clair)

        Cette foi c’est la bonne

        Répondre

        1. Bonjour David,

          Merci pour ce commentaire très clair :-D. Effectivement, il y avait une balise « strong » sous firefox dans la ligne
          « /dev/sda1     /media/iomega   ntfs   nofail,uid=1001,gid=1001 0       0 »
          Je viens de corriger l’article et d’enlever le gras pour « nofail ». Maintenant la ligne peut être copiée-collée sans modification avec firefox comme avec Chrome.
          Merci, bonne installation d’un disque dur.
          Anne-Laure

          Répondre

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *