🛠 Boot sur SD ou USB et procédure de recouvrement
Objectifs
Comprendre la chaîne de démarrage de la 3B+ : contrairement aux Pi 4/5, elle n'a pas d'EEPROM de boot — le premier étage bootcode.bin est lu sur la partition de démarrage de la carte microSD, et le ROM du BCM2837B0 sait aussi démarrer sur stockage USB et sur le réseau (PXE activé par défaut). Vous saurez écrire une image, basculer SD vers USB, et récupérer une carte dont la partition boot est corrompue.
Matériel
- Carte type Raspberry Pi 3 Model B+ + alimentation 2,5 A
- 1 microSD (8 Go+) et/ou 1 clé/disque USB alimenté
- Un autre ordinateur avec Raspberry Pi Imager (ou Etcher/
dd) - Lecteur de cartes USB pour la récupération
Code complet
# 1. Écrire une image (depuis le poste de travail)
imager write --device /dev/sdX raspberry-pi-os-lite.img # ou Imager graphique
# Verifier le device AVANT : lsblk ; dd efface sans prevenir.
# 2. Boot USB : la 3B+ tente le microSD puis le stockage USB.
# Graver la même image sur la cle ; retirer la carte SD pour forcer l'USB.
# 3. Recouvrement d'une partition boot corrompue :
# - monter la partition FAT sur le poste de secours
sudo mount /dev/sdX1 /mnt
# - restaurer uniquement les fichiers de boot (kernel + bootcode.bin)
sudo cp -n /mnt-recouvre/boot/* /mnt/ 2>/dev/null || true
# - ou réécrire bootcode.bin / start.elf depuis une image propre
sync && sudo umount /mnt
# 4. PXE (boot réseau) : actif par defaut sur 3B+ (ROM BCM2837B0).
# Cote serveur : dnsmasq + TFTP avec les fichiers de boot en racine TFTP.
Vérification attendue
Avec l'image gravée, la carte démarre (LED d'activité, SSH joignable). Sans carte SD mais avec la clé USB gravée, elle démarre aussi. Après recouvrement, la LED verte refinit par un motif normal et uname -a répond en SSH. Une LED verte éteinte = pas de bootcode.bin lu ; clignotements réguliers = kernel introuvable.
Erreurs fréquentes
- Écrire l'image sur /dev/sdX1 (partition) au lieu du disque entier : la table de partitions est détruite.
- MicroSD contrefaçon ou usée : boot aléatoire, corruption — tester avec
f3ou une carte neuve de marque. - Croire à une EEPROM :
rpiboot/recovery EEPROM ne s'applique pas à la 3B+ ; le recouvrement passe par les fichiers de la partition boot. - Clé USB trop gourmande : le budget total des 4 ports USB est 1,2 A ; un disque 2,5" sans alimentation externe fait chuter la tension.
- Laisser l'ancien /etc/machine-id dupliqué sur des dizaines d'images clonées :
sudo systemd-machine-id-setupaprès clonage. - Éteindre en pleine écriture SD : la corruption vient le plus souvent de là — utiliser
sudo poweroff.
Autres tutoriels pour cette carte
Exemples de code pour cette carte
led_blink.pyPythonbutton_led.pyPythonservo_sweep.pyPythondht_temp.pyPythonoled_i2c.pyPythonmcp3008_read.pyPython