RaspberryPI sauvegarder la carte SD sous macosx ou linux

Sauvegarder la micro SD du raspberry sous MacOSX

Il faut déjà connaitre l'emplacement de la carte microsd, sous macosx faites ceci :

diskutil list
Chez moi voici ce que la commande renvoie
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.0 TB     disk0
   1:                        EFI ⁨EFI⁩                     314.6 MB   disk0s1
   2:                 Apple_APFS ⁨Container disk1⁩         1.0 TB     disk0s2

/dev/disk1 (synthesized):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      APFS Container Scheme -                      +1.0 TB     disk1
                                 Physical Store disk0s2
   1:                APFS Volume ⁨Macintosh HD⁩            15.2 GB    disk1s1
   2:              APFS Snapshot ⁨com.apple.os.update-...⁩ 15.2 GB    disk1s1s1
   3:                APFS Volume ⁨Macintosh HD - Data⁩     667.1 GB   disk1s2
   4:                APFS Volume ⁨Preboot⁩                 361.2 MB   disk1s3
   5:                APFS Volume ⁨Recovery⁩                1.1 GB     disk1s4
   6:                APFS Volume ⁨VM⁩                      3.2 GB     disk1s5

/dev/disk2 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *31.9 GB    disk2
   1:             Windows_FAT_32 ⁨boot⁩                    45.3 MB    disk2s1
   2:                      Linux ⁨⁩                        31.9 GB    disk2s2
Une fois trouvée, ici chez moi c'est la partition disk2, vous pouvez sauvegarder la microsd avec la commande DD (diskdump) :
Vous noterez qu'il faut utiliser /dev/rdisk2 plutôt que /dev/disk2 sous mac qui est extrèmement plus rapide...
sudo dd if=/dev/rdisk2 of=MA_SAUVEGARDE.img bs=4m

Sauvegarder la micro SD du raspberry sous linux

Pour trouver la partition, vous pouvez utiliser parted ou gparted (en haut à droite de gparted dans la liste déroulante). Ici pour moi c'est /dev/sdc. Vous pouvez enfin utiliser dd pour sauvegarder l'intégralité de la carte microsd :

sudo dd if=/dev/sdc of=MA_SAUVEGARDE.img bs=4M

Economiser de la place (Sous linux uniquement)

Vous noterez que l'image fait exactement la taille de la microsd, ici chez moi 32Go. Pourtant la carte sd n'est pas pleine, c'est l'inconvénient de dd qui copie TOUT sans tenir compte de l'espace réellement utilisé. Vous pouvez pour cela utilisez pishrink : https://github.com/Drewsif/PiShrink#installation ensuite l'utilisation est très simple :

sudo pishrink.sh MA_SAUVEGARDE.img
Ainsi l'image sera réduite à la taille réellement utilisée. Par défaut quand l'image sera restaurée sur une microsd elle sera automatiquement étendu lors du boot. Vous pouvez jeter un oeil aux options de pishrink...

Restaurer une image de raspberry PI

Il s'agit simplement de faire l'opération inverse :

Sous MacOSX

sudo dd if=MA_SAUVEGARDE.img of=/dev/rdisk2 bs=4m

Sous linux

sudo dd if=MA_SAUVEGARDE.img of=/dev/sdc bs=4M