J’ai récemment dû ajouter un disque dur externe sur un de mes Raspberry, je me suis donc demandé comment déplacer tout le système sur le disque dur et ne plus utiliser de carte SD. Je l’avais déjà fait il y un environ 2 ans sur l’autre Rasp Pi, mais je me souvenais plus de la démarche. J’ai trouvé une solution très simple avec rpi-clone, un petit soft qui va copier l’intégralité de votre carte SD sur le périphérique USB, partitions incluses.
Pourquoi boot sur HDD ou SSD ?
Utiliser un disque dur ou un SSD pour votre Raspberry a comporte plusieurs avantages. Le premier étant la performance. Même s’il existe aujourd’hui des cartes SD avec des débits de lecture et d’écriture relativement importants, celles-ci coûtent plus chères qu’un disque dur externe, ce n’est donc pas forcément un choix très rentable.
Outre le gain de place évident, notamment si vous utilisez votre Raspberry comme un NAS, les nombreuses écritures du système réduisent considérablement la durée de vie votre carte SD, encore plus si votre Raspberry reste allumé 24/7. Vous pouvez trouver des disques externes d’1TO pour une quarantaine d’euros, ce qui en termes de rapport qualité/prix est très intéressant comparé à une carte SD.
Nous allons commencer par la solution consistant à utiliser Raspberry Pi Imager.
Configurer le bootloader avec Raspberry Pi Imager
Pour commencer, il faut télécharger Raspberry Pi Image sur le site officiel. Munissez vous ensuite d’une carte SD vierge, car les données seront effacées au cours du processus.
Si vous souhaitez utiliser la carte SD qui contient votre système, veuillez commencer par effectuer la copie de carte SD sur le disque dur avec rpi-clone.
Sélectionnez la version correspondant à votre modèle.
Ensuite, dans la partie système d’exploitation, rendez-vous sur Misc utiliy images puis Bootloader (Pi X family)
Choisissez ensuite l’option qui vous convient le mieux. Dans notre cas, la deuxième, qui est USB Boot
Il ne vous reste plus qu’à sélectionner votre carte SD pour écrire dessus. Vous pouvez maintenant démarrer votre Raspberry avec cette carte SD, la mise à jour du bootloader se fera de manière automatique.
Vous pouvez savoir que le bootloader de votre Raspberry Pi a été mis à jour avec succès grâce à deux indicateurs :
- La LED d’alimentation de votre Raspberry Pi clignote en permanence.
- Si un câble HDMI est branché, le Raspberry Pi doit afficher un carré vert sur l’écran.
Si vous voyez l’un ou l’autre de ces signes, vous pouvez maintenant débrancher votre Raspberry Pi et insérer votre carte SD d’origine et passer à la copie des données avec rpi-clone. La partie suivante concise à faire la mise à jour en lignes de commandes.
Mise à jour du firmware manuellement
Avant de créer le clone de notre carte SD et de changer l’ordre de boot, nous allons mettre à jour notre système ainsi que le firmware
sudo apt update sudo apt full-upgrade
Nous mettons à jour le firmware
sudo rpi-update
On redémarre le Raspberry pour que la mise à jour soit bien appliquée
sudo reboot now
Mise à jour et paramétrage du bootloader
On se reconnecte au Raspberry en SSH et on lance la mise à jour
sudo rpi-eeprom-update -d -a
Dans mon cas le bootloader est déjà à jour
On ouvre maintenant l’interface de configuration du Raspberry
sudo raspi-config
On se dirige ver A7
On sélectionne E1 pour utiliser la dernière version installée
Attention, bien sélectionner NO pour ne pas reset
Nous allons maintenant changer l’ordre de boot dans le menu A6
Ici nous demandons au Raspberry de démarrer via USB en premier et de n’utiliser le slot de la carte SD uniquement s’il ne trouve pas de périphérique pour boot en USB. À noter qu’après avoir complété le tuto, vous pourrez retirer la carte SD
On peut maintenant passer au clonage
Installation de rpi-clone
Nous allons copier le code depuis GitHub
git clone https://github.com/billw2/rpi-clone.git cd rpi-clone sudo sudo cp rpi-clone rpi-clone-setup /usr/local/sbin
C’est fini pour l’installation
Arrêt des services
Avant de faire la copie nous allons arrêter des services susceptibles d’avoir un impact sur la sauvegarde, comme MySQL ou CRON, voici une liste non exhaustive
sudo systemctl stop apache2 sudo systemctl stop nginx sudo systemctl stop mysql sudo systemctl stop cron sudo systemctl stop telegraf sudo systemctl stop influxdb
Clonage de la carte SD sur le périphérique USB
Pour lancer le clonage vers un périphérique USB
sudo rpi-clone sda
Exemple d’une utilisation du script (ce n’est mon rendu, je n’ai pas pensé à copier l’output lorsque j’ai effectué la manip)
Booted disk: mmcblk0 15.8GB Destination disk: sda 64.2GB --------------------------------------------------------------------------- Part Size FS Label Part Size FS Label 1 /boot 58.4MB fat16 -- 1 104.4MB fat32 -- 2 root 15.8GB ext4 SD-RPI-16N 2 16.8GB ext4 Samsung 64GB A 3 47.3GB ext4 -- --------------------------------------------------------------------------- == SYNC mmcblk0 file systems to sda == /boot (22.5MB used) : SYNC to sda1 (104.4MB size) / (5.9GB used) : SYNC to sda2 (16.8GB size) --------------------------------------------------------------------------- Run setup script : no Verbose mode : no -----------------------: Ok to proceed with the clone? (yes/no):
À la fin du du script il vous sera demandé d’effectuer une action pour finaliser le processus en faisant un input pour démonter le périphérique.
À partir de maintenant vous pouvez éteindre le Raspberry, retirer la carte SD et démarrer sur votre disque dur ! N’oubliez pas de relancer les services arrêtés plus tôt qui ne seraient pas en enable et donc pas démarrés après un reboot.
Pour plus d’informations sur rpi-clone, je vous invite a aller voir la documentation faite par le créateur du script. Elle présente plusieurs cas de figures. Si vous souhaitez accéder à votre Raspberry depuis internet, , je vous explique comment faire dans cet article
7 réflexions sur “Démarrer Raspberry Pi 4 et 5 depuis disque dur, SSD, clé usb”
merci pour ce tuto, très bon travail.
Bonjour.
J’ai essayé sur un raspberry PI 5 : ca ne marche pas. Après le reboot, j’ai bien la mire raspbian mais juste après, je bascule sur un shell BusyBox … Et je ne m’en sors pas.
Comme les commandes sont celles pour un PI4, il doit manquer certainement quelque chose.
Bonjour,
J’ai fait une mise à jour de l’article pour ajouter la solution qui consiste à passer par Raspberry Pi Imager
Bonjour,
exactement le même soucis et j’ai déjà essayé plusieurs autres solutions !
Sais plus quoi faire
Pi Imager ne crée pas un clone de la carte sd mais installe Pi os
Bonjour,
le programme avec (sudo rpi-eeprom-update -d -a) c’est pour un PI4 ou Pi5 mais pas pour un Pi3B
Salutations.
Bonjour, effectivement je n’ai pas précisé mais le tutoriel a été écrit avec un Raspberry Pi 4