Raspberry Pi : déplacer le système vers un disque usb

Carte Raspberry Pi 2

Déplacer le système d’exploitation de la carte SD vers un disque dur USB

Brancher le disque sur un des ports usb de la carte.
La commande lsblk nous montre la liste les disques connectés.
Pour la suite je prends le cas où le disque est /dev/sda :

Création de la partition et formatage :
sudo parted /dev/sda mktable gpt mkpart primary ext4 100%

Formatage de la partition :
sudo mkfs.ext4 /dev/sda1

Migration du système Raspbian vers le disque :

On commence par « monter » la partition sur le système local :
sudo mount /dev/sda1 /mnt

Puis on copie le système local vers la nouvelle partition :
sudo rsync -avx / /mnt

Modification du fichier /boot/cmdline.txt pour dire au système d’utiliser le disque dur au démarrage :
Comme le raspberry a tendance à changer l’ordre des disque sans prévenir si lorsque je laisse plusieurs disques branchés en même temps, la lettre assigné au disque dur change et il est préférable d’utiliser l’identifiant unique de partition : PARTUUID.
Il s’agit d’une suite plus ou moins longue de caractères alpha-numériques qui permet d’identifier de façon absolument sûre chaque périphérique de stockage et partition.

Pour le connaître :
ls -l /dev/disk/by-partuuid/

Fichier /boot/cmdline.txt :
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=PARTUUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait

Modification du fichier /boot/config.txt pour que le programme de démarrage attende la détection du disque USB:
À la fin du fichier, nous ajoutons program_usb_timeout=1

Et pour finir modification du fichier fstab (celui qui est sur le disque dur)
/mnt/etc/fstab
on remplace dev/mmcblk0p2 par PARTUUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
On démonte proprement le disque :
sudo umount /dev/sda1

et on redémarre la Raspeberry
sudo reboot