Comment graver un image système
Table of Contents
Cet article présente les différentes méthodes pour graver une image d'un système sur une carte SD ou Micro-SD afin de pouvoir démarrer un Raspberry-Pi facilement.
Méthode 1: Ligne de commande
Une fois la carte SD branchée sur la machine (via un connecteur spécifique ou un lecteur de carte USB), il est nécessaire de connaître le nom du périphérique (au sens du système d’exploitation). Par exemple, il y a de grandes chances que le disque dur principal soit /dev/sda.
Avec la commande dmesg on peut déterminer ce nom :
usb 1-1.6.3: USB disconnect, device number 49 usb 1-1.6.3: new high speed USB device number 50 using ehci_hcd usb 1-1.6.3: New USB device found, idVendor=8564, idProduct=4000 usb 1-1.6.3: New USB device strings: Mfr=3, Product=4, SerialNumber=5 usb 1-1.6.3: Product: Transcend usb 1-1.6.3: Manufacturer: TS-RDF5 usb 1-1.6.3: SerialNumber: 000000000039 usb 1-1.6.3: configuration #1 chosen from 1 choice scsi12 : SCSI emulation for USB Mass Storage devices usb-storage: device found at 50 usb-storage: waiting for device to settle before scanning usb-storage: device scan complete scsi 12:0:0:0: Direct-Access TS-RDF5 SD Transcend TS37 PQ: 0 ANSI: 6 sd 12:0:0:0: Attached scsi generic sg8 type 0 sd 12:0:0:0: [sdi] 62148608 512-byte logical blocks: (31.8 GB/29.6 GiB) sd 12:0:0:0: [sdi] Write Protect is off sd 12:0:0:0: [sdi] Mode Sense: 23 00 00 00 sd 12:0:0:0: [sdi] Assuming drive cache: write through sd 12:0:0:0: [sdi] Assuming drive cache: write through sdi: sdi1 sdi2 sdi2: <bsd:bad subpartition - ignored > sd 12:0:0:0: [sdi] Assuming drive cache: write through sd 12:0:0:0: [sdi] Attached SCSI removable disk
Dans l'ewemple, le périphérique est sdi.
On peut aussi déterminer ce nom en utilisant la commande df -h
.
On peut alors, utiliser la commande dd pour faire la copie:
# dd if=FreeBSD-10.1-STABLE-arm-armv6-RPI-B-20150509-r282689.img of=/dev/sdi bs=1M 953+1 enregistrements lus 953+1 enregistrements écrits 1000000000 octets (1,0 GB) copiés, 171,722 s, 5,8 MB/s
Ce qui signifie :
- dd c’est la commande, disk dump ;
- if= c’est le fichier en entrée, ici notre image (input file) ;
- of= c’est le fichier en sortie, notre périphérique usb (ouput file) ;
- bs=1M c’est la taille du bloc de données qui est transférée. Ici, 1Mo. La valeur par défaut est 512Ko.
On peut utiliser la commande ddrescue pour faire le transfert:
sudo ddrescue -D --force FreeBSD-12.0-RELEASE-arm64-aarch64-RPI3.img /dev/sdc
La commande dd écrasera les données sur le périphérique spécifié (Si le carte SD contient déjà une table de partition, le système peut la monter automatiquement lors de l'insertion. Démonter ou éjecter tous les volumes montés à partir de la carte micro SD. Ensuite, utiliser la commande dd pour copier l'image sur le carte micro SD. La commande dd prendra quelques minutes).
On peut enchaîner les commandes d'extraction et de transfert sur la carte SD:
xzcat CentOS-Userland-8-aarch64-RaspberryPI-Minimal-4-sda.raw.xz | dd of=$/path/to/sd/card status=progress bs=4M conv=sync
Pour utiliser lee paramètre 'status=progress' de dd il faut d'abord vérifier que le paramètre est pris en charge. Ce n'est pas obligatoire mais cela permet de suivre l'état du taux de transfert vers la carte SD. Le paramètre 'bs=4M' est également utilisé pour un taux de transfert plus rapide, car la plupart des cartes SD ont une taille de bloc d'effacement de 4 Mo.
Méthode 2: Raspberry Pi Imager
La fondation Raspberry Pi a annoncé la sortie d’un outil maison pour faciliter la création des cartes SD, Raspberry Pi Imager, et ce depuis n’importe quel OS.
On va donc voir comment installer Raspbian (ou autre) sur votre carte SD avec Raspberry Pi Imager:
- Télécharger et installer l'imageur Raspberry Pi à partir de https://www.raspberrypi.org/software/ sur l'ordinateur principal.
- Insérer la clé USB dans la machine principale.
- Dans imager:
- cliquer sur «Choisir le système d'exploitation», puis «Utiliser personnalisé».
- Sélectionner l'image FreeBSD téléchargée. Sous «Choisir la carte SD»,
- sélectionner la clé USB dans la liste. L'imageur décompresse le fichier source et l'écrit sur la clé USB.
- Cliquer sur “Ecrire” pour écrire et vérifier l'image.
Méthode 3: Balena Etcher
balenaEtcher est un nouveau logiciel qui permet de graver des images disque (ISO, IMG, ZIP…) sur des clés USB et des cartes SD à l'instar du logiciel Rufus.:
- Installer Etcher
- Lancer Etcher :
- Sur la gauche, choisir l’image téléchargée.
- Insérer ensuite la carte SD dans l’ordinateur, Etcher devrait le sélectionner automatiquement.
- Cliquer enfin sur « Flash! » pour démarrer la copie.
Quelques minutes plus tard, la carte SD est prête et on peut l’insérer dans le Raspberry Pi.
Méthode 4: graver une image sur eMMC
Télécharger le référentiel usbboot Raspberry Pi, afin d'installer une bibliothèque USB requise sur l'ordinateur et créer l'exécutable rpiboot permettant de monter le stockage sur un ordinateur.
Tout d'abord, il faut s'assurer que la bibliothèque libusb est installée :
sudo apt install libusb-1.0-0-dev
Cloner le dépôt usbboot sur l'ordinateur :
git clone --depth=1 https://github.com/raspberrypi/usbboot
Se placer dans le répertoire usbboot
remplacer include <libusb.h>
par include <libusb-1.0/libusb.h>
dans le fichier main.c
compiler rpiboot :
cd usbboot sed -i 's|include <libusb.h>|include <libusb-1.0/libusb.h>|g' main.c make
Utiliser l'exécutable rpiboot créé dans le répertoire, pour monter le stockage eMMC :
sudo ./rpiboot
Le volume de démarrage devrait être monté sur l'ordinateur Linux. On remarquera également que la LED D2 s'allume ; cela signifie qu'il y a une activité de lecture/écriture de disque sur l'eMMC.
À ce stade, le stockage eMMC se comporte comme une carte microSD ou une clé USB que l'on aurait branchée sur l'ordinateur. On peut donc utiliser une application telle que Raspberry Pi Imager pour flasher le système d'exploitation Raspberry Pi (ou tout autre système d'exploitation) sur l'eMMC.