Comment puis-je formater une mémoire flash de bas niveau sous Linux?

13

Mon ami avait des problèmes avec une clé USB et je lui ai suggéré de faire un formatage bas niveau. Puis j'ai pensé que je ne savais même pas comment faire ça sous Linux. Alors ... comment puis-je utiliser une mémoire flash de bas niveau sous Linux? Mon ami a essayé un "format complet" sur le disque sous Windows et il a échoué.

bmaupin
la source

Réponses:

12

Le "formatage de bas niveau" a été effectué sur des disquettes, où vous pouviez écrire à différentes densités en choisissant d'organiser les pistes et les secteurs différemment. Mais cela n'a aucun sens pour la plupart des médias modernes. Sa notion sur la façon d'organiser les données sur l'appareil est fixe et immuable. Cela n'a aucun sens pour le flash, qui a des bits discrets, plutôt que des domaines magnétiques. Un formatage de niveau supérieur est possible, ce qui est mkfsdans unix-land.

wnoise
la source
Donc, si le système de fichiers sur le lecteur flash de mon ami est foiré, mkfsest-ce sa seule option? Et si ça ne marche pas? Il ne peut rien essayer d'autre?
bmaupin
@Bryan: eh bien, il pourrait aussi essayer fsck, l'équivalent de dos chkdsk.
wnoise
3
@wnoise en cas d' mkfséchec, fsckne va pas aider.
derobert
2
Je teste des tonnes de mémoire flash USB au travail et la qualité est partout sur la carte, donc je ne serais pas surpris si le lecteur de votre ami est juste cassé et ne peut plus fonctionner. Ces choses peuvent se briser de différentes manières et il n'y a pas grand-chose que vous puissiez faire à ce sujet, à part acheter de la mémoire à partir de sources fiables et ensuite peut-être la tester avec f3pour vous assurer qu'elle n'est pas cassée.
unfa
8

Le formatage de bas niveau signifie beaucoup de choses différentes pour différentes personnes et dans différents contextes.

La signification d'origine était une étape nécessaire dans le formatage des disques - les lecteurs de disque ont besoin d'en-tête, de synchronisation et d'autres modèles écrits sur le support avant de pouvoir y stocker des données. De cette façon, la tête peut détecter quand elle est A) sur une piste et B) où elle est sur la piste. Le formatage de bas niveau d'une disquette prépare le disque à pouvoir lire et écrire des blocs. Les premiers disques durs MFM et RLL PC pouvaient être formatés de bas niveau, en utilisant souvent un utilitaire intégré dans la ROM du contrôleur de disque dur (une carte ISA). Les disques durs IDE et SATA modernes sont également formatés de bas niveau, mais uniquement en usine.

Diverses autres significations incluent l'écriture de zéros dans tous les blocs, la configuration du lecteur pour désactiver les zones "cachées" telles que HPA et DCO, puis la remise à zéro de tous les blocs, ou d'autres choses plus liées au partitionnement qu'au formatage.

Le flash brut a besoin d'une étape préparatoire initiale différente en usine - chaque "eraseblock" flash (analogue à un "bloc" sur les disques) doit être testé et marqué comme mauvais s'il est effectivement mauvais. Chaque "eraseblock" a un petit bloc "OOB" supplémentaire qui contient des informations de correction d'erreur - et c'est là qu'il est marqué comme mauvais. Vous ne voulez PAS répéter cette étape car l'acte d'écrire dans un mauvais bloc pourrait vous empêcher de définir à nouveau ce bit particulier qui l'identifie comme mauvais.

