Raspberry PI : transférer l’OS sur un disque SSD
Sur les derniers modèles de Raspberry PI ( PI 3 b+, PI 4 … ) il est désormais possible de booter directement sur un port USB. Ce qui n’est pas forcément le cas sur les anciennes versions du PI.
Voici donc une procédure pour transférer la partition / de la carte SD sur un support connecté sur un port USB et ainsi fiabiliser votre Raspberry. Dans mon cas il s’agit d’un Raspberry PI 2 B et d’un disque SSD.
Préparation
Dans un premier temps il faut mettre à jour le Raspberry. On se connecte donc en ssh avec les identifiants par défaut ( pi/raspberry ). On utilise ensuite les commandes suivantes :
# sudo apt update
# sudo apt full-upgrade
# sudo rpi-update
Ensuite lancer un reboot pour la prise en compte des mises à jour.
Transfert sur SSD
- /dev/mmcblk0p1 qui est monté sur « /boot ». Cette partition est de type FAT32 (donc accessible depuis Windows) et contient des fichiers qui vont servir à déterminer certains paramètres matériel et du noyau ainsi que lancer le démarrage du système (de Linux donc).
- /dev/mmcblk0p2 qui est monté sur « / » (root) et qui est formaté pour Linux (donc pas accessible depuis Windows) en général au format ext4. Root contient le système Linux avec toutes l’arborescence que vous connaissez (/home, /dev, /var, …). c’est donc cette partition que l’on va devoir transférer sur le SSD.
Première étape, connecter le disque SSD et vérifier qu’il n’est pas monté automatiquement avec la commande « mount ».
Il va maintenant falloir indiquer au noyau que le système ne se trouve plus sur la carte SD mais sur la partition /dev/sda1. Pour cela, éditez le fichier /boot/cmdline.txt et modifiez après le champ root pour avoir:
Voici ce que contient mon fichier:
Ce qui doit nous donner après modification :
console=serial0,115200 console=tty1 root=/dev/sda1 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
La dernière chose à faire, sera de modifier le fichier /etc/fstab qui indique au système quelles partitions sont à monter au démarrage. En effet, dans le fichier actuel, il est indiqué que la partition /dev/mmcblk0p2 doit être montée sur « / » (root). Maintenant, root devra être associé à /dev/sda1
Attention toutefois, à ce stade, d’éditer le bon fichier. Car si vous avez suivi cette procédure jusqu’ici, vous devriez toujours être avec un montage « / » qui est sur « /dev/mmcblk0p2 ». Donc si vous éditez « /etc/fstab », ce sera celui qui est dans la partition de la carte SD et pas celle qui est sur le disque SSD. Pour accéder au disque SSD, il va falloir le monter sur un répertoire. Par exemple:
sudo mount -t ext4 /dev/sda1 /media/ssd
sudo vi /media/ssd/etc/fstab
Commenter la ligne qui permet de monter l’ancienne partition et ajouter une ligne qui monte la nouvelle sur « / »:
PARTUUID=904b080b-01 /boot vfat defaults 0 2
/dev/sda1 / ext4 defaults,noatime 0 1
# PARTUUID=904b080b-02 / ext4 defaults,noatime 0 1
# a swapfile is not a swap partition, no line here
# use dphys-swapfile swap[on|off] for that
Ensuite rebooter et vérifier que tout est bien monté en lançant la commande « mount ».
Vous devriez voir (entre autres) les lignes:
/dev/mmcblk0p1 on /boot type vfat ….
Finalisation
La dernière chose à faire va consister à étendre la partition à toute la taille du disque. Pour cela, lancez la commande:
Et vérifiez que l’espace disponible correspond bien à la taille du disque
Filesystem Size Used Avail Use% Mounted on
/dev/root 74G 1.6G 69G 3% /
devtmpfs 184M 0 184M 0% /dev
tmpfs 216M 0 216M 0% /dev/shm
tmpfs 216M 3.1M 213M 2% /run
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 216M 0 216M 0% /sys/fs/cgroup
/dev/mmcblk0p1 253M 54M 199M 22% /boot
tmpfs 44M 0 44M 0% /run/user/1000
0 commentaire