Raspberry Pi Episode 3: Booter sur un disque SSD et se faire un disque réseau (NAS)

Dans ce nouvel article sur l'univers du raspberry, nous allons voir comment utiliser au mieux un disque dur externe connecté à notre raspberry.



Dans les deux articles précédent, nous avons vu comment installer raspbian Stretch sur notre petite merveille ( ICI ) et comment configurer le système en le personnalisant et en y installant un serveur domotique ( ICI ). L'objectif final de tous ces articles reste d'avoir une installation complète, stable, sécurisée qui va nous permettre de réaliser tous nos projets les plus fous en domotique, informatique et électronique.

Mais avant d'en arriver là, il faut mettre en place tous les éléments sur lesquels nous pourront nous appuyer et dont nous allons avoir besoin. Aujourd'hui nous allons connecter un petit disque dur SSD externe sur le port USB du raspberry et nous allons essayer de l'utiliser de deux manières: 
  1. Comme disque réseau qui pourra être utilisé par tous les clients SMB (Windows) et/ou Samba (MAC/Linux). 
  2. Comme disque de boot du raspberry pour diminuer le taux de panne, car sur le pi la carte SD est souvent le maillon faible de la solution. 
Allez, une page de pub et c'est parti !







Situation de départ

Le matériel


Pour cette réalisation nous allons avoir besoin d'un peu de matériel. Comme je suis toujours un peu radin économe, j'ai cherché à faire dans le plus modulable, fonctionnel, performant possible mais pour un coût le plus faible possible.
Tout disque dur externe pourra faire l'affaire, mais il faut tout de même qu'il soit de taille supérieure à une carte SD et relativement performant pour ne pas ralentir notre petite configuration. De plus il doit être robuste car l’objectif est de diminuer le taux de panne. Afin de répondre à toutes ces exigences, j'ai choisi d'acheter un disque dur SSD interne de 120Go pas cher, avec un boitier SATA/USB qui me permettra au besoin de changer de disque.

En général pour les disques durs je prends des marques réputées, mais pour un disque SSD je me suis dit qu'il y a moins de mécanique, donc de fragilité et laissé convaincre par le prix et de bons commentaire. De plus, étant toujours impatient, la livraison en 24h me plaisait. J'ai choisi ce modèle de disque:

KingDian S280-120GB

Et pour le boitier j'ai choisi quelque chose de premier prix mais en USB3.0. Bien que le RPI ne soit pas encore à cette norme, pour la ré utilisabilité j'ai préféré investir les quelques euros de plus qu'un premier prix USB2.0. J'ai donc pris celui ci.


Boitier adaptateur pour disque dur 2'5.

Vieux PI modèle B




Concernant le raspberry pi, j'ai utilisé mon vieux PI modèle B que j'ai commencé à installé dans mes précédents articles. Donc pas de dépense pour ça. Mais si vous n'avez pas la possibilité d'en recycler un vous pouvez en acheter un tout neuf. Et dans ce cas prenez plutôt un RPI 3B+ de dernière génération. Tout ce qui est indiqué dans cet article fonctionnera sur tous les modèles de raspberry 1,2 ou 3.




Pré requis logiciels

Installation système 

En ce qui me concerne je vais partir d'un raspberry installé et configuré tels que je l'ai réalisé précédemment, donc d'un raspberry sur lequel le système est déjà fonctionnel et installé sur la carte SD. Et bien sur, je souhaite ne perdre aucune données. Par contre, si vous partez d'une installation initiale, le mode opératoire sera encore plus facile dans votre cas.
Assurez vous que vous avez une version de raspbian au moins aussi récente que celle du 10/04/2017 (a l'heure où j'écris cet article, nous en sommes à la version du 27/06/2018).

Normalement avec une version récente du système vous ne devriez avoir aucun problème pour coonfigurer le raspberry à booter sur le disque SSD. Si toutefois cela ne fonctionne pas où si vous version de l'OS est plus ancienne que celle recommandée, vous pouvez essayer de télécharger et remplacer dans la partition /boot de la carte SD, le fichier bootcode.bin avec sa dernière version que vous trouverez ICI.


Installation Samba


