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 !

22 commentaires


  1. Bonjour, j’ai installé plex serveur sur mon rpi 2 et mon disque dur externe 2.5 sur ma live box mais je n’arrive pas a le trouver sur plex. Faut il faire une commande spécial pour le faire remonter?

    Répondre

  2. Bonjour
    J’ai acheté un PrimeBook Connex il y a quelques jours. Voyant que la capacité de l’ordinateur est faible (32 Go), j’ai ajouté un disque dur de 500 Go
    Après avoir refait l’ordinateur, je n’ai plus accès au disque de l’ordinateur.
    En allant sur le bios de l’ordinateur, les disques ne s’affichent plus. Il y a juste le mode UEFI.
    Et chaque fois que je redémarre c’est juste le mode UEFI qui apparaît et pas les disques.
    Comment remonter des disques durs avec des commandes shell?

    Répondre

  3. Bonjour.
    Je n’arrive pas à voir mon disque dur branché sur mon Pi3 (le Pi est nommé osmc, et le disque nommé LACIE SHARE, formaté en exFAT) avec Samba sur mon PC (je veux pouvoir y glisser des fichiers dessus sans le faire par FTP (mon Pi3 est installé OSMC)
    Dans W10 (édition Education), j’ai le message d’erreur suivant:

    (grosse croix rouge) La connexion au lecteur réseau n’a pas pu être créée car l’erreur suivante s’est produite:

    Vous ne pouvez pas accéder à ce dossier partagé car les stratégies de sécurité de votre entreprise bloquent l’accès invité non authentifié. Ces stratégies bla bla bla… (pourtant je ne suis pas en invité non authentifié, et le disque en question est disponible en lecture/écriture)

    De plus, une Time Capsule de Apple, est, elle visible.
    Merci pour vos retours (et dsl, je débute)

    Répondre

    1. Bonjour Philippe,

      Je ne sais pas si vous avez paramétré Samba exactement comme je l’ai proposé. Il paraît probable que le formatage exFAT n’est pas à l’origine du problème.
      En vous lisant, je pense à deux causes possibles :
      L’une est que vous n’avez pas créé d’utilisateur avec mot de passe comme je l’ai fait (alwindows). Cet utilisateur n’est pas l’utilisateur de l’ordinateur windows mais bien un utilisateur authentifié du disque dur pour Windows.
      L’autre est lié au nom du disque. Un espace est un caractère spécial et il est possible que Windows ne le lise pas correctement. Lorsqu’on partage des choses entre plusieurs systêmes, une cause fréquente d’erreurs incompréhensibles pour nous humains est lié à l’utilisation de sauts de ligne au mauvais format ou de caractères spéciaux.

      En premier j’essaierai de renommer le disque LACIE-SHARE, en second je créerai un utilisateur authentifié.
      Tenez nous au courant
      Bon courage
      Anne-Laure

      Répondre

      1. Bonjour.
        Merci, faudra que j’essaie.
        Mais que dois-je mettre pour le format exFAT dans ces deux commandes?

        apt-get install ntfs-3g
        mount -t ntfs-3g -o uid=1001,gid=1001 /dev/sda1 /media/iomega

        ntfs-3g c’est pour NTFS, et vfat pour FAT32
        Merci d’avance

        Répondre

          1. bon j’abandonne, j’arrive a rien, la moitié des commandes passent pas. Je continuerai à me faire chier en sftp… ou déconnecter le disque pour le trimballer d’u pc à l’autre.


          2. Mon raspberry est installé avec osmc, pas debianOS


          3. Dommage d’abandonner, il y a plein d’articles comme celui ci qui donnent des conseils sur l’installation d’un disque exFAT avec OSMC.
            Courage !
            Anne-Laure


          4. Oui, mais ça, ça fonctionne déjà depuis toujours, c’est l’accès depuis un autre PC de mon réseau qui veut pas


          5. Quand je fais ça:
            /etc/fstab
            ça me répond que j’ai pas les droits (et suis en root)


  4. 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

  5. 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

  6. 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

  7. 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 *