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 :

blkid

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 :

apt-get install ntfs-3g

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 :

mkdir /media/iomega

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 :

id -u al
id -g al

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] ) :

chown 1001:1001 /media/iomega

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

mount -t ntfs-3g -o uid=1001,gid=1001 /dev/sda1 /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 :

umount /media/iomega

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

/dev/sda1     /media/iomega   ntfs   nofail,uid=1001,gid=1001   0       0

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 :

dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait rootdelay=5

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 :

cp /etc/samba/smb.conf /etc/samba/smb.old

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

[MUSIC]
comment = Musique AL
path = /media/iomega
valid users = @users
force group = users
create mask = 0660
directory mask = 0771
read only = no
browseable = yes
public = yes

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 :

service smbd restart

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

useradd alwindows -m -G users

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

smbpasswd -a alwindows

Je redémarre samba.

service smbd restart

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 !

24
Poster un Commentaire

avatar
  S’abonner  
plus récent plus ancien Le plus populaire
Notifier de
Blanc Patrick
Invité

Bonjour ,
super tuto tous fonctionne bravo ¢

amine
Invité
amine

Merci mec ! Je suis allé de tutoriels en tutoriels et le tien est juste parfait !

Yohann
Invité
Yohann

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?

Audi KOUMBA
Invité
Audi KOUMBA

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?

Philippe Chappuis
Invité
Philippe Chappuis

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… Lire la suite »

Loup
Invité
Loup

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

json formatter
Invité

C’est très utile! Merci pour le partage

Zoey
Invité
Zoey

C’est très utile!!!!! 192.168.0.1

Gandalf
Invité
Gandalf

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

Gandalf
Invité
Gandalf

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

David
Invité

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