User Tools

Site Tools


prive:rpi-rootfs-f2fs

RPI: Remplacer la partition racine ext4 de la carte micro SD par f2fs sur le Raspberry PI

La carte micro SD du Raspberry Pi est nommée mmcblk0 et se compose de deux partitions :

  • mmcblk0p1 contenant un système de fichiers vfat, monté sur /boot
  • mmcblk0p2 contenant un système de fichiers ext4, monté sur / (racine).

L'objectif est de remplacer le système de fichiers ext4 de la partition mmcblk0p2 , contenant la partition racine, par un système de fichiers f2fs, compatible avec les cartes SD et censé prolonger la durabilité de la carte.

Etape 1: Préparation du système Raspberry

Flasher l’image de Raspian sur la SD en utilisant l'une des méthodes décrites ici

Démarrer la Pi et à cette étape, le PARTUUID mis par défaut dans le fichier cmdline.txt (root=PARTUUID=49783f5b-02) est écrasé par celui de mmcblk0p2 et mmcblk0p2 est étendue automatiquement (mmcblk0p2 occupe maintenant toute la carte).

Configurer Raspian: clavier, langue, réseau, mot de passe…

Mettre à jour les paquets :

sudo apt-get update
sudo apt-get -y upgrade
sudo rpi-update

Redémarrer pour valider les étapes précédentes :

sudo reboot

Sur le Raspberry Pi : taper la commande suivante dans un Terminal :

sudo lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL

   NAME        FSTYPE  SIZE MOUNTPOINT   LABEL
   sda                57,6G              
   └─sda1      ntfs   57,6G /media/stick WEBDISC01
   mmcblk0            60,1G              
   ├─mmcblk0p1 vfat     60M /boot        boot
   └─mmcblk0p2 ext4     60G /      

il existe également une clé USB sda, contenant un système de fichiers NTFS sur sda1, monté sur /media/stick - qui n'est pas modifié et n'affecte pas la procédure.

Étant donné que la partition racine de la carte SD ne peut pas être reformatée sur le système en cours d'exécution, le système doit être arrêté et, comme la partition racine sera sur un système de fichiers f2fs lors du redémarrage, il faut installer le paquet f2fs-tools avant cela:

sudo apt-get install f2fs-tools

Ensuite, éteindre le Raspberry Pi.

Etape 2: Préparation du système hôte

Maintenant passer sur un l'ordinateur Linux hôte où un lecteur de carte SD est disponible.

Sur ce système, on a également besoin du support f2fs, alors il faut aussi installer f2fs-tools

sudo apt-get install f2fs-tools

Retirer ensuite la carte micro SD du Raspberry Pi et l'insérer dans le lecteur de carte SD du deuxième ordinateur Linux. Habituellement, sur les systèmes de bureau Linux courants, les systèmes de fichiers de la carte seront montés automatiquement, et avec

sudo lsblk -o NOM, FSTYPE, TAILLE, POINT DE MONTAGE, ÉTIQUETTE

on aura probablement quelque chose comme

    NOM FSTYPE TAILLE MOUNTPOINT LABEL
    . . .
    sdb 60,1G
    ├─sdb1 vfat 60M /media/user/boot boot
    └─sdb2 ext4 60G /media/user/ad6203a1-ec50-4f44-a1c0-e6c3dd4c9202
    . . .

Le nom long du point de montage uid de la partition ext4 de la carte est peu pratique, donc l'étape suivante n'est que par commodité :

sudo umount /dev/sdb1
sudo umount /dev/sdb2
sudo mkdir /media/boot_fs
sudo mkdir /media/root_fs
sudo mount -t vfat /dev/sdb1 /media/user/boot_fs
sudo mount -t ext4 /dev/sdb2 /media/user/root_fs

Désormais, le support de la carte SD est beaucoup plus lisible :

    sdb 60,1G
    ├─sdb1 vfat 60M /media/user/boot_fs
    └─sdb2 ext4 60G /media/user/root_fs

ce qui signifie:

  1. la partition de démarrage sur le Raspberry Pi, est /dev/sdb1 avec un système de fichiers vfat de 60 Mo, monté dans le dossier /media/user/boot_fs sur le système de bureau Linux
  2. la partition racine (/) sur le Raspberry Pi, est /dev/sdb2 avec un système de fichiers ext4 de 60 Go, monté dans le dossier /media/user/root_fs sur le système de bureau Linux.

Etape 3: Conversion du système de fichiers

Sauvegarde du contenu de la partition racine

Avant de procéder maintenant au formatage de la partition ext4 vers un autre type de système de fichiers (ce qui détruira toutes les données), il estnécessaire de sauvegarder le contenu de la partition :

sudo cp -a /media/user/root_fs /home/user/backup_root_fs

L'option -a est importante pour s'assurer que vraiment tout, y compris par ex. cachés/fichiers système, est copié dans le dossier de sauvegarde.

Création de la partition f2fs

Démonter maintenant la partition /dev/sdb2:

sudo umount /dev/sdb2

et le formater avec le système de fichiers f2fs

sudo mkfs.f2fs /dev/sdb2

La partition a maintenant un système de fichiers f2fs, mais elle est vide, car en formatant tout son contenu a été perdu.

Restauration du contenu de la partition racine

Remonter la partition sur son point de montage précédent

sudo mount -t f2fs /dev/sdb2 /media/user/root_fs

maintenant avec l'option de type f2fs. Le support de carte SD ressemblera alors à ceci :

    sdb 60,1G
    ├─sdb1 vfat 60M /media/user/boot_fs
    └─sdb2 f2fs 60G /media/user/root_fs

On peut maintenant restaurer le contenu du système de fichiers racine à partir du dossier de sauvegarde :

sudo cp -a /home/user/backup_root_fs/* /media/user/root_fs

Etape 4: Finalisation

Pour rendre le Raspberry Pi bootable avec la carte SD. Modifier d'abord le fichier /etc/fstab de la carte SD et adapter l'entrée de montage du système de fichiers racine à f2fs :

sudo vi /media/user/root_fs/etc/fstab
. . .
/dev/mmcblk0p1 /boot vfat par défaut 0 2
/dev/mmcblk0p2 / f2fs defaults,noatime,discard 0 1
. . .

Modifier ensuite le fichier cmdline.txt sur la partition de démarrage de la carte SD et adapter le paramètre de type de système de fichiers racine à f2fs:

sudo cp –a /media/user/boot_fs/cmdline.txt /media/user/boot_fs/_cmdline.txt # un petit backup avant
sudo vi /media/user/boot_fs/cmdline.txt

dwc_otg.lpm_enable=0 console= . . . root=/dev/mmcblk0p2 rootfstype=f2fs ascenseur=date limite . . ..

Maintenant démonter les systèmes de fichiers de la carte SD, éjecter la carte et l'insérer dans le lecteur de carte du Raspberry Pi. Si tout s’est bien passé, on démarrera sur la carte. On peut le voir au démarrage et avec un lsblk (sda1 pointera sur « / » et mmcblk0p2 sur /media/pi/rootfs)

prive/rpi-rootfs-f2fs.txt · Last modified: 2025/02/19 10:59 by 127.0.0.1