Ajout d’un Disque Dur à ma box domotique Jeedom

J’ai fait moi même ma box e domotique, en utilisant un Raspberry Pi, un rfxcom, un dongle z-wave et un joli boitier autour. Mais maintenant il faut passer aux choses sérieuses, ajouter un disque dur…

Pourquoi un disque dur?

Unix-GeekMa box domotique est une box “faite maison” avec un Raspberry Pi et sa carte SD ou est installé un système ubuntu avec Jeedom. Vous allez me dire, jusque là tout va bien. Et bien pas tout à fait, en effet les cartes SD ne sont pas vraiment destinées à subir de nombreuses écritures.

Comme le système réside sur la carte SD, il écrit beaucoup sur la carte (écriture dans la base de données, écriture sur de simple fichier, etc…). Il est donc possible qu’à terme tout cela finisse mal avec des secteurs de la carte défectueux et Boom, le système de fichiers est corrompu.

 

 

 

 

La solution.

La solution est donc d’installer le système sur un vrai disque dur. Pour cela j’ai acheté le disque dur dédié Raspberry PI par western digital: le PiDrive:

timthumb

En fait il s’agit simplement d’un disque dur de 314Go avec un controller USB. J’ai donc ajouté à mon panier les cables pour le connecter et me voilà prêt à mettre mon système sur ce disque dur.

Installation

La première étape consiste à brancher le disque dur et à vérifier qu’il fonctionne bien. Une fois branché, il se met à clignoter en blanc et on peut vérifier qu’il est bien détecté:

$> sudo fdisk -l
Device Boot Start End Sectors Size Id Type
/dev/mmcblk0p1 8192 131071 122880 60M c W95 FAT32 (LBA)
/dev/mmcblk0p2 131072 60751871 60620800 28.9G 83 Linux

Disk /dev/sda: 292.5 GiB, 314038026240 bytes, 613355520 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Parfait mon nouveau disque est bien détecté sur /dev/sda

Il faut maintenant le partitionner. j’ai choisi de faire les partitions suivantes:

  • une partition de 4Go de swap
  • le reste sera ma partition pour le système

un cfdisk me permet de créer mes partitions:

$> sudo cfdisk /dev/sda

Une fois terminé on vérifie le résultat:

$> sudo fdisk -l
Device Boot Start End Sectors Size Id Type
/dev/mmcblk0p1 8192 131071 122880 60M c W95 FAT32 (LBA)
/dev/mmcblk0p2 131072 60751871 60620800 28.9G 83 Linux

Disk /dev/sda: 292.5 GiB, 314038026240 bytes, 613355520 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 0197BEF7-AB4D-436B-BAC3-CFF3DA685EE4

Device Start End Sectors Size Type
/dev/sda1 2048 8390655 8388608 4G Linux swap
/dev/sda2 8390656 613355486 604964831 288.5G Linux filesystem

Tout ce passe merveilleusement, reste donc à formatter mes 2 partitions:

$> sudo mkswap /dev/sda1
$> sudo mkfs.ext4 /dev/sda2

Et voilà la disque est prêt.

Transfert du sytème.

penguins1

Cette étape consiste simplement à prendre le système installé sur la carte SD et à la transférer vers le disque dur. Le détail de toutes les opérations nécessaires est disponible sur le site de Franboise314

Pour le détail, je vous laisse consulter le site Franboise314, mais voici les étapes pour transférer le système vers votre disque dur:

1- vérifier que le disque dur n’est pas monté.

Dans les étapes précédentes nous avons formaté le disque mais nous n’avons pas monté les partitions. Il ne faut pas les monter pour cette prochaine étape qui consiste à copier block à block la carte SD vers le disque dur.

2- copie des données

Nous allons donc copier les données de la SD vers le disque dur, pour cela nous allons utiliser la commande dd qui copy block à block les données.

$> sudo dd if=/dev/mmcblk0p2 of=/dev/sda2 bs=512

NB : cette commande n’affiche rien sur la sortie standard et prend un peu de temps. Si vous voulez voir la progression, dans une autre console, vous pouvez taper:

$> sudo kill -USR1 $(pgrep ^dd)

Cela aura pour effet d’afficher la progression dans la première console, celle ou la commande dd est exécutée.

$> sudo dd if=/dev/mmcblk0p2 of=/dev/sda2 bs=512
6925761+0 records in
6925760+0 records out
3545989120 bytes (3.5 GB) copied, 232.1 s, 15.3 MB/s
11535809+0 records in
11535808+0 records out
5906333696 bytes (5.9 GB) copied, 458.983 s, 12.9 MB/s
...

3- montage de la partition ou le système est copié

La copie terminé, vous pouvez monter la partition pour vérifier que l’opération à bien réussie:

$> sudo mkdir /home/pi/new_system
$> sudo mount -t ext4 /dev/sda2 /home/pi/new_system

