🛠 Boot sur SD, partitions et procédure de recouvrement
Objectifs
Comprendre la chaîne d'amorçage atypique du Model B Rev 1 et savoir remettre une carte hors service en état. Particularités : pas d'EEPROM ni de configuration de boot OTP, donc pas d'amorçage USB — le ROM du VideoCore charge bootcode.bin directement sur la partition FAT de la carte SD (format standard, pas microSD). Le recouvrement se résume à re-flasher la carte. Vous apprendrez à écrire une image, à diagnostiquer un échec de boot par les LED, et à sauver vos données avant re-flash.
Matériel
- Raspberry Pi Model B Rev 1 + carte SD format standard (la seule mémoire de boot/root de la carte)
- Lecteur de cartes SD sur un PC, image Raspberry Pi OS legacy 32 bits (Buster)
- balenaEtcher / Raspberry Pi Imager /
ddsur le PC - Un second Linux (ou une autre carte) pour la récupération de données.
Code complet
# 1) Écrire l'image sur la SD depuis le PC (vérifier le disque !)
sudo dd if=2021-05-07-raspios-buster-armhf.img of=/dev/sdX bs=4M status=progress conv=fsync
sync
# 2) Diagnostic d'un boot qui échoue (LED verte du Pi) :
# eteinte ou clignotements irreguliers = carte lisible mais image invalide
# clignote normalement puis fixe = kernel charge
# 3) Sauver ses données AVANT re-flash : monter la partition root
# sur un autre Linux (la partition 2 est ext4)
sudo mount /dev/sdX2 /mnt && cp -r /mnt/home/pi /salvegarde && sudo umount /mnt
# 4) Recouvrement minimal : reecrire seulement la partition FAT de boot
# (bootcode.bin, start.elf, config.txt) si le rootfs est sain
ls /mnt # doit contenir bootcode.bin, start.elf, config.txt, fixup.dat
Vérification attendue
Après re-flash, la LED verte clignote de façon régulière au démarrage puis la carte démarre sur le bureau/terminal. lsblk sur le Pi montre la partition root étendue au premier redémarrage. En cas de carte morte : aucun clignotement de la LED verte, testez un autre emplacement SD et une autre carte.
Erreurs fréquentes
- Tenter un boot USB : explicitement indisponible sur le Pi original, contrairement aux modèles récents avec EEPROM.
- Écrire l'image
.img.xzcompressée au lieu de l'image décompressée (certains outils le font,ddnon). /dev/sdXau lieu de/dev/sdX1est correct pourdd, mais une lettre de disque erracée efface le PC : vérifier aveclsblkavant.- Carte SD usée : les vieilles SD des Pi 1 meurent souvent ; symptômes = fichiers corrompus aléatoires, re-flash qui ne corrige rien.
- Modifier
config.txtavec des options de modèles récents (overclock extrême) : le Pi refuse alors de démarrer, retirer la SD et relancer sur un PC pour réparer le FAT.
Autres tutoriels pour cette carte
- Allumer une LED via le GPIO avec libgpiod
- Lire un bouton poussoir et afficher l'état dans la console
- Premier script Python : faire clignoter la LED
- Variation d'intensité LED avec le PWM matériel (et son piège)
- Lire un capteur I2C (température/humidité) sur le bus 1
- Configurer l'Ethernet 10/100 et piloter le Pi en SSH
Exemples de code pour cette carte
led_blink.pyPythonbutton_led.pyPythonservo_sweep.pyPythondht_temp.pyPythonoled_i2c.pyPythonmcp3008_read.pyPython