Comment puis-je la memory flash au format bas niveau sous Linux?

Mon ami avait des problèmes avec un lecteur flash USB, et j'ai suggéré qu'il fasse un format de bas niveau. Ensuite, il m'est apparu que je ne savais même pas comment faire cela sous Linux. Alors … comment puis-je la memory flash au format bas niveau sous Linux? Mon ami a essayé un "format complet" sur le lecteur dans Windows et il a échoué.

La "mise en forme de bas niveau" a été effectuée sur des disquettes, où vous pouvez écrire à différentes densités en choisissant d'organiser différemment les pistes et les secteurs. Mais cela n'a aucun sens pour la plupart des médias modernes. Sa notion de l'organisation des 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. La mise en forme de niveau supérieur est possible, qui est mkfs dans unix-land.

utilisez la command dd pour ce dd if=/dev/zero of=/dev/hda

Cela va détruire toutes datatables sur le disque dur, toutes les informations sur le secteur d'amorçage et toutes datatables sur toutes les partitions. Il ne rendra pas le disque inutile, mais vous avez simplement un disque propre qui n'a besoin que de créer des partitions et d'installer un nouveau secteur d'amorçage, ce qui se produira lorsque vous installerez un operating system, y compris Linux ou Windows. C'est un bon moyen de nettoyer toutes les partitions, virus, installations instables ou données que vous ne voulez pas voir.

La mise en forme de bas niveau signifie beaucoup de choses différentes pour différentes personnes et dans différents contexts.

La signification originale était une étape nécessaire dans le formatting des disques – les disques durs ont besoin d'un en-tête, d'une synchronisation et d'autres templates é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 formatting de bas niveau d'une disquette prépare le disque à lire et à écrire des blocs. Les premiers disques durs MFM et RLL PC peuvent être formatés de bas niveau, souvent à l'aide d'un utilitaire embedded à la ROM du controller 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 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 mise à zéro de tous les blocs ou d'autres choses plus liées au partitionnement qu'à la mise en forme.

Le flash brut a besoin d'une étape préparatoire initiale différente à l'usine – chaque flash "eraseblock" (analogus à un "bloc" sur les disques) doit être testé et marqué comme mauvais s'il est en effet mauvais. Chaque "eraseblock" a un petit bloc "OOB" supplémentaire contenant des informations de correction d'erreur – et c'est là où il est marqué comme mauvais. Vous ne voulez pas répéter cette étape car l'écriture d'un mauvais bloc peut vous empêcher de définir ce bit particulier qui l'identifie comme incorrect.

Mais vous ne vous occupez pas de flash brut. Vous avez affaire à un lecteur flash USB. Il y a une puce de controller dans tous les lecteurs flash qui accepte les commands USB de l'hôte et parle au flash brut à l'intérieur au nom de l'hôte. Certaines de ces puces de controller peuvent être configurées pour signaler une partie du flash comme une partition de CD-ROM séparée, ou agir comme deux périphériques de stockage USB distincts. En fonction de la marque et du model de la puce du controller, il se peut que vous puissiez find un utilitaire de récupération ou de configuration (Windows possible uniquement) capable de réinitialiser cette puce du controller. Vous commenceriez par ouvrir le lecteur flash, à la search de la plus petite des deux puces (probablement) sur le petit PCB, et à faire du googling. La marque et le model imprimés à l'extérieur de l'étui ne sont pas susceptibles de vous aider à find qui a fait le controller à l'intérieur.

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

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

J'ai rencontré des périphériques dans le passé (bien que pas pour un certain time) qui implémentent la command SCSI FORMAT UNIT – de Linux, vous pouvez utiliser:

sg_format –format / dev / sdX

pour réinitialiser ces périphériques à un état d'usine (la spécification de stockage USB est dérivée des anciennes normes SCSI).

Je crois que certains nouveaux périphériques USB 3 implémentent également des commands de security ATA, de sorte que vous pouvez utiliser https://ata.wiki.kernel.org/index.php/ATA_Secure_Erase 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 disques SSD).