Magazine d'actualités journalières pour et par des téchnophiles passionnés qui refusent à se croire Geek ! #Mempyre

Raspberry Pi 3 : Booter sur un disque ou clé USB

2.37K 13

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é

I'm_not /Geek
Magazine🗞 d'actualités "journalières"😅 pour et par des téchnophiles passionnés 💝 qui refusent à se croire Geek🤥😂 💻📱⌚️⚗️🌐🛰🚀🍔