Raspberry Pi 4 et boot sur disque SSD

boot-ssd-raspberrypi4-domotique-jeedom-guide

Le raspberry Pi 4 est le nano ordinateur le plus puissant du marché. Véritable petit serveur avec son processeur  quad core 64 bits et ses 4 Go de mémoire. Seul bémol, cette nouvelle version ne permet pas de faire un boot depuis un stockage USB. Heureusement, un solution existe, nous allons donc vous expliquer comment démarrer le Raspberry Pi 4 sur un disque dur SSD pour des performances optimales.

Nous avions vu comment faire avec les générations précédentes de raspberry Pi. Toutefois, l’utilité d’un disque SSD avec les versions antérieures du nano ordinateur étaient limitées puisque le BUS USB limitait grandement les débits. Avec le RPi 4, les ports USB 3 permettent des débits importants et le disque SSD prend véritablement tout son intêret.LireComment installer Jeedom sur un disque dur SSD sur Raspberry Pi

Les prérequis

Pour commencer, il faut bien entendu un disque SSD. Evidement, cette procédure fonctionne également avec un disque mécanique, mais le SSD assure une rapidité d’exécution sans égale.

La préparation des supports

Téléchargez Raspbian Lite. La version allégée du système d’exploitation du Raspberry Pi. une version exempte d’interface graphique, plus stable et rapide. Parfait pour un Jeedom ou tout autre projet connecté à base de Raspberry Pi.

Télécharger Raspbian Lite

Téléchargez BalenaEtcher qui servira à installer Raspbian sur les supports. A la fois le disque SSD, mais également la carte SD qui va permettre de configurer l’installation.

Télécharger BalenaEtcher

Comme évoqué juste avant, il est nécessaire de réaliser la copie de Raspbian à la fois sur la SD et sur le SSD. Procédez alors à cette copie. Pour cela, pointez vers l’image décompressée dans la partie 1, choisissez la destination dans la partie 2, enfin lancez le flash en partie 3.

balena-etcher-flash-raspberrypi-4

Créez un fichier ssh sur la partition boot de la SD et du SSD. Un simple fichier, vide et sans extension. Ce fichier va tout simplement permettre d’activer le protocole SSH pour prendre la main sur le Rpi depuis un terminal sur un autre ordinateur. C’est ainsi que nous allons procéder à la configuration.

fichier-ssh-rasberrypi

Le premier démarrage et la connexion au Raspberry Pi1Maintenant que tout est prêt, nous pouvons démarrer le Raspberry Pi pour son premier lancement avec pour le moment UNIQUEMENT la carte SD sans le disque SSD, c’est important.

2Patientez le temps que le Raspberry Pi s’initialise et recherchez son adresse IP sur le réseau. Pour ce faire, vous pouvez regarder le dernier bail accordé par votre routeur dans la partie DHCP. Sinon, vous pouvez aussi utiliser l’application mobile Net Analyser qui permet de scanner le réseau domestique en quelques secondes. Vous y retrouverez rapidement votre RPI dans la liste.

3Maintenant que le Pi est démarré, connectez le disque SSD sur un port USB3 (port bleu).

4Vérifiez que le disque SSD est correctement reconnu par le Raspberry Pi. Ici, c’est la première ligne avec l’ID 152d:0578

lsusb-raspberrypi4-disque-ssd

Changer le PARTUUID

Entrons dans le vif du sujet, il s’agit à présent de jouer plusieurs lignes de commandes afin de configurer le disque SSD du Raspberry Pi pour qu’il accueille le système d’exploitation ainsi que les applications.1Jouez alors la commande suivante.

sudo fdisk /dev/sda2

L’utilitaire demande quelle commande utiliser, pour commencer, utilisez la commande p

Command (m for help): p3A l’issue de cette commande le terminal retourne plusieurs informations sur le SSD, on y voit par exemple la taille du disque SSD qui ne fait que 1,5Go alors que mon disque fait 64Go. Nous verrons par la suite comment étendre la partition pour bénéficier de toute cette capacité.

sda2-taille-command

4Utilisez à présent la commande x pour entrer dans le mode expert

Command (m for help): x

5Nous allons à présent changer l’ID du SSD pour que le Raspberry Pi ne confonde pas le SSD de la carte SD, car pour le moment les deux ont exactement le même ID. Pour ce faire tapez i

