F2FS sous Raspberrypi

Pour rappel, F2FS est un système de fichier qui préserve les cartes SD en variant les opérations d’écritures sur de multiples blocs. Il a été développé par Samsung et est beaucoup utilisé pour les mémoires des téléphones.

L’objectif de ce petit texte n’est pas de convaincre de l’utilité de F2FS, mais de présenter comment l’utiliser avec Raspberrypi.

Cependant, il faut savoir que F2FS ne prend pas en charge le redimensionnement des partition. Par ailleurs, l’outil de sauvegarde SDCard copier de raspbian ne fonctionne pas avec ce système de fichier, ce qui est une vraie limitation, tant celui-ci est utile.

L’idée est ici d’effectuer les opérations sur la carte contenant le système du Raspberry, mais sans qu’il soit en fonctionnement. Il faut donc soit retirer la carte du Raspberry et la monter sur un autre ordinateur, soit faire une copie du système sur une autre carte montée sur un adaptateur USB à l’aide de « SD Card Copier » du menu « Accessoires » (pour cela il est nécessaire de reformater entièrement la nouvelle carte en Fat32 si ce n’est pas déjà fait) et modifier le système de fichier de cette carte.

Par ailleurs, seule la partition root (à l’exception des partitions SETTINGS et boot) sera reformatée.

Deux possibilités s’offrent à nous :

  1. en ligne de commande :
    Préalablement, le logiciel de gestion des fichiers F2FS est à installer en root par :

    apt-get install f2fs-tools

    Comme le formatage effacera toutes les données sur la partition modifiée, il est nécessaire d’en effectuer la copie. Pour cela, on crée un répertoire d’accueil par :

    mkdir ~/backup_root

    puis, en root, on effectue la copie par :

    cp -v -a /lien_vers_la_partition_root_montée ~/backup_root

    Outre la verbosité (-v), on crée une archive (-a) qui conservera exactement le contenu de la partition. Cela peut être long.
    Puis, on utilise l’utilitaire de formatage mkfs.f2fs après avoir déterminé le nom de la partition, ici /dev/sdb2, par exemple, en root avec :

    fdisk -l

    et après avoir préalablement démonté la partition en root :

    umount /dev/sdb2

    La création du système de fichier F2FS se fait évidemment encore en root par :

    mkfs.f2fs /dev/sdb2

    On remonte ensuite en root la partition :

    mount -t f2fs /dev/sdb2 /lien_vers_la_partition_root_monté

    et on y remet en root le contenu précédemment sauvegardé :

    cp -v -a ~/backup_root /lien_vers_la_partition_root_monté

    Enfin, il faut modifier deux fichiers pour que le système prenne en compte le nouveau type de système de fichiers. Il s’agit de /etc/fstab sur la partition root et de /boot/cmdline.txt (ceux de la carte modifiée évidemment !). Dans fstab, il faut changer Ext4 par f2fs à la ligne contenant mmcblk0p2, de même qu’à la ligne contenant rootfstype= dans le fichier cmdline.txt. Cela est réalisable avec un éditeur de texte comme vi, par exemple.

  2. en mode graphique :
    Je ne décrirai pas la création du répertoire de sauvegarde, la copie de fichiers et la modification des fichiers textes en mode graphique. Pour le formatage, l’utilitaire nécessaire est gparted. Après la sauvegarde de son contenu, il permettra de trouver la partition, la démonter, la formater en f2fs pour autant que le paquet f2fs-utils soit installé, et la remonter. Restera à en recopier le contenu et à modifier les fichiers texte.

Voilà. Si le formatage vous reporte une erreur disant que la partition ne peut être inférieure à une certaine taille, vérifiez que vous tentez de formater la bonne partition, soit /root 🙂

Enfin, signalons qu’une fois toutes les opérations effectuées, gparted indiquera un problème au niveau de la partition en f2fs par un petit triangle d’attention et cela malgré l’installation du paquet f2fs-tools. Cela est probablement du au fait que le système de fichier ou f2fs ne prend pas en charge l’agrandissement, la réduction, la vérification, l’étiquetage et l’UUID de la partition, comme indiqué dans le menu « Affichage » sous « Prise en charge des systèmes de fichiers ». Évidemment, ne pas pouvoir redimensionner la partition est une mauvaise chose. Mais ce n’était pas nécessaire pour moi.

Bon courage.

Laisser une réponse