Créer une clé USB à partir de la carte microSD du Raspberry

Lien :

https://www.framboise314.fr/bootez-votre-raspberry-pi-3-sur-une-cle-usb/#Preparation_drsquoune_cle_USB_non_partitionnee

Présentation

Il est intéressant de pouvoir créer une clé USB à partir d'un environnement fonctionnel du Raspberry utilisant une carte Micro SD :

avoir une sauvegarde de l'environnement actuel du Raspberry ;

transférer le contenu de la carte SD sur une clé USB pour ensuite booter sur la clé USB.

Préparation de la clé USB

visualisez les partitions actuelles de la clé USB

$ lsblk

La clé USB est identifié par sda la carte microsd est identifiée par mmcblk0

lancez parted

s'il existe déjà des partitions, supprimez-les. Créez une partition FAT32 de 100Mo, suivie d’une partition Linux ext4 qui occupera le reste de la place disponible. <code shell> $ sudo parted /dev/sda (parted) mktable msdos yes (parted)mkpart primary fat32 0% 100M (parted)mkpart primary ext4 100M 100% (parted)print quit </code>

formatage des deux partitions <code shell> $ sudo mkfs.vfat -n BOOT -F 32 /dev/sda1 $ sudo mkfs.f2fs -f /dev/sda2 </code>

Transfert du système Raspbian sur la clé USB

montage des systèmes de fichiers nouvellement créés et installer le système en utilisant rsync

$ sudo apt install rsync $ sudo mkdir /mnt/usb $ sudo mkdir /mnt/usb/boot $ sudo mount /dev/sda1 /mnt/usb/boot/ $ sudo mount /dev/sda2 /mnt/usb/ $ sudo rsync -ax --progress / /boot /mnt/usb

Régénérer les clés SSH

$ cd /mnt/usb $ sudo mount --bind /dev dev $ sudo mount --bind /sys sys $ sudo mount --bind /proc proc $ sudo chroot /mnt/usb # rm /etc/ssh/ssh_host* # dpkg-reconfigure openssh-server # exit $ sudo umount dev $ sudo umount sys $ sudo umount proc

Modifier cmdline.txt et fstab

Pour pouvoir démarrer sur la clé USB, il faut maintenant modifier sur la clé USB cmdline.txt pour que la clé USB soit le root file system (RFS) à la place de la carte SD :

prendre connaissance des PARTUUID des partitions

$ lsblkcd -o name,partuuid

remplacer le PARTUUID des partitions de la carte microSD indiqué dans le fichier cmdline.txt par le PARTUUID des partition de la clé USB :

accéder au fichier /mnt/usb/boot/cmdline.txt

remplacer root=PARTUUID=xxxmicrosdxxx-02 par root=PARTUUID=xxxcleusbxxx-02

remplacer ext4 par f2fs

remplacer le PARTUUID des partitions de la carte microSD indiqué dans le fichier fstab par le PARTUUID des partition de la clé USB :

accéder au fichier /mnt/usb/etc/fstab

remplacer root=PARTUUID=xxxmicrosdxxx-01 par root=PARTUUID=xxxcleusbxxx-01

remplacer root=PARTUUID=xxxmicrosdxxx-02 par root=PARTUUID=xxxcleusbxxx-02

remplacer le ext4 par f2fs

Redémarrer le Raspberry sur la clé USB

Démonter le système de fichier de la clé USB

$ cd ~ $ sudo umount /mnt/usb/boot $ sudo umount /mnt/usb

Arrêter le Raspberry Pi 3

$ sudo shutdown -h now

enlever la carte microSD

redémarrer le Rapsberry