Un ls pourra vous donner la liste des fichiers

4- modification des fichiers de boot

Il faut maintenant faire 2 choses: d’abord dire ou se trouve le système et ensuite monter nos nouvelles partitions.
On va commencer avec le fichier /boot/cmdline.txt:

$> sudo nano /boot/cmdline.txt

Ici il faut remplacer /dev/mmcblk0p2 par /dev/sda2 pour signifier que le système se trouve sur cette partition. Le fichier final contient donc:

dwc_otg.lpm_enable=0 console=tty1 root=/dev/sda2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait

Nous allons ensuite monter automatiquement les partitions sda1 et sda2, pour cela nous allons éditer le fichier fstab:

$> sudo nano /home/pi/new_system/etc/fstab

Ici il faut commenter la ligne de montage de /dev/mmcblk0p2 et ajouter une ligne pour monter /dev/sda2 sur /. Par la même occasion, je monte ma partition de swap et passe la partition de boot en read only. Le fichier devient donc:

proc /proc proc defaults 0 0
/dev/mmcblk0p1 /boot vfat defaults,ro 0 2
#/dev/mmcblk0p2 / ext4 defaults,noatime 0 1
/dev/sda2 / ext4 defaults,noatime 0 1
UUID=86839f25-857a-4f78-9d68-fb548142f0a7 none swap sw 0 0

Pour trouver l’UUID de votre partition de swap, je vous conseille d’utiliser la commande suivante:

$> sudo blkid /dev/sda1

5- rebooter

Et voilà c’est fini, un petit reboot et votre Rpi est muni d’un système qui tourne sur un disque dur… nous voilà maintenant avec un environnement bien plus fiable.

22 thoughts on “Ajout d’un Disque Dur à ma box domotique Jeedom

  • Pingback: Sauvegarde simple de Domoticz sur NAS Synology – So-Domotic.fr

  • Pingback: Sauvegarde automatique de Jeedom sur un NAS Synology – So-Domotic.fr

  • Pingback: Le piDrive (western digital) connecté à mon Raspberry bipe de façon aléatoire. – So-Domotic.fr

  • 30 septembre 2016 at 21 h 31 min
    Permalink

    Bonjour,
    Le tuto est très bien détaillé, néanmoins je ne parviens pas à faire le transfert sur le pidrive. Le raspi (3) démarre correctement sur ce dernier mais je ne parviens plus à me connecter par l’interface web. Une idée du problème? Merci d’avance

    Reply
  • 10 décembre 2016 at 9 h 47 min
    Permalink

    Bonjour

    Tuto nickel…

    Je rajouterais juste qu’il est préférable d’arrêter les services “jeedom” ( apache, mysql…) avant de copier la carte mémoire sur le disque dur :
    sudo systemctl stop cron
    sudo systemctl stop apache2
    sudo systemctl stop mysql

    Cela peux éviter les problèmes de corruption des tables mysql.

    Reply
    • 10 décembre 2016 at 13 h 37 min
      Permalink

      Merci jeromino69 pour ton complément d’information. En effet c’est préférable.

      Reply
    • 6 janvier 2017 at 8 h 34 min
      Permalink

      Bonjour,
      Peut-être aurais-je dû lire ceci avant de suivre le tuto …
      Je me retrouve avec un problème sur Mysql (semble-t-il) …
      SQLSTATE[HY000] [2002] Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)

      Et quand j’essaie de lancer mysql via la console, ça me met
      Failed to start LSB: Start and stop the mysql database server daemon.

      Quelqu’un aurait une idée pour m’aider (oui, je suis super newby) ?
      Merci d’avance

      Reply
      • 9 janvier 2017 at 23 h 04 min
        Permalink

        Bon … pas de solution, j’ai retenté une install from scratch …
        Même avec l’arrêt des service mysql etc… je retombe sur le même problème …
        Je vais tenter une autre approche … installer d’abord raspbian sur sd, puis tout transférer sur hdd, puis installer jeedom à partir de là … on sait jamais, sur un malentendu, ça peut marcher …

        Reply
  • 4 février 2017 at 9 h 36 min
    Permalink

    NB : manque aussi la commande qui permet d’étendre le filesystem / sur l’ensemble du nouveau disque. Comme fait sur la carte SD via la commande raspi-config puis expand filesystem il faut ici taper la commande suivante :

    sudo resize2fs /dev/sda2

    le point de montage /dev/root fait bien maintenant la bonne taille ( et plus celle de la carte mémoire)

    Reply
  • 7 février 2017 at 12 h 40 min
    Permalink

    Je viens de lire le tuto, j’ai hâte d’essayer avec mon picdrive qui l’attendait

    Reply
  • 7 février 2017 at 21 h 07 min
    Permalink

    Parfait, le tuto, j’ai du cependant créer les répertoire à la main la commande
    sudo mkdir /home/pi/new_system
    n’a pas fonctionné

    Jeedom m’a cependant fait un erreur au démarrage
    quel type de cache faut il privilégier :
    1/ systéme de fichier /tmp/jeedom-cache
    2 / memcache

    Reply
    • 8 février 2017 at 9 h 03 min
      Permalink

      Damned….j’ai parlé trop vite, ce matin Jeedom dit “droit sudo” en erreur, puis en cascade tous les plugins en erreur

      Reply
  • 15 mars 2017 at 15 h 44 min
    Permalink

    Bonjour Vincent,

    Ni pro linux, ni pro RPI, j’aimerai suivre ce tuto pour transferer mon jeedom sur PIdrive afin d’avoir une solution plus fiable.
    les commentaires ci dessus me repoussent un peu, possibilité de me confirmer la possibilité de suivre ton descriptif à la lettre ?

    En te remerciant.

    Reply
    • 22 mars 2017 at 21 h 01 min
      Permalink

      De mon coté

      1/ remplacer
      sudo nano /home/pi/new_system/etc/fstab
      par
      sudo /etc/fstab

      2/ne pas être tenté de faire un swap trop gros sur le pidrive, car cela ne fonctionne pas

      3/ Pour prévoir le futur ne pas faire la partition sda2 trop grosse pour pouvoir faire un transfert sur un disque de plus petite taille ou SDD dans le futur sans avoir a redimensionner la partition

      Reply
      • 13 mai 2017 at 14 h 17 min
        Permalink

        Bonjour,
        je vais faire la manip, c’est pour savoir si tout fonctionnement bien maintenant avant de me lancer. 😉

        Reply
        • 13 mai 2017 at 19 h 18 min
          Permalink

          Bonsoir. Depuis cette manip, je n’ai plus aucun problème. Je la conseille largement.

          Reply
          • 14 mai 2017 at 11 h 34 min
            Permalink

            Merci bien c’est chose faite, moi j’ai du

            remplacer sudo nano /home/pi/new_system/etc/fstab
            par
            sudo nano /etc/fstab

            et je n’ai pas fait le 3- montage de la partition ou le système est copié

            sda1 de 4Go
            sda2 de 20Go pour faciliter le passage vers SSD

            Système rebooté ce matin pour l’instant RAS, on voit bien que c’est le pidrive qui travaille (led du pidrive qui clignote)

            Merci pour ce tuto

  • 28 juin 2017 at 8 h 15 min
    Permalink

    Bonjour,
    Comment faire une sauvegarde de jeedom qui se trouve sur le pidrive comme un clone de carteSd ?
    Avec le passage de jeedom en 3.0, je préfère prendre mais précautions.
    Pour information je suis novice sous Linux. (RPI3 jeedom sur PIDRIVE)
    Par avance merci

    Reply
  • 24 décembre 2017 at 11 h 25 min
    Permalink

    Bonjour,
    Merci pour ce tuto qui s’est déroulé à merveille.
    Depuis que j’ai ce disque dur WD mon Jeedom ne plante plus.
    J’ai cependant un petit souci: la page “Santé” de mon Jeedom m’indique:
    ESPACE DISQUE LIBRE 8%
    Il semblerai que ce soit l’espace sur la carte SD ?
    Je ne comprends pas, le disque fait 340 Gi.
    çà vient d’où ?
    Je précise que je boote toujours sur la carte SD.
    Je ne sais pas booter sur le DD.

    Reply
  • 10 avril 2018 at 9 h 41 min
    Permalink

    Bonjour,
    Je n’arrive pas à suivre le tuto ! je ne comprend pas d’où vient le problème !
    la commande “”udo mount -t ext4 /dev/sda2 /home/pi/new_system”” me renvoie l’erreur “”mount: /dev/sda2: can’t read superblock””
    Une idée ?
    Bonne journée

    Reply
  • 8 mai 2018 at 15 h 03 min
    Permalink

    Bonjour
    Fait ce jour sur pi3 sans problème (je n’ai juste pas fait la modification du swap).
    Merci pour le tuto 🙂 .

    Reply
  • 27 avril 2019 at 13 h 19 min
    Permalink

    Hello!
    j’ai suivi ce tuto + les commentaires, car effectivement il y a des choses à ne pas oublier.
    – étape 2, arrêter les services et lancer la copie bloc/bloc avec progression intégrée plutôt qu’un 2eme tty ouvert c’est mieux, voilà la commande entière:
    sudo systemctl stop cron && sudo systemctl stop apache2 && sudo systemctl stop mysql && sudo dd if=/dev/mmcblk0p2 of=/dev/sda2 bs=512 status=progress

    – à la fin de l’étape 3, il faut faire le resize:
    sudo resize2fs /dev/sda2
    maintenant on a la bonne taille quand on fait un df 😉

    une petite maj de larticle serait top 😉
    merci bien en tout cas !

    Reply

Laisser un commentaire

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