Mais vous n'avez pas affaire à un flash brut. Vous avez affaire à une clé USB. Il y a une puce de contrôleur dans tous les lecteurs flash qui accepte les commandes USB de l'hôte et parle au flash brut à l'intérieur au nom de l'hôte. Certaines de ces puces de contrôleur peuvent être configurées pour signaler une partie du flash en tant que partition de CD-ROM distincte, ou agir comme deux périphériques de stockage USB distincts. Selon la marque et le modèle de la puce de contrôleur, vous pourrez peut-être trouver un utilitaire de récupération ou de configuration (probablement Windows uniquement) qui pourrait réinitialiser cette puce de contrôleur. Vous commenceriez par ouvrir le lecteur flash, en recherchant le plus petit des (probablement) deux puces qui se trouvent sur le petit PCB, et en faisant des recherches sur Google. La marque et le modèle imprimés à l'extérieur du boîtier ne sont pas susceptibles de vous aider à trouver qui a fabriqué le contrôleur à l'intérieur.

LawrenceC
la source
7

Il n'y a aucun moyen de faire un formatage de bas niveau sur la plupart des périphériques flash, car ils ont une couche de traduction supplémentaire à partir d'USB / ATA / SD / etc. à MTD qui obscurcit les périphériques MTD de bas niveau (qui peuvent être formatés à bas niveau si on les accède directement [ce que vous ne pouvez pas]).

Ignacio Vazquez-Abrams
la source
6

utiliser la ddcommande pour celadd if=/dev/zero of=/dev/hda

Cela détruira TOUTES les données sur le disque dur, toutes les informations du secteur de démarrage et toutes les données sur toutes les partitions. Cela ne rendra cependant pas le disque inutile, vous avez simplement un disque propre qui n'a besoin que de partitions créées et d'un nouveau secteur de démarrage installé, ce qui se produira lorsque vous installerez n'importe quel système d'exploitation, y compris Linux ou Windows. C'est un bon moyen de nettoyer les mauvaises partitions, virus, installations bâclées ou données que vous ne souhaitez pas voir.

harish.venkat
la source
4
Vous ne pas à utiliser /dev/zeropour effacer un dispositif de mémoire flash. Voir l'entrée sur mon blog: fakkelbrigade.eu/chris/blog/2012/01/…
Chris Down
1
Ce n'est pas extrêmement mal d'écrire / dev / zero sur un périphérique flash. Le seul avantage de l'écriture de 1 sur le périphérique est que vous pourriez obtenir des temps d'écriture légèrement plus rapides la prochaine fois que vous écrivez sur le disque car il n'a pas besoin d'être effacé en premier - et cela dépend de la couche de traduction flash qui est intelligente.
Shawn J. Goff
2
@ChrisDown, Je ne sais pas comment il se compare en termes de performances, mais vous pouvez l'utiliser badblocks -s -w -t 0xff /dev/?d??. Vous obtenez tous les 1 écrits et testés aussi.
Zoredache
2
@ChrisDown, votre entrée de blog est conforme à la norme 404.
derobert
1
Si le flash est effacé en interne par tous, alors la couche de traduction doit inverser les bits car il est habituel de formater les disques avec tous les zéros.
psusi
4

mkfs.vfat /dev/hda1 fera l'équivalent de la commande "format" de MSDOS.

Paul Tomblin
la source
2

J'ai rencontré des appareils dans le passé (mais pas pendant un certain temps) qui implémentent la commande SCSI FORMAT UNIT - sous Linux, vous pouvez utiliser:

sg_format --format / dev / sdX

pour réinitialiser ces périphériques à leur état d'usine (les spécifications de stockage USB sont dérivées des anciennes normes SCSI).

Je crois que certains nouveaux périphériques USB 3 implémentent également des commandes de sécurité ATA, vous pouvez donc utiliser https://ata.wiki.kernel.org/index.php/ATA_Secure_Erase, ce qui est susceptible d'avoir pour effet de réinitialiser la couche de traduction flash à son usine état (comme c'est généralement le cas avec les SSD).

Tim Small
la source
1

Il existe un format de bas niveau pour la mémoire Flash, mais cela se fait dans les usines avec un logiciel spécifique au fournisseur.