Expert command (m for help): i6Saisissez alors un ID pour le disque par exemple l’ID 0xd34db33f

Enter the new disk indentifier: 0xd34db33f

L’utilitaire retourne la bonne prise en compte de ce changement

changement-id-disque-ssd-raspberrypi copie

7Maintenant, terminez avec les commandes r et w pour enregistrer cette modification

Expert command (m for help): r Expert command (m for help): w

Un message de confirmation est alors affiché dans le terminal

raspberrypi-ssd-command-partition copie

8On peut alors vérifier que le changement est bien pris en compte avec la commande suivante

sudo blkid

Le retour de commande indique bien des ID différents pour la carte SD et pour le SSD.

sudo-blkid-raspberrypi copie

Modification du fichier cmdline.txt

Modifions à présent le fichier cmdline pour indiquer sur quel disque booter.1Pour commencer faites une copie du fichier qui pourra être restaurée le cas échéant

sudo cp /boot/cmdline.txt /boot/cmdline.txt.bak

2A présent, éditez le fichier

sudo nano /boot/cmdline.txt

3Recherchez PARTUUID et remplacez l’ID de la carte SD par celui que nous venons de créer pour le SSD

PARTUUID-raspberrypi-change
partuuid-raspberrypi-ssd

4Enfin terminez en enregistrant la modification avec la combinaison de touches control + x puis Yes.

5Maintenant, il est temps de rebooter le Rpi

sudo reboot6Effectuez un ping du Raspberry pi pour vérifier qu’il a correctement démarré. Si toutefois, le raspberry pi ne ping pas, c’est qu’il y a une erreur dans la modification du fichier cmdline.txt. Heureusement nous avons effectué une sauvegarde juste avant, il est alors possible de restaurer cette sauvegarde en connectant la carte SD à un PC.

ping-raspberrypi-ssd

7Après le redémarrage, vérifiez la bonne prise en compte du paramètrage avec la commande suivante.

findmnt -n -o SOURCE /

findmnt-result-ssd-raspberrypi

8A présent, il faut ouvrir le fichier fstab

sudo nano /etc/fstab

fstab-raspberrypi4-ssd

9Nous allons modifier le PARTUUID de la seconde ligne pour pointer vers notre disque SSD, tout simplement en indiquant l’ID du disque SSD que nous avons indiqué dans les premières étapes.

PARTUUID-disk-ssd-raspberrypi4-fstab

10Maintenant, il est temps de rebooter le Rpi une nouvelle fois.

sudo reboot

Redimensionner la partition1Après le redémarrage du RPi lancez la commande fdisk et déroulez les commandes comme suit.

fdisk-resize-partition-raspberrypi-ssd

2Un nouveau reboot pour appliquer ces nouveaux paramètres.

sudo reboot3Maintenant il faut patienter, cela peut prendre plusieurs minutes si le disque est de taille importante. Le système doit effectuer des vérifications suite à ce changement important de la taille de la partition.

4Lancez un ping permanent et patientez. Vous verrez que le disque travaille, sa LED clignote, il faut simplement être patient et attendre.

ping-wait-resize-partition

5Une fois le ping positif, reconnectez-vous au Raspberry pi en ssh et lancez la commande suivante.

sudo resize2fs /dev/sda2

resize2fs-extention-ssd-raspberrypi

6Enfin, vérifiez que la partition est correctement étendue avec la commande suivante.

df -h

La ligne /dev/root vous montre que le disque vient de passer au max de sa capacité, Le SSD est complètement exploité et la configuration est terminée.

raspberrypi4-exted-partition

Et après ?

C’est terminé, le système du Raspberry Pi 4 est à présent complètement exécuté depuis le disque SSD. La carte SD n’est finalement utilisée que pour le boot. Elle reste donc très très peu sollicitée, et gagne grandement en longévité.

En attendant un support natif du boot sur USB, voilà un workaround bien utile pour vos projets domotiques à base de Raspberry Pi 4. Il est donc enfin possible d’installer jeedom sur un disque SSD tout en bénéficiant de la puissance du Raspberry pi 4. De quoi monter un serveur domotique parfaitement fiable, rapide et robuste.