🛠 Graver une carte SD et récupérer un système cassé

Orange Pi PC (Allwinner H3) · avance · Schéma : IMG-orangepi-pc-avance-1-opipc-boot-sd-recouvrement.svg — Étapes de gravure d'une image Armbian sur microSD (balenaEtcher/Win32DiskImager) et ordre d'amorçage du BROM du H3 (SD d'abord), flèche de récupération par simple re-gravure de la carte.

Objectives

Master the complete storage lifecycle of the Orange Pi PC: properly burn an Armbian image to microSD, understand the Allwinner BROM boot order, and above all, know how to restore the board after a broken system. Good news specific to this model: the PC has neither eMMC nor SPI NOR, only microSD exists — a corrupted bootloader can therefore always be recovered by re-burning the card, without any special download mode.

Hardware

Complete Code

  1. Burn under Linux (or balenaEtcher graphically, Win32DiskImager under Windows):
# Identifier LE bon périphérique (périphérique entier, pas une partition !)
lsblk -d -o NAME,SIZE,MODEL,REMOVABLE
# Démonter puis écrire l'image (remplacer sdX par VOTRE carte)
xzcat Armbian_*.img.xz | sudo dd of=/dev/sdX bs=4M status=progress conv=fsync
sync
  1. First boot: create the account, then protect the card against journal wear:
# log2ram est fourni avec Armbian : journalisation en RAM, flush périodique
sudo apt install -y armbian-config 2>/dev/null; sudo armbian-config
sudo systemctl status log2ram
  1. Recovery after a broken system (boot stuck, red LED frozen):
# Éteindre, retirer la carte, la re-graver avec la commande dd ci-dessus,
# la réinsérer, alimenter : le BROM du H3 amorce toujours sur le SD en premier.
# Sauvegarder le partitionnement d'une carte saine pour un reset rapide :
sudo sfdisk -d /dev/sdX > sauvegarde-partitions.sd
sudo sfdisk /dev/sdY < sauvegarde-partitions.sd

Expected Verification

After burning, the card boots up to the Armbian account creation. After voluntary corruption (sudo dd if=/dev/zero of=/dev/mmcblk0 bs=1M count=20), a complete re-burn restores a fresh system: the card is 100% recoverable.

Common Errors

Other tutorials for this board

Code examples for this board

← Back to the board 🛠 All tutorials