Pour la partie partage du disque en réseau il faudra que les logiciels liés au protocole Samba soient installés. Pour cela lancer la commande:


sudo apt-get install samba samba-common-bin

Configuration du boot sur SSD

Préparation du disque

En standard, un port USB du raspberry fourni environ 600mA à 5V. Soit une puissance de 3W. Mon disque SSD consommant 1,5W, il fonctionnera sans problème. Si vous utilisez un disque consommant plus de 3W (un disque dur "mécanique" par exemple) il vous faudra utiliser un HUB USB alimenté (comme CELUI-CI)  pour réaliser la connexion.



Lorsque vous aurez controlé que le disque pourra disposer d'une alimentation électrique suffisante, il va falloir le connecter sur un port USB du raspberry et vérifier qu'il est bien détecté par le système.

Sous Linux, les disques sont identifiés par un fichier placé sous /etc et qui se nome sda, sdb, ... Quand ce disque est partitionné, chaque partition porte un numéro (par exemple /etc/sda1 sera la partition 1 du disque /etc/sda).

Pour voir si le disque, une fois connecté, est bien vu par le système exécutez une des commandes suivantes (ou alors les deux pour être sur): 

sudo blkid sudo fdisk -l


Résultat de la commande blkid

Si comme ci-dessus, vous voyez une ligne avec quelque chose du genre /dev/sda (pour être sur, débranchez votre disque et vérifiez que sda a bien disparu du répertoire /dev), dans ce cas votre disque est bien reconnu mais n'est pas partitionné, ni formaté.

Par contre si vous voyez des lignes avec quelque chose du genre /dev/sda1 alors c'est que votre disque a déjà été partitionné (et surement formaté). Le type de partition est donné tout simplement par le champ "TYPE". Pour que votre disque puisse être vu depuis un PC sous Windows, il faudra que le champ type soit "vfat", "fat16", "fat32" ou "NTFS". D'autres types peuvent être reconnus par Windows. Le plus simple est d'essayer pour voir si votre disque est vu sur votre PC.
Si vous êtes dans ce dernier cas, vous pouvez utiliser votre disque tel quel et passer au paragraphe suivant. Sinon il va falloir le partitionner et le formater. Nous allons voir comment faire.

Le but ici est bien d'apprendre comment manipuler les disques nous Linux. Pour la suite de notre projet, nous allons simplement avoir besoin d'installer Raspbian sur notre disque SSD. Et nous pourrions tout simplement aller sous Windows, formater le disque s'il ne l'est pas et suivre la procedure d'installation décrite dans l'article ICI

Partitionner un disque signifie décomposer ce disque en "parts".  Si on compare un disque dur à une bibliothèque, partitionner signifie désigner les livres que l'on va mettre dedans ainsi que la taille de chacun. 
Formater un disque, ou plutôt une partition, signifie que l'on va créer une organisation dans notre partition. Pour reprendre l'analogie avec les livres, formater signifie que l'on va préparer les pages du livre pour qu'on puisse écrire dessus et surtout créer un index afin de pouvoir retrouver le contenu. Il existe un grand nombre de formats possibles. Windows ne reconnait pas le format des partitions Linux qui sont en général de type ext3 ou ext4. Donc si l'on connecte sous Windows un disque qui contient des partitions linux, ces dernières ne seront pas vues. A l'inverse, Linux reconnait et sait accéder aux partitions formatées pour Windows (FAT32, VFAT, NTFS, ...).

Partitionner le disque


Pour partitionner un disque sous linux, le plus simple selon moi est d'utiliser la commande cfdisk. Cette dernière va nous permettre d'accéder à une interface en mode texte qui va nous permettre de naviguer dans des menus et définir notre partition sans avoir à saisir de lignes de commandes complexes. Si votre disque est vu comme sda, il faut lancer la commande suivante:

sudo cfdisk /dev/sda

Nous accédons ensuite à un écran dans lequel il faudra naviguer avec les flèches du clavier.