Pour ce faire, vous devez parler directement à la puce du contrôleur de mémoire. Malheureusement, je n'ai trouvé aucun programme capable de le faire sous Linux.

Il existe des outils du fabricant qui effectuent un formatage de bas niveau et peuvent écrire certains paramètres (comme le comportement des LED, rendre le lecteur en lecture seule) et des données (comme le nom du fabricant, le nom du modèle, le numéro de série) dans le chipset du contrôleur de mémoire, mais ces outils généralement sont conçus uniquement pour Windows et sont souvent en chinois.

Un tel outil est appelé "FC MP Tools". Pour autant que je sache , ceux-ci sont conçus par Alcor Micro et fabriqués par FirstChip (FC). Apparemment, "MP" signifie "Production de masse".

J'utilise la version que j'ai trouvée ici: http://down.upantool.com/file/software/mass/FristChip/2018/iTe_MpTools_20171130.zip

Autres liens que vous pouvez suivre: https://repusb.cubava.cu/?page_id=2052 https://www.rmprepusb.com/tutorials/repair-your-usb-flash-drive http://reboot.pro/topic / 20865-alcor-micro-usb-pen-drive-drive / http://reboot.pro/topic/19901-no-alcor-mptool-is-recognizing-my-usb/ https://www.elektroda.pl /rtvforum/topic3145335.html http://flashboot.ru/files/file/30/ http://www.flashdrive-repair.com/2014/05/download-fc-mptool-v402-for-fixing.html https : //www.cdrinfo.pl/download/356133849

Il fonctionne dans Wine, mais ne détectera pas les chipsets du lecteur (il a probablement besoin d'un accès direct au contrôleur USB pour le faire).

Aussi - pour que cela fonctionne, vous devez avoir un lecteur flash avec un chipset Alcor spécifique qui est pris en charge. Encore une fois - chaque fournisseur a son propre logiciel qui communique avec les puces du contrôleur via USB.

J'ai ceci:

entrez la description de l'image ici

Notez le numéro de référence du chipset sur le microcontrôleur: FC1178 BC1 Le programme FC MP Tools l'identifiera comme un chipset 1178BC :

entrez la description de l'image ici

Et le logiciel que j'ai lié fonctionne avec Windows XP et 10. Cependant, il se bloquera si vous basculez le programme en langue anglaise! Définissez vos préférences en anglais, puis redémarrez le programme et ne changez pas la langue - cela devrait fonctionner. Peut-être que ce sera corrigé dans une version plus récente.

Quoi qu'il en soit - différents fournisseurs ont des outils différents, c'est un trou de lapin, il n'y a pas de norme ici AFAIK, et (au moins cet outil) ne fonctionnera malheureusement que sur Windows.

D'après ce que je peux dire, cela testera la puce de mémoire et écrira une mauvaise carte de secteur sur la puce du contrôleur afin qu'elle ne puisse présenter qu'une bonne mémoire au système d'exploitation. De cette façon, même des puces partiellement endommagées peuvent être utilisées et vendues. Ceux-ci sont probablement triés en usine par qualité et de faible niveau formatés selon différentes capacités. C'est ce qu'on appelle le binning.

Peut-être que si quelqu'un peut rassembler un grand nombre de ces outils, les désosser et créer un outil open source universel pour Linux, nous pouvons le faire - sinon je ne vois pas cela venir.

unfa
la source
1

Bien que le formatage de bas niveau de la façon dont il a été effectué sur les disques durs et les lecteurs de disquette n'ait aucun sens pour un lecteur flash, il existe des utilitaires spécifiques au fabricant pour les lecteurs flash de "format de bas niveau": Ceci est un exemple: utilitaire de formatage bas niveau Alcor

Je suis tombé sur cette question en recherchant un tel utilitaire qui fonctionnerait sous Linux. Cependant, il semble que les fabricants de lecteurs flash ne se soucient pas de nous faire plaisir.

Tarik
la source