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?
Ma 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:
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.
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.
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
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
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.
Merci jeromino69 pour ton complément d’information. En effet c’est préférable.
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
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 …
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)
Je viens de lire le tuto, j’ai hâte d’essayer avec mon picdrive qui l’attendait
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
Damned….j’ai parlé trop vite, ce matin Jeedom dit “droit sudo” en erreur, puis en cascade tous les plugins en erreur
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.
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
Bonjour,
je vais faire la manip, c’est pour savoir si tout fonctionnement bien maintenant avant de me lancer. 😉
Bonsoir. Depuis cette manip, je n’ai plus aucun problème. Je la conseille largement.
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
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
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.
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
Bonjour
Fait ce jour sur pi3 sans problème (je n’ai juste pas fait la modification du swap).
Merci pour le tuto 🙂 .
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 !