Le Raspberry Pi 3 est capable de booter depuis un stockage USB, disque dur externe ou clé USB, ce qui peut être une bénédiction pour les systèmes ayant de nombreuses lectures écritures. Les cartes SD supporte mal ce genre d’exercices, j’en ai fait les frais plusieurs fois, principalement sur mon installation domotique à base de Jeedom, au bout de quelques semaines le système se corrompait. L’autre avantage est de supporté les vitesses de transferts propres à l’USB 2, le système est bien plus réactif que sur une simple carte SD.
L’opération est relativement simple, en quelques minutes on est capable d’activer le boot USB et le clonage du contenu de la carte vers le support externe. Tellement simple que cela peut aussi servir à créer des backups du système avec une clé USB de taille équivalente à la carte SD
Rendre compatible la partition /boot avec le lancement sur support USB
# Si raspbian lite il faut rpi-update :
sudo apt-get update; sudo apt-get install rpi-update
sudo BRANCH=next rpi-update
Ensuite, activer la fonction
echo program_usb_boot_mode=1 | sudo tee -a /boot/config.txt
#Suivi d'un reboot du Raspberry PI 3 pour que ça soit pris en compte
sudo reboot
Après reboot, on vérifie que c’est actif, la bonne réponse est 17:3020000a
vcgencmd otp_dump | grep 17:
Maintenant vient le partitionnement du support externe,
# Pour trouver l'identifiant du stockage externe, qui devrait normalement être /dev/sda
sudo fdisk -l
# Maintenant le partitionnement
sudo parted /dev/sda
(parted) mktable msdos
Warning: The existing disk label on /dev/sda will be destroyed and all data on this disk will be lost. Do you want to continue?
Yes/No? Yes
(parted) mkpart primary fat32 0% 100M
(parted) mkpart primary ext4 100M 100%
(parted) print
Model: SanDisk Ultra (scsi)
Disk /dev/sda: 30.8GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 99.6MB 98.6MB primary fat32 lba
2 99.6MB 30.8GB 30.7GB primary ext4 lab
# Pour en sortir, c'est un habituel "ctrl+c"
Création des deux partitions boot et root
sudo mkfs.vfat -n BOOT -F 32 /dev/sda1
sudo mkfs.ext4 /dev/sda2
Montage et transfert de la carte SD vers le support externe, c’est assez rapide avec rsync
sudo mkdir /mnt/target
sudo mount /dev/sda2 /mnt/target/
sudo mkdir /mnt/target/boot
sudo mount /dev/sda1 /mnt/target/boot/
sudo apt-get update; sudo apt-get install rsync
sudo rsync -ax --progress / /boot /mnt/target
Optionnellement, régénérer une nouvelle clé SSH pour ce nouveau système
cd /mnt/target
sudo mount --bind /dev dev
sudo mount --bind /sys sys
sudo mount --bind /proc proc
sudo chroot /mnt/target
rm /etc/ssh/ssh_host*
dpkg-reconfigure openssh-server
exit
sudo umount dev
sudo umount sys
sudo umount proc
Dernière étape, rendre le nouveau boot actif sur le support externe
sudo sed -i "s,root=/dev/mmcblk0p2,root=/dev/sda2," /mnt/target/boot/cmdline.txt
sudo sed -i "s,/dev/mmcblk0p,/dev/sda," /mnt/target/etc/fstab
# Finir le taff en demontant et stoppant le système
cd ~
sudo umount /mnt/target/boot
sudo umount /mnt/target
sudo poweroff
Déconnecter l’alimentation du Raspberry PI 3, retirer la carte SD, rebrancher, prier, ça boot, Ayé
You might also like
More from Do It Yourself
Tuto DIY : Construire un éclairage LED pour les plantes
Step by step, la construction d'un éclairage LED horticole qui s'adapte pour toutes les plantes, surtout sur les bacs hydroponiques d'IKEA. …
VPS pas cher, VPN à moins de 4€/ans
Payer un service de VPN fort cher alors que l’on peut s’en faire un pour >4€/ans ? Qui dit VPS …
MagicMirror² : Un miroir connecté en DIY
MagicMirror² est un projet open source permettant de se construire un miroir "magique" connecté, affichant en temps réel des informations issues …
16 Comments
Bonjour,
J’ai déjà installé LAMP SAMBA et d’autres applications sur la carte sd.
Mieux vaut repartir à 0 avec une raspbian neuve ou le transfert de tous les chemins et configurations sera effective aussi sur le DD?
merci
Salut Thierrys
Tu peux sans hésitation tenter le clonage sur un support externe, normalement tu auras une copie 1:1 de ta carte SD ( avec de l’espace en plus -parce que j’imagine que ton DD est plus grand).
Et tu peux t’éviter l’étape de la regénération des clés SSH.
Normalement, ça marchera à l’identique avec un peu plus de vitesses de transferts. Et au pire, si ton DD externe n’est pas reconnu au boot, ce n’est pas grave, la carte SD restera intouché, donc tu pourras repartir dessus et essayer sur un autre DD.