Dans l'ordre voici ce qu'il faut faire:

  1. New: crée une nouvelle partition. Par défaut la taille proposée est la taille de tout le disque. Si vous souhaitez moins, dans ce cas entrez la taille que vous demandez, sinon validez par <entrée>.
  2. Choisissez entre "primary" et "extended". Mis à part si vous vous y connaissez et souhaitez mettre en place une organisation avancée du partitionnement de votre disque, je vous conseil de choisir "primary" (pour tout comprendre sur le système de partition d'un disque vous pouvez consulter CE site)
  3. Ensuite sélectionnez "Type"et indiquez le type de partition que vous souhaitez créer. Par défaut le type est "83 Linux". Si vous souhaitez un autre type de partition c'est ici qu'il faudra le définir. Dans notre cas, comme nous souhaitons accéder au disque depuis Windows, nous allons donner le type "c W95 FAT32 (LBA)". En fait il s'agit du type FAT32.  
  4. Sélectionnez "Write" pour écrire physiquement sur le disque le partitionnement que nous venons de définir. A la question posée validez par "yes" (attention car à ce moment tout ce qui était avant sur votre disque à de grandes chances d'être perdu).
  5. Ensuite quittez par "Quit".

Formater la partition

Le formatage de la partition va installer le système de fichier au format que nous allons choisir sur cette dernière. Si nous formations notre disque pour une utilisation sous linux nous utiliserions certainement le format "ext4". Qui est le format de système de fichier le plus récent. Mais puisque notre projet consiste à rendre visible le disque sous Windows, nous allons utiliser un format de système de fichier que Windows sait lire: le vfat. 
Il suffit simplement de lancer la commande:

sudo mkfs.vfat /dev/sda1

En adaptant bien sur sda1 à votre nom de disque et numéro de partition si c'est différent chez vous.
Attention car mkfs va supprimer tous les fichiers qui étaient sur le disque si vous en aviez. 

Pour voir si tout c'est bien passé il suffit de relancer la commande blkid et vous devriez vous quelque chose qui ressemble à ça:


Avec la partition sda1 que nous avons crée qui apparaît dans le bon format: vfat.

Pour finir, nous pouvons monter le disque pour y accéder depuis Linux. Pour cela il faut créer un répertoire, où vous voulez et associer ce dernier à notre disque de la manière suivante:

sudo mount -t vfat /dev/sda1 /home/shares/sda1

Le disque va être associé au répertoire /home/shares/sda1 et nous pourrons y accéder.

Configuration du boot

Maintenant que nous avons un disque utilisable aussi bien sous Windows que sous Linux, nous allons voir comment y installer le système d'exploitation de notre Raspberry (raspbian) et comment faire en sorte que ce soit ce dernier qui soit utilisé pour le boot plutôt que la carte SD.

Avant de continuer je vous conseil de mettre à jour le micrologiciel du PI en exécutant la commande:
sudo BRANCH=next rpi-update

Modification OTP et vcgencmd


L'OTP (One-Time Programmable) est une mémoire non volatile (donc qui ne s’efface pas quand on éteint l'appareil) et dont les registres ne peuvent être modifiés qu'une seule fois. Cette mémoire est constituée de 59 registres, chacun identifié par un numéro, dont on peut avoir la liste avec la commande:
sudo vcgencmd otp_dump

Ce qu'il faut savoir sur vcgencmd: 

  • vcgencmd signifie: 
    •  vc = VideoCore: c'est une série de processeurs graphiques utilisé dans les architectures ARM et produits par Broadcom.
    • gen = général 
    • cmd = commande
  • vcgencmd est donc une commande spécifique aux Raspberry (et peut être d'autres équipements à base de processeurs Broadcom) qui permet d'accéder à des ressources système de niveau matériel. 
  • "vcgencmd commands" est une commande qui permet d'afficher la liste des commandes disponibles sous vcgencmd
  • Pour tout savoir sur les commandes vcgencmd, c'est ICI
Lorsque le Raspberry va démarrer, ce n'est pas le processeur qui va être sollicité en premier mais le GPU. Au démarrage, le GPU est paramétré pour exécuter un programme qui est dans une mémoire ROM. Ce programme consiste juste à aller chercher le programme de boot (bootcode.bin) sur la carte SD (dans la partition FAT). Toutefois, sauf si on a modifié le registre 17 de l’OTP avec la bonne valeur, ce programme en ROM va tester s’il y a une carte SD opérationnelle et si ce n’est pas le cas, il va essayer de démarrer sur l’USB.

Lorsque nous aurons modifié le fameux registre de l'OTP, il ne sera plus possible de revenir à la valeur initiale.

Pour voir la valeur actuelle de ce registre, utilisez la commande:
sudo vcgencmd otp_dump |grep 17

Le résultat est: 17:1020000a

Pour modifier la valeur de ce registre, une procédure a été prévue par le constructeur. Il faut ajouter une ligne à la fin du fichier /boot/config.txt. Cette ligne c'est:
program_usb_boot_mode=1

Pour ce faire vous pouvez utiliser votre éditeur de texte préféré, ou alors exécuter la commande suivante:
echo program_usb_boot_mode=1 | sudo tee -a /boot/config.txt

Ensuite vous pouvez rebooter: 
sudo shutdown -r now

Une fois le raspberry à nouveau opérationnel, exécutons la commande:
sudo vcgencmd otp_dump |grep 17

Et cette fois, nous devrions avoir:
17:3020000a

Nous pouvons enlever la ligne supplémentaire qui a été ajoutée dans le fichier /boot/config.txt (mais ce n'est pas une obligation).

Si vous n'avez pas cette valeur, consultez le paragraphe ci-dessous "En cas de problème". Et si aucune des solutions ne fonctionne alors c'est que la méthode ne fonctionne pas sur votre modèle qui est certainement trop ancien.

Installation du système

Il nous reste à installer le système sur notre disque SSD (où tout autre support de stockage USB que vous aurez choisi).

Vous n'avez qu'a suivre la procédure d'installation classique qui est décrite dans CET article et:
    1. Allez au chapitre : L'installation de l'OS sur la carte SD
    2. Suivez les étapes 1 et 2.
Ensuite connectez le disque sur le raspberry, retirez la carte sd et allumez le PI. Si tout c'est bien passé, il boot sur le disque dur.

En cas de problèmes 


On peut raccourcir le délai de boot sur USB en insérant une carte micro SD vierge.


Si cela ne fonctionne pas voici des choses que vous pouvez essayer:


  1. Assurez vous que le périphérique USB est suffisamment alimenté. Cela semble évident mais une insuffisance d'alimentation est un des défauts les plus difficile à identifier car il a des conséquences aléatoires et sur des fonctions qui peuvent sembler indépendante de ce type de problème. 
  2. Téléchargez et installez sur une carte SD formatée en FAT32 le fichier bootcode.bin (SEUL) et démarrez votre RPI pour modifier le firmware.
  3. Essayez d’étendre la durée d’initialisation du disque (5s au lieu de 2s) avec l’option program_usb_timeout=1 dans le config.txt
  4. Ajoutez un fichier "timeout" (vide) en plus pour étendre la durée d’initialisation de 6s.



Si après toutes ces tentatives cela ne fonctionne toujours pas, c'est que votre périphérique USB (clé ou disque)  n'est pas compatible. Vous pouvez vous reporter à une autre méthode, plus ancienne décrite ICI. Par contre si le problème est que vous n'arrivez pas à changer la valeur du registre 17 de l'OTP pour obtenir 17:3020000a c'est que votre PI est surement trop ancien. Dans ce dernier cas il va falloir utiliser une autre méthode que je vais vous décrire ci-dessous.



Autre méthode pour booter sur un support USB

Comme son titre l'indique, nous allons voir dans ce chapitre comment booter sur un support USB lorsque la méthode précédente à échoué.
Même si cette seconde méthode existe et fonctionne, il faudra toutefois privilégier la précédente pour deux raisons:

  1. La première méthode est plus moderne! si si c'est un argument ;-)
  2. Cette seconde méthode ne permet pas de se passer totalement d'une carte SD dans le raspberry. Il faudra tout de même conserver une carte avec au minimum la partition FAT qui se trouve dessus lorsque l'on installe le système. 
Les pré requis pour cette méthode sont les mêmes que pour la méthode précédente. C'est à dire, essentiellement, disposer d'un support USB formaté pour Linux (idéalement avec un système de fichier ext4). 

Pour comprendre cette méthode, ce qu'il faut savoir c'est que lorsqu'on installe raspbian sur une carte SD, il y a deux partitions de créées:

  1. /dev/mmcblk0p1 qui est monté sur "/boot". Cette partition est de type FAT32 (donc accessible depuis Windows) et contient des fichiers qui vont servir à déterminer certains paramètres matériel et du noyau ainsi que lancer le démarrage du système (de Linux donc). 
  2. /dev/mmcblk0p2 qui est monté sur "/" (root) et qui est formaté pour Linux (donc pas accessible depuis windows) en général au format ext4. Root contient le système Linux avec toutes l'arborescence que vous connaissez (/home, /dev, /var, ...) 
Lorsque le raspberry démarre il va aller chercher des données dans la patition "/boot". Et parmi ces données, il va y avoir l'indication de la partition dans laquelle il va pouvoir lancer Linux. Cette information est stockée dans le fichier "cmdline.txt" derrière le champ "root".
Par exemple vous pouvez avoir quelque chose du genre root=/dev/mmcblk0p2 ou alors du genre root=PARTUUID=c5ac05a5-02.

Si vous avez compris cela, la suite va être limpide.

Commencez par préparer le disque (où la clé) USB en copiant dessus le système Linux qui est actuellement sur la carte SD. Pour ce faire on va utiliser la commande suivante:
sudo dd if=/dev/mmcblk0p2 of=/dev/sda1 bs=512

Bien sur il faudra adapter à votre propre nommage pour le disque USB s'il n'est pas en sda. Et également assurez vous que la partition sda1 ne soit plus montée: 
sudo umount /dev/sda1

Il va maintenant falloir indiquer au noyau que le système ne se trouve plus sur la carte SD mais sur la partition /dev/sda1. Pour cela, éditez le fichier /boot/cmdline.txt et modifiez après le champ root pour avoir:
root=/dev/sda1

Voici ce que contient mon fichier:
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/sda1 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait

La dernière chose à faire, sera de modifier le fichier /etc/fstab qui indique au système quelles partitions sont à monter au démarrage. En effet, dans le fichier actuel, il est indiqué que la partition /dev/mmcblk0p2 doit être montée sur "/" (root). Maintenant, root devra être associé à /dev/sda1

Attention toutefois, à ce stade, d'éditer le bon fichier. Car si vous avez suivi cette procédure jusqu'ici, vous devriez toujours être avec un montage "/" qui est sur "/dev/mmcblk0p2". Donc si vous éditez "/etc/fstab", ce sera celui qui est dans la partition de la carte SD et pas celle qui est sur le disque SSD. Pour accéder au disque SSD, il va falloir le monter sur un répertoire. Par exemple:
sudo mkdir /home/ssd
sudo mount -t ext4 /dev/sda1 /home/ssd
sudo nano /home/ssd/etc/fstab

Ensuite dans le fichier commentez la ligne qui permet de monter l'ancienne partition et ajoutez une ligne qui monte la nouvelle sur "/":
proc            /proc           proc    defaults          0       0
PARTUUID=c2d8e141-01  /boot           vfat    defaults          0       2
#PARTUUID=c2d8e141-02  /               ext4    defaults,noatime  0       1
/dev/sda1       /       ext4    defaults,noatime        0       1
# a swapfile is not a swap partition, no line here
#   use  dphys-swapfile swap[on|off]  for that

Ensuite rebootez et vérifiez que tout est bien monté en lançant la commande "mount".
Vous devriez voir (entre autres) les lignes:
/dev/sda1 on / type ext4 (rw,noatime,data=ordered)
/dev/mmcblk0p1 on /boot type vfat ....

La dernière chose à faire va consister à étendre la partition à toute la taille du disque. Pour cela, lancez la commande:
sudo resize2fs /dev/sda2

Et vérifiez que l'espace disponible correspond bien à la taille du disque
sudo df . -h


On récupère bien la taille de 111G qui correspond approximativement à la taille du SSD.







Partage du disque en réseau 

Maintenant que nous avons réussi à monter notre disque USB sur le Raspberry et faire en sorte que ce dernier boot dessus plutôt que sur sa carte SD d'origine, nous allons pouvoir partager cet espace sur notre réseau local afin que tout ordinateur puisse y accéder pour y chercher des données ou en stocker. Ainsi, pour une consommation plus que raisonnable, nous allons nous constituer un petit système qui, en plus de faire office de serveur domotique, de station de développement, va nous servir de NAS.

La consommation électrique de mon SSD (en utilisation continue) est de 1,5W. La consommation d'un RPI est au maximum pour le PI3B+ de 4W. Donc en arrondissant, nous avons une solution qui, si elle était utilisée de manière intensive 24h/24, consommerait 5Wh => soit 43,2kWh/an. Soit moins de 7€/an d'électricité. Mais dans la réalité, compte tenu de la mise en vieille du disque, ce sera plutôt moitié moins que cela.


Avant d'aller plus loin, si vous ne l'avez pas déjà fait, je vous conseil de suivre mon précédent article, ICI, qui décrit comment mettre à jour et configurer Raspbian. Allez jusqu'à l'installation de Samba mais arrêtez vous à la configuration car ici nous allons faire un peu différemment. Cela nous permettra de voir comment configurer Samba avec un peu plus de sécurités.


Toutefois si vous n'avez pas le courage d'aller relire tout cet article et que je suis sympa, je vais vous redonner rapidement la manip à faire.

Installation Samba

La mise en visibilité d'un espace disque local sur le réseau et surtout la possibilité d'y accéder depuis d'autres "clients" que le raspberry sur lequel ce disque est monté, est possible grace à un outil qui s'appelle Samba. Je dis un outil car lorsque l'on installe Samba on installe également un ensemble de logiciels et de services qui vont nous permettre de l'utiliser, mais à la base, Samba est un protocole de communication qui vient du protocole Windows SMB.



Pour installer Samba exécutez les commandes suivantes:

sudo apt-get update && sudo apt-get -y upgrade && sudo apt-get -y dist-upgrade && sudo rpi-update
sudo apt-get install samba samba-common-bin

Une fois l'installation terminée, vous pourrez déjà constater que le Raspberry est visible depuis les autres ordinateurs connectés au réseau local. Par exemple pour les PC sous Windows, dans "Ordinateur" vous voyez:

DOMOTICZ2V2 étant le sympathique petit nom que j'ai donné a mon raspberry. Par contre, en cliquant dessus, on se rend compte que l'on n'arrive pas encore à accéder à des répertoires. Pour cela il va falloir configurer Samba.

Configuration Samba

La bonne nouvelle, c'est que nous n'allons pas avoir besoin de monter (mount) des disques ou des partitions sous raspbian car l'espace que nous voulons partager est tout simplement l'espace du disque root du raspberry.
Toutefois, par mesures de précautions, nous n'allons pas ouvrir à tous la possibilité d'accéder partout sur ce disque. Nous allons juste autoriser l'accès à un répertoire que nous nommerons /home/sda1 et cela uniquement pour l'utilisateur "pi". C'est à dire que tous les clients qui souhaiteront utiliser ce disque réseau, devront s'identifier avec le mot de passe de "pi".

Création du répertoire de partage

Nous allons commencer par créer un répertoire qui sera partagé. Le but est que tous les clients, puissent lire, écrire et exécuter dans ce dossier.
Vous pouvez le créer où vous voulez. Pour ma part j'ai choisi de le mettre dans le dossier /home et de le nommer sda1 (pour me rappeler de quel disque il s'agit).
J'ai choisi aussi de laisser l'utilisateur "pi" comme propriétaire. D'où la commande chown qui permet d'affecter ce répertoire créé au nom de root à l'utilisateur pi et a son groupe.

sudo mkdir /home/sda1 sudo chown -R pi:pi /home/sda1

Configuration de Samba

On va modifier la configuration dans le fichier smb.conf. Par mesure de précautions on commence par en faire une sauvegarde.

sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.old sudo emacs /etc/samba/smb.conf
Remplacez emacs par nano ou votre éditeur de texte préféré.

Il faut ensuite modifier les paramètres dans le fichier de conf. Si vous êtes intéressés je vous laisse rechercher comment gérer avec précision la configuration de Samba. Pour ma part, je vais aller au plus simple:

Je ne garde que le début du ficher, c'est à dire tout ce qui se trouve dans la section [global] et je supprime toute les sections qui se trouvent après la ligne:
#======================= Share Definitions =======================

Une section commence toujours par un nom entre crochets (par exemple [section]). Ensuite il y a des définitions de paramètres concernant le comportement de la section. J'ai tout supprimé sauf la section [global].
Et ensuite je rajoute ma propre section, qui sera donc la seule et qui va définir le partage du répertoire sda1 que nous avons créé:

# AMD: section personnalisée pour ajouter l'accès au repertoire
# sda1 pour l'utilisateur pi
[sda1]
   comment = Partage sda1
   path = /home/sda1
   writable = yes
   username = pi
   only user = yes
   guest ok = no
   browseable = yes
   create mask = 0774
   directory mask = 0774

Pour finaliser la configuration, il va falloir déclarer à Samba l'utilisateur "pi" avec son mot de passe. Puis relancer le serveur avec la nouvelle configuration:

sudo smbpasswd -a pi sudo /etc/init.d/samba restart

Une fois le serveur relancé, on voit déjà sur le PC, en cliquant sur le nom du raspberry (ici DOMOTICZ2v2) que le partage du répertoire sda1 est visible:


Lorsque vous cliquez sur sda1, Windows va demander le login et le mot de passe du compte pour accéder. Entrez ces données (user=pi, mot de passe=votre mot de passe).
Et si tout c'est bien passé vous pouvez désormais accéder à ce dossier réseau et lecture écriture.

Pour faciliter les choses, le mieux est de transformer ce dossier en un lecteur réseau. Vous aurez alors accès à un nouveau disque sous Windows, comme si c'était un disque local, sauf qu'en réalité ce sera celui de votre raspberry.

Pour ce faire:
  • Clique droit sur sda1 et "Connecter un lecteur réseau".
  • Choisir une lettre qui sera associé au lecteur. J'ai pris S:\ comme Samba ou sda1. Cochez les cases se connecter à l'ouverture et aussi celle en dessous sur les information d'identification (login/password). Validez par <Terminé>.


  • Saisissez à nouveau le login et mot de passe de l'utilisateur "pi". Et cochez la case pour mémoriser ces informations. Cela vous évitera d'avoir à les saisir à chaque démarrage du PC.


  • Admirez le résultat en cliquant sur "Ordinateur". Vous verrez un nouveau disque présent (youpiii).









Une cerise sur le gateau et quelques liens utiles 

Cerise


Comme un bonheur ne vient jamais seul, si vous avez conservé votre carte SD dans le raspberry, vous allez pouvoir utiliser cet espace de stockage pour sauvegarder des données sensibles.
Par exemple si vous faites un peu de programmation ou que vous écrivez un roman, il serait dommage qu'une panne du disque dur vienne détruire à tout jamais votre travail.
En montant comme partition l'espace libre de la carte SD,

  • Toute la carte si vous avez utilisé la méthode 1 
  • L'ancienne partition "root" si vous avez utilisé la méthode 2. 
Vous allez pouvoir faire des sauvegardes régulières de vos données les plus sensibles. 



Liens

La dernière version de Raspbian: ICI.
Pour tout comprendre sur le système de partition d'un disque: ICI
Pour tout savoir sur les commandes vcgencmd, c'est ICI.
Tout sur les paramètres de configuration de Samba: ICI.

Pour faire vos achats 


Si vous cherchez des équipements compatibles avec les configurations décrites dans cet articles, vous pouvez vous les procurer en suivants les liens que je vous indique. Et je vous remercie d'avance pour la (petite) commission qui pourra m’être reversée (elle ne vous coûtera rien et ne mettra pas en péril le chiffre d'affaire des sites marchands 😊). Elle m'encouragera dans ma démarche de partager des connaissances et m'aidera à investir dans d'autres équipements.

HUB USB avec alimentation externe

AUKEY HUB USB 3.0 7 Ports

https://amzn.to/2oIVgS6
Depuis plus de deux ans, sans aucune interruption de service, j'ai un HUB USB équivalent à celui ci qui tourne pour alimenter un de mes serveurs domotiques sur Raspberry. Il alimente également un disque dur externe et me permet de partager d'autres équipements tels que des clés USB, une clé Zwave et un boitier RFXCOM 433Mhz.
En plus du partage d'équipement USB, il dispose de 3 ports de charge qui vous permettront d'alimenter le Raspberry mais aussi d'y connecter un téléphone qui vous servira de serveur SMS ou de bornes wifi (consultez mon article ICI si vous voulez des idées de réutilisation d'un téléphone dans le cadre d'une installation domotique).

Vous pourrez vous procurer ce HUB de qualité ICI.

Disque SSD

KingDian S280-120GB et boitier

KingDian S280-120GB

Ce modèle de disque low cost de 120G, pour le moment, me donne entière satisfaction. Vous le trouverez ICI.
Concernant le boitier, un premier prix (mais USB 3.0) fera également l'affaire. La qualité du plastique donne un aspect un peu "cheap" au produit mais les caractéristiques techniques et le prix correspondaient à mes exigences. J'ai donc pris CELUI-CI:

Boitier adaptateur pour disque dur 2'5.

Le Raspberry

 Pi3 B+

Si vous devez acheter un nouveau RPI, dans ce cas prenez plutôt un RPI 3B+ de dernière génération. Tout ce qui est indiqué dans cet article fonctionnera sur tous les modèles de raspberry 1,2 ou 3.

Avec un chargeur pas trop cher et qui délivre la puissance suffisante (2.5A/5V) que vous trouverez ICI. Attention toutefois à bien choisir le modèle avec une prise EU et un câble Micro USB. Si vous avez 1€ de plus à dépenser, alors prenez ce modèle ICI qui délivrera 3A en 5V, cela vous évitera d'avoir le petit éclair jaune qui clignote sous RPI3.






Soutenez la blogoculture ...


Le plus simplement du monde, si vous avez un achat à faire sur Amazon, accédez au site à partir de ce lien (que vous pouvez ajouter dans vos favoris)https://amzn.to/2nbe4sm





Soutenez la blogoculture ...


Le plus simplement du monde, si vous avez un achat à faire sur Amazon, accédez au site à partir de ce lien (que vous pouvez ajouter dans vos favoris)https://amzn.to/2nbe4sm


... mais aussi ...


Vous appréciez les articles frais et vitaminés de ce blog et vous voulez faire un geste pour encourager ce partage, saluer le travail, ou parce que vous y avez trouvé des choses utiles ( et que vous êtes sympa ) ?

... c'est possible et vous avez le choix !
Si vous avez un compte Paypal et quelques euros à offrir sans vous mettre sur la paille, subventionnez la culture domotique à l'ancienne !
Vous ne dépenserez pas un radis de plus en faisant un achat sur eBay à partir de ce lien.
Economisez du blé avec Amazon Prime ! Offre d'essais 1 mois gratuit (et renouvelable).
Soyez chou et aidez les petits producteurs de blog à se faire connaitre auprès de vos amis facebook !

Merci

Commentaires

  1. Très instructif et très pédagogique. Merci!

    RépondreSupprimer
  2. Très Intéressant Merci Pour l’astuce

    RépondreSupprimer
    Réponses
    1. Merci pour ce sympathie retours.

      Supprimer
    2. Bonjour, Pas sûr qu'après quatre ans depuis le dernier commentaire je sois entendu mais je tente ma chance. Ce tuto correspond parfaitement à mes besoinsn j'aurai quelques questions sur la gestion du disque ssd, à savoir est-il mieux de le partitionner Os/Datas en sachant que je souhaiterai mettre en Nas la partition Datas ou laisser le disque dans son intégralité.
      Cdt, Jean

      Supprimer
  3. Salut !
    Pour info, l'ancienne méthode est celle qui fonctionne avec le Pi 4.
    Testé avec succès.
    Seul changement, j'utilise les UUID des partitions. (évite le mélange sda/sdb).

    RépondreSupprimer

Enregistrer un commentaire