Clés USB de mauvaise capacité
Ébauche d'article sur les mémoires flash, et en particulier, les clés USB peu chères dont la capacité annoncée est très supérieure à la réalité. En plus de ne pas être honnêtes ces clés sont relativmeent dangereuses puisque les données écrites au délà de la capacité réelle sont perdues peu après l'écriture, au mieux elles restent dans un cache quelques secondes avant de disparaitre. L'OS rapportera probablement une erreur d'accès à la prochaine tentative de lecture de ces données.
Une bonne partie de l'article se base sur l'utilisation de l'excellent programme : f3 Comme je viens d'avoir une clé de ce type, et que sur le coup je n'ai pas trouvé de ressources en français, voici donc cette ébauche.
Détection
À l'insertion de la clé, le noyau semble la détecter correctement, avec sa taille annoncée de 128 Go
scsi 14:0:0:0: Direct-Access Generic Flash Disk 8.00 PQ: 0 ANSI: 4
sd 14:0:0:0: Attached scsi generic sg2 type 0
sd 14:0:0:0: [sdc] 262144000 512-byte logical blocks: (134 GB/125 GiB)
sd 14:0:0:0: [sdc] Write Protect is off
sd 14:0:0:0: [sdc] Mode Sense: 23 00 00 00
sd 14:0:0:0: [sdc] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
sdc: sdc1
Comme j'avais de forts doutes sur cette clé, j'ai lancé f3probe
avant même d'essayer d'écrire quoique ce soit dessus.
# ./f3probe /dev/sdc
F3 probe 5.0
Copyright (C) 2010 Digirati Internet LTDA.
This is free software; see the source for copying conditions.
Please unplug and plug back the USB drive. Waiting... Thanks
[... x6 ... ]
Please unplug and plug back the USB drive. Waiting... Thanks
CAUTION CAUTION CAUTION
No more resets are needed, so do not unplug the drive
Probe finished, recovering blocks... Done
Bad news: The device `/dev/sdc' is a counterfeit of type limbo
You can "fix" this device using the following command:
f3fix --last-sec=26984447 /dev/sdc
Device geometry:
*Real* size: 12.87 GB (3373056 blocks)
Announced size: 125.00 GB (32768000 blocks)
Module: 128.00 GB (2^37 Bytes)
Block size: 4.00 KB (2^12 Bytes)
Last good sector: 26984447
Probe time: 258.70 seconds
Le message est assez clair. Je ne me suis pas encore renseigné sur la nature exacte des "limbo", mais ça viendra. Mon hypothèse actuelle est que le début de la flash est normale et foncitionne et qu'à partir d'une certaine taille, le contrôleur cycle sur un intervalle d'adresses.
Réparation
Comme le contrôleur en lui même ment, il n'est pas facile de faire reconnaître la clé comme faisant 12 Go et non 128. Malgré celà, une solution très simple consiste à créer une partition dont
la taille correspond à celle de la flash détectée comme correcte.
f3probe
nous donnait le dernier bon secteur, ainsi qu'un exemple de commande f3fix
à utiliser pour créer une partition de la bonne taille.
Dans mon cas :
f3fix --last-sec=26984447 /dev/sdc
Sans vouloir rajouter de l'eau au moulin des conspirationistes et autres partisans du "monde de merde"©, ces clés ne sont clairement pas des erreurs. Il y a des mécanismes pour camoufler le fait que la mémoire soit plus petite que celle annoncée. Par exemple un système de cache qui permet conserver les données écrites, ainsi une lecture sera servie par le cache et empêchera la détection du fait que les données n'ont jamais été réeelements inscrites à l'adresse indiquée.
De préférence il faut "ennuyer" ces vendeurs, qui, au mieux, n'ont pas fait attention à la marchandise qu'ils revendaient, au pire sont parfaitement au courant. Avec l'augmentation de la taille des clés il devient difficile de s'en rendre compte rapidement, cet exemple avec la clé de 12 Go, aurait pu me prendre des mois, il aurait alors été bien trop tard pour un remboursement.
Encore merci à l'auteur de f3probe
.
Essayez de l'utiliser, rapidement après l'achat, sur toutes les clés et mémoires
flash en tout genre afin de pouvoir embêter ces vendeurs.
Ça serait bien de rendre ce marché non rentable pour qu'il s'arrête naturellement.