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
8 réflexions sur “Démarrer Raspberry Pi 4 et 5 depuis disque dur, SSD, clé usb”
Bonjour,
Après Appui sue la Touche Espace, Moi, j’ai un écran Vert Avec les Choix :
0 = DEFAULT
1 = Bot SD
2 = Boot Network
4= Boot Sur USB-MSD
Quand j’appuie par exemple sur 4, rien ne se passe !!!!!
Au fait comment fais-t-on pour avoir le Mode Terminal, afin de rentrer des Commandes de mise à Jour ?
Merci Mille Fois à celui qui me donne la Solution.
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
Articles de la même catégorie
Gestion des utilisateurs sur Linux
La gestion des comptes utilisateurs est l’un des nombreux défis que doivent relever les administrateurs système Linux. Parmi les responsabilités d’un administrateur système figurent l’activation/désactivation
Monter un disque sur Linux avec systemd (et sans fstab)
Pour monter un disque au boot d’une machine sur Linux, on utilise régulièrement fstab. Cette solution fonctionne très bien, mais elle a quand même un
Qu’est-ce qu’un VPN et pourquoi l’utiliser ?
Cet article n’est aucunement sponsorisé au contraire de la vaste majorité de ce que vous trouverez dans les premiers résultats de votre moteur de recherche.