141 votes

Comment puis-je intentionnellement casser/corruper un secteur sur une carte SD ?

Je dois tester la résilience de certains codes de lecture/écriture pour du matériel embarqué. Comment pourrais-je sacrifier quelques cartes SD et casser plusieurs secteurs connus pour une étude contrôlée ?

La seule chose à laquelle je peux penser est d'écraser un seul secteur plusieurs millions de fois. Je me demande si un script Linux badblocks peut être créé pour exécuter son test destructeur sur un seul secteur de manière répétée pendant plusieurs heures.

15voto

GuzZzt Points 151

Je me rendrais sur ebay/aliexpress et achèterais la carte SD la moins chère que je pourrais trouver en provenance de Chine, celles qui sont "trop belles pour être vraies". Elles ont souvent des secteurs défectueux ou ont une capacité logicielle beaucoup plus grande que leur capacité réelle. De toute façon, vous devriez vous retrouver avec une carte SD défectueuse à utiliser pour les tests.

11voto

CubicleSoft Points 263

Il était une fois, il y a de nombreuses années, on m'a payé pour récupérer un ensemble de photos de remise des diplômes et vidéos à partir d'une carte SD pour une mère plutôt bouleversée. Après une inspection minutieuse, il s'est avéré que la carte avait été physiquement endommagée avec une fissure visible sur le boîtier extérieur et avait plusieurs secteurs défectueux, notamment plusieurs secteurs critiques précoces, ce qui rendait même les programmes de récupération les plus fiables à l'époque incapables de lire la carte. De plus, les outils de données forensiques coûtaient une fortune.

J'ai fini par obtenir une carte SD de même marque/taille et j'ai écrit mon propre utilitaire de sauvegarde et de restauration de données brutes personnalisé pour copier les données de la mauvaise carte sur la bonne. Chaque fois que l'utilitaire rencontrait un secteur défectueux, il réessayait un certain nombre de fois avant d'écrire uniquement des zéros pour ce secteur et, au lieu d'abandonner et s'arrêter, ignorait l'échec et passait au secteur suivant. Les tentatives de réessai ont été faites car j'avais également remarqué que certains secteurs avaient encore un taux de réussite de lecture d'environ 40%. Une fois les données sur la nouvelle carte SD, les outils de récupération qui avaient échoué auparavant ont fonctionné parfaitement avec un minimum de perte/corruption de données. Globalement, environ 98% de tous les fichiers ont été récupérés. Plusieurs éléments qui avaient été précédemment supprimés ont également été récupérés car rien n'est jamais réellement supprimé - juste marqué comme tel et lentement écrasé. Ce qui avait commencé comme un exercice de récupération de données plutôt ennuyeux est devenu l'un de mes projets de développement logiciel personnel les plus mémorables et intéressants. Au cas où vous vous poseriez la question, la mère était ravie.

En tout cas, cette histoire montre qu'il est possible d'endommager physiquement une carte SD de telle manière que les données restent accessibles mais que certains secteurs ne fonctionnent que très difficilement et que tout ce qui tente de les lire éprouve des difficultés à le faire. Le plastique des cartes SD a tendance à être assez fragile, donc plier ou découper certaines cartes bon marché pourrait faire l'affaire. Votre kilométrage peut varier.

Vous pourriez également demander autour de vous dans quelques centres de récupération de données de votre région. Comme ils se spécialisent dans la récupération de données à partir de différents appareils défaillants ou défaillants, ils devraient avoir des informations/conseils utiles et pourraient même avoir quelques cartes SD pré-endommagées en stock (par exemple, à des fins de formation) que vous pourriez obtenir d'eux.

5voto

Dennis Jaheruddin Points 419

Cette réponse est une expansion sur le commentaire de @Ruslan

  1. Remplissez votre carte SD jusqu'à environ 99,9%
  2. Réécrivez en continu le contenu des 0,1% restants (Écrivez A - supprimez - écrivez B - supprimez - Écrivez A ...)
  3. Testez (périodiquement) si vous avez déjà endommagé la carte

Alternative possible :

Je ne suis pas sûr que cela fonctionne pour vos besoins, mais peut-être qu'il suffirait en fait de endommager physiquement votre carte, ce qui pourrait être beaucoup plus rapide.

3voto

PCARR Points 129

Vous pourriez essayer d'introduire une alimentation électrique instable ou un signal de tension plus élevé.

Une panne courante pour une famille d'appareils que je connais a une forte corrélation entre la corruption de la carte SD et les contacts intermittents de la batterie.

3voto

rackandboneman Points 780

Certains vieux cartes SD de faible capacité (environ 16 Mo) utilisent des puces flash dans des boîtiers de style TSOP/TSSOP. Un atelier capable de reprise SMT (si vous faites du travail embarqué, vous pourriez avoir cette compétence en interne, sinon vérifiez les petites entreprises qui font de la réparation de téléphone/portable au niveau de la carte) pourrait éventuellement séparer et réattacher cette puce, de sorte qu'elle puisse être lue et écrite brutes (y compris les codes ECC) avec un programmateur de périphériques.

Cependant, soyez conscient que vous testerez principalement:

  • Comment votre appareil gérera les aberrations/temporisation possibles introduites par la correction d'erreur interne

et dans le pire des cas

  • comment votre appareil gère une carte SD en échec terminal.

Si vous voulez juste vérifier comment il se comporte avec un comportement erratique pour une raison quelconque à partir d'une carte SD, il est probablement préférable d'introduire simplement du bruit électrique dans les lignes d'interface (par exemple en plaçant un commutateur de bus FET entre les deux, et à des moments aléatoires en le commutant brièvement vers une source de signaux illogiques (avec néanmoins les bons niveaux électriques).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X