F3 est un outil efficace qui évalue la capacité et la performance des cartes flash pour vérifier si elles respectent les spécifications annoncées. Il remplit le dispositif avec des données pseudorandom et vérifie ensuite si les mêmes données sont retournées lors de la lecture.

F3 signifie « Lutter contre la fraude des flash » ou « Lutter contre les fausses cartes flash ».

Sommaire

  • Exemples
  • Installation
  • Autres ressources

Exemples

Nous utiliserons /dev/sdX comme exemple ici, vous devez remplacer X par une lettre minuscule correspondant au dispositif que vous souhaitez tester. La commande lsblk vous donnera un aperçu de vos dispositifs actuels.

Évaluation de la performance avec f3read/f3write

Utilisez ces deux programmes dans cet ordre. La commande f3write écrira de gros fichiers sur votre disque monté, tandis que f3read vérifiera si le disque flash contient exactement les fichiers écrits :

$ ./f3write /media/michel/5EBD-5C80/
$ ./f3read /media/michel/5EBD-5C80/

Veuillez remplacer “/media/michel/5EBD-5C80/” par le chemin approprié. Sur les Mac, les dispositifs USB sont montés dans “/Volumes”.

Si vous avez installé f3read et f3write, vous pouvez omettre le “./” qui précède leurs noms.

Tests rapides de capacité avec f3probe

f3probe est le test de disque le plus rapide et convient aux grands disques car il n’écrit que ce qui est nécessaire pour tester le disque. Il fonctionne directement sur le dispositif de bloc (non monté) et doit être exécuté en tant qu’utilisateur privilégié :

# ./f3probe --destructive --time-ops /dev/sdX

Avertissement

Cela détruira toutes les données précédemment stockées sur votre disque !

Correction de la capacité à la taille réelle avec f3fix

f3fix crée une partition qui correspond à la taille réelle du disque contrefait. Utilisez la sortie de f3probe pour déterminer les paramètres pour f3fix :

# ./f3fix --last-sec=16477878 /dev/sdX

Installation

Télécharger et Compiler

Les fichiers de la version stable de F3 sont disponibles ici. La commande suivante décompresse les fichiers :

Compiler le logiciel stable sur Linux ou FreeBSD

Pour construire :

Si vous souhaitez installer f3write et f3read, exécutez la commande suivante :

Compiler le logiciel stable sur Windows/Cygwin

f3write et f3read peuvent être installés sur Windows, mais actuellement f3probe, f3fix et f3brew nécessitent Linux. Pour les utiliser sur une machine Windows, utilisez l’installation Docker. Pour f3write et f3read, continuez à lire.

Si ce n’est pas déjà fait, installez les paquets Cygwin suivants et leurs dépendances :

  • gcc-core
  • make
  • libargp-devel

Pour construire, vous aurez besoin de drapeaux spéciaux :

export LDFLAGS="$LDFLAGS -Wl,--stack,4000000 -largp"
make

Si vous souhaitez installer f3write et f3read, exécutez la commande suivante :

Compiler le logiciel stable sur Apple Mac

f3write et f3read peuvent être installés sur Mac, mais actuellement f3probe, f3fix et f3brew nécessitent Linux. Pour les utiliser sur Mac, utilisez l’installation Docker. Pour f3write et f3read, continuez à lire.

Utiliser HomeBrew

Si vous avez déjà Homebrew installé sur votre ordinateur, la commande ci-dessous installera F3 :

Utiliser MacPorts

Si vous utilisez MacPorts à la place, utilisez la commande suivante :

Docker

Démarrage rapide

Une image préconstruite est disponible sur Docker Hub, prête à être utilisée. Avec Docker démarré, exécutez simplement :

docker run -it --rm --device  peron/f3  [] 

Par exemple, pour tester un disque monté à /dev/sdX :

docker run -it --rm --device /dev/sdX peron/f3 f3probe --destructive --time-ops /dev/sdX

En option, vous pouvez également construire votre propre conteneur si vous ne souhaitez pas utiliser l’image préconstruite. À partir de ce répertoire, exécutez :

ou :

docker build -t f3:latest .

Pour exécuter des commandes f3 en utilisant votre image Docker nouvellement construite :

docker run -it --rm --device  f3:latest  [] 

docker run -it --rm --device /dev/sdX f3:latest f3probe --destructive --time-ops /dev/sdX
docker run -it --rm -v /path/to/mounted/device:/mnt/ f3:latest f3write /mnt/
docker run -it --rm -v /path/to/mounted/device:/mnt 

Gestion des Permissions de Disque dans Docker

Introduction aux Défis de Mapping de Disque

L’intégration d’un périphérique de disque dans un conteneur Docker peut s’avérer complexe, surtout sur les systèmes d’exploitation Mac et Windows. Ce problème de passage de périphériques est bien documenté dans diverses ressources en ligne. En revanche, sur Linux, cette opération est généralement fluide. Sur Mac et Windows, Docker a tendance à traiter le disque comme un répertoire classique plutôt que comme un disque monté, ce qui peut entraîner des erreurs telles que f3probe: Impossible d'ouvrir le périphérique '/opt/usb': C'est un répertoire, si le mapping réussit.

Solution via VirtualBox

Pour contourner ce problème, une solution consiste à utiliser docker-machine pour créer une machine virtuelle VirtualBox (boot2docker) dans laquelle le conteneur Docker sera exécuté. VirtualBox permet effectivement le passage de périphériques, ce qui nous permet de transférer le périphérique à la machine virtuelle, puis au conteneur Docker. Des instructions détaillées ont été fournies par Milad Alizadeh, principalement axées sur les périphériques USB, mais ces étapes peuvent être adaptées à d’autres types de disques. Voici les commandes que j’ai utilisées sur mon terminal Mac (la procédure est probablement similaire sur Windows, bien que non testée) :

docker-machine create -d virtualbox default
docker-machine stop
vboxmanage modifyvm default --usb on
docker-machine start
vboxmanage usbfilter add 0 --target default --name flashdrive --vendorid 0x0123 --productid 0x4567
eval $(docker-machine env default)

Dans la commande usbfilter add, le paramètre « name » correspond au nom que vous attribuez au filtre, et vous pouvez le nommer comme bon vous semble. Les identifiants --vendorid et --productid peuvent être trouvés sur Mac dans « Informations Système » sous « USB ». Vous pouvez également rechercher le bon périphérique en utilisant vboxmanage list usbhost.

Ajout de Périphériques via l’Interface Graphique

Une autre méthode consiste à ajouter le périphérique via l’application GUI de VirtualBox :

docker-machine create -d virtualbox default
docker-machine stop
# Ouvrez VirtualBox et ajoutez manuellement le périphérique de disque avant de passer à la commande suivante
docker-machine start
eval $(docker-machine env default)

Après avoir exécuté ces commandes, débranchez et rebranchez la clé USB, puis exécutez :

docker-machine ssh default "lsblk"

Cela vous permettra de lister les périphériques. Recherchez le bon disque ; la colonne « SIZE » peut être utile pour identifier le périphérique souhaité. Par exemple, sdb est un point de montage courant pour une clé USB. Vous devriez maintenant pouvoir exécuter la commande suivante :

docker run --rm -it --device /dev/sdX peron/f3 f3probe --destructive --time-ops /dev/sdX

Exploration du Système de Fichiers dans le Conteneur Docker

Il peut être utile d’entrer dans un prompt bash dans le conteneur Docker pour explorer le système de fichiers :

docker run --rm -it --device /dev/sdX peron/f3 bash

Cela vous permettra d’exécuter des commandes comme ls /dev/*.

Autres Ressources

Interfaces Graphiques Disponibles

Grâce à notre communauté croissante de défenseurs contre la fraude des clés USB, plusieurs interfaces graphiques (GUI) sont désormais disponibles pour F3 :

  • F3 QT : Une interface graphique pour Linux utilisant QT, prenant en charge f3write, f3read, f3probe, et f3fix. Développé par Tianze.
  • F3XSwift : Une interface graphique pour Mac, prenant en charge f3write et f3read. Développé par Volker Runkel.

Nous encourageons les utilisateurs à tester ces projets et à fournir des retours aux auteurs, ce qui contribuera à améliorer leur code.

Fichiers Utiles

Voici quelques fichiers importants associés à F3 :

  • changelog : Journal des modifications pour les mainteneurs de paquets.
  • f3read.1 : Page de manuel pour f3read et f3write. Pour lire cette page, exécutez man ./f3read.1. Pour l’installer, exécutez install --owner=root --group=root --mode=644 f3read.1 /usr/share/man/man1.
  • LICENSE : Licence (GPLv3).
  • Makefile : Fichier de compilation.
  • README : Ce fichier.
  • .h et .c : Code C de F3.

Scripts Bash

Bien que les scripts simples listés ici soient prêts à l’emploi, ils sont principalement conçus pour vous aider à rédiger vos propres scripts, afin de personnaliser F3 selon vos besoins spécifiques :

f3write.h2w - Script pour créer des fichiers identiques à H2testw.
Utilisation : `f3write.h2w /media/michel/5EBD-5C80/`

log-f3wr - Script qui exécute `f3write` et `f3read`, et enregistre leur sortie dans un fichier journal.
Utilisation : `log-f3wr log-filename /media/michel/5EBD-5C80/`

Veuillez noter que tous les scripts et exemples d’utilisation ci-dessus supposent que f3write, f3read, et les scripts se trouvent dans le même dossier.

Problèmes de Fiabilité des Clés USB

Si votre clé USB n’est pas frauduleuse (ou si vous avez utilisé f3fix pour la « réparer »), mais que vous rencontrez encore des problèmes sporadiques de corruption de données, il est essentiel d’explorer les causes possibles et d’appliquer des solutions appropriées.

Il est possible que votre mémoire flash présente des « secteurs défectueux ». Si votre flash est formaté avec le système de fichiers FAT, vous pouvez utiliser un outil comme Flakyflash pour identifier les clusters de données défectueux et les marquer comme mauvais dans la table d’allocation de fichiers (FAT). Cela pourrait vous permettre de prolonger légèrement la durée de vie de votre mémoire flash, mais il est crucial de la considérer comme défaillante et de la remplacer dès que possible.

Show Comments (0)
Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *