Sommaire
Introduction
A ce jour, le RPI Pi 4 ne boot pas nativement sur un disque dur USB.
Il faut ressortir l’ancienne méthode pour faire cela, c’est à dire mettre une carte SD qui ne servira qu’au boot (démarrage).
Préparation
Dans un premier temps, il faut mettre Raspbian sur la Carte SD : Gravez l’image tout simplement.
Idem pour votre disque SSD : Gravez l’image. Et petite remarque pour les installations toutes neuves, il vous faudra utiliser gparted pour redimensionner la partition (Raspbian ne voudra pas le faire).
Branchez le disque SSD, mettez la carte SD, et démarrez le RPI.
C’est parti en SSH
S’identifier en SSH et se mettre en root : sudo -i
On va maintenant identifier le disque SSD, tapez : fdisk -l | grep /dev/sd
On aura quelque chose comme cela :
Si vous avez plusieurs disques, vous pourrez vérifier lequel on doit utiliser par rapport aux partitions :
/dev/sda1 -> FAT32 (c’est la partition de boot)
/dev/sda2 -> Linux (c’est la partition des données).
Vous pouvez aussi vérifier que c’est le bon disque grâce à la taille du disque (ici : 119,2GiB)
Vous remarquerez que ma partition /dev/sda2 a besoin d’un petit gparted car elle ne fait que 59,6G (et elle pourrait faire bien plus soit ~ 118G)
C’est parti pour dire au SDD que c’est lui qui sera le disque à utiliser : mount /dev/sda1 /media
nano /media/cmdline.txt
Recherchez root= et mettre root=/dev/sda2
Ctrl + O pour enregistrer, et Ctrl + X pour sortirumount /media
mount /dev/sda2 /media
nano /media/etc/fstab
Dans fstab, on aura deux lignes comme cela : xxxxxxxxxxxxxx
/boot
vfat defaults 0 2
xxxxxxxxxxxxxx /
ext4 defaults,noatime 0 1
Ce qui est important c’est de remplace le texte du début par /dev/sda1 et /dev/sda2/dev/sda1
/boot
vfat defaults 0 2
/dev/sda2 /
ext4 defaults,noatime 0 1
Ctrl + O pour enregistrer, et Ctrl + X pour sortirumount /media
Maintenant on va dire à la carte SD de booter sur le SSD : nano /etc/fstab
on a un truc du genre : proc /proc proc defaults 0 0
/dev/mmcblk0p1 /boot vfat defaults 0 2
/dev/mmcblk0p2 /
ext4 defaults,noatime 0 1
Modifiez seulement le début de la 3ème ligne qui parle de / en ext4 pour mettre /dev/sda2 :proc /proc proc defaults 0 0
/dev/mmcblk0p1 /boot vfat defaults 0 2
/dev/sda2 / ext4 defaults,noatime 0 1
Ctrl + O pour enregistrer, et Ctrl + X pour sortirnano /boot/cmdline.txt
Remplacer le root=/dev/mmcblk0p2
par root=/dev/sda2
(normalement c’est root=/dev/mmcblk0p2, au pire vous aurez compris qu’il faut remplacer ce qu’il y a après root= par /dev/sda2)
Ctrl + O pour enregistrer, et Ctrl + X pour sortir
Et reboot
!
Vérification
Après le reboot, reconnectez-vous en ssh et tapez : sudo -i
df -h
Cela sortira la liste des partitions montées et sur quel disque elles sont montées :
Deux choses à vérifier :
En rouge la ligne montée en / fait bien la taille du disque (pour rappel ma /dev/sda2 faisait 59,6G donc c’est ~59G)
En bleu la ligne montée en /boot doit pointer sur /dev/sda1 pour utiliser la partition boot du SSD après le démarrage.
Revenir en arrière et booter sur la carte SD
mkdir /mnt/tmp1
–> Changer
mkdir /mnt/tmp2
mount /dev/mmcblk0p1 /mnt/tmp1
mount /dev/mmcblk0p2 /mnt/tmp2
nano /mnt/tmp1/cmdline.txtroot=/dev/sda2 en root=/dev/mmcblk0p2
nano /mnt/tmp2/etc/fstab
commenter #/dev/sda2 / ext4 defaults,noatime 0 1
ajouter /dev/mmcblk0p2 / ext4 defaults,noatime 0 1
reboot