Wie kann ich Flash-Speicher auf niedriger Ebene unter Linux formatieren?


13

Mein Freund hatte Probleme mit einem USB-Stick, und ich schlug vor, dass er ein Low-Level-Format erstellt. Dann kam mir der Gedanke, dass ich nicht einmal weiß, wie man das unter Linux macht. Also ... wie kann ich Flash-Speicher auf niedriger Ebene unter Linux formatieren? Mein Freund hat versucht, ein "Vollformat" auf dem Laufwerk in Windows und es ist fehlgeschlagen.

Antworten:


12

"Low-Level-Formatierung" wurde für Disketten durchgeführt, bei denen Sie mit unterschiedlicher Dichte schreiben konnten, indem Sie die Spuren und Sektoren unterschiedlich anordneten. Für die meisten modernen Medien macht dies jedoch keinen Sinn. Seine Vorstellung, wie die Daten auf dem Gerät organisiert werden sollen, ist fest und unveränderlich. Es macht überhaupt keinen Sinn für Flash, das eher diskrete Bits als magnetische Domänen enthält. Eine Formatierung auf höherer Ebene ist möglich, die mkfsin Unix-Land ist.


Also, wenn das Dateisystem auf dem Flash-Laufwerk meines Freundes durcheinander ist, mkfsist seine einzige Option? Was ist, wenn das nicht funktioniert? Es gibt nichts anderes, was er versuchen kann?
Bmaupin

@Bryan: na ja, er könnte es auch versuchen fsck, das Äquivalent von dos's chkdsk.
Wnoise

3
Wenn @wnoise mkfsfehlschlägt, fsckhilft das nicht.
Derobert

2
Ich teste tonnenweise Flash-USB-Speicher bei der Arbeit und die Qualität davon ist überall auf der Karte zu sehen. Es würde mich also nicht wundern, wenn das Laufwerk Ihres Freundes einfach kaputt ist und nicht mehr funktioniert. Diese Dinge können auf viele verschiedene Arten kaputt gehen und Sie können nicht viel dagegen tun, außer Speicher von seriösen Quellen zu kaufen und ihn dann zu testen f3, um sicherzustellen, dass er nicht kaputt geht.
27.

8

Low-Level-Formatierung bedeutet für verschiedene Personen und in verschiedenen Kontexten viele verschiedene Dinge.

Die ursprüngliche Bedeutung war ein Schritt, der bei der Formatierung von Datenträgern erforderlich war - Datenträger benötigen Header, Synchronisierung und andere Muster, die auf den Datenträgern geschrieben sind, bevor Daten darauf gespeichert werden können. Auf diese Weise kann der Kopf erkennen, wann er sich A) auf einer Spur befindet und B) wo er sich auf der Spur befindet. Das Formatieren einer Diskette auf niedriger Ebene bereitet die Diskette darauf vor, Blöcke lesen und schreiben zu können. Frühe MFM- und RLL-PC-Festplatten können auf niedriger Ebene formatiert werden, häufig mithilfe eines Dienstprogramms, das im ROM des Festplattencontrollers (einer ISA-Karte) integriert ist. Moderne IDE- und SATA-Festplatten werden ebenfalls auf niedriger Ebene formatiert, jedoch nur im Werk.

Verschiedene andere Bedeutungen umfassen das Schreiben von Nullen in alle Blöcke, das Konfigurieren des Laufwerks zum Deaktivieren "versteckter" Bereiche wie HPA und DCO und das anschließende Nullsetzen aller Blöcke oder andere Dinge, die eher mit Partitionierung als Formatierung zu tun haben.

Raw Flash benötigt werksseitig einen anderen ersten Vorbereitungsschritt - jeder Flash "Eraseblock" (analog zu einem "Block" auf Datenträgern) muss getestet und als fehlerhaft markiert werden, wenn er tatsächlich fehlerhaft ist. Jeder "Eraseblock" hat einen zusätzlichen kleinen "OOB" -Block, der Fehlerkorrekturinformationen enthält - und an dieser Stelle wird er als fehlerhaft markiert. Sie möchten diesen Schritt NICHT wiederholen, da das Schreiben in einen fehlerhaften Block Sie daran hindern könnte, das bestimmte Bit, das ihn als fehlerhaft identifiziert, erneut zu setzen.

Aber Sie haben es nicht mit Raw Flash zu tun. Sie haben es mit einem USB-Stick zu tun. In allen Flash-Laufwerken befindet sich ein Controller-Chip, der USB-Befehle vom Host akzeptiert und im Auftrag des Hosts mit dem internen Raw-Flash kommuniziert. Einige dieser Controller-Chips können so konfiguriert werden, dass sie einen Teil des Flashs als separate CD-ROM-Partition melden oder wie zwei separate USB-Speichergeräte funktionieren. Abhängig von der Marke und dem Modell des Controller-Chips finden Sie möglicherweise ein Wiederherstellungs- oder Konfigurationsdienstprogramm (wahrscheinlich nur Windows), mit dem dieser Controller-Chip zurückgesetzt werden kann. Sie beginnen damit, das Flash-Laufwerk zu öffnen, nach dem kleineren von (wahrscheinlich) zwei Chips auf der kleinen Platine zu suchen und etwas zu googeln. Die Marke und das Modell, die auf der Außenseite des Gehäuses aufgedruckt sind, helfen Ihnen wahrscheinlich nicht, herauszufinden, wer den Controller im Inneren des Gehäuses hergestellt hat.


6

Verwenden Sie dazu den ddBefehldd if=/dev/zero of=/dev/hda

Dadurch werden ALLE Daten auf der Festplatte, alle Bootsektorinformationen und alle Daten auf allen Partitionen gelöscht. Es macht die Festplatte jedoch nicht unbrauchbar, Sie haben lediglich eine saubere Festplatte, auf der nur Partitionen erstellt und ein neuer Bootsektor installiert werden müssen. Dies geschieht, wenn Sie ein beliebiges Betriebssystem einschließlich Linux oder Windows installieren. Dies ist eine gute Möglichkeit, um fehlerhafte Partitionen, Viren, fehlerhafte Installationen oder Daten, die Sie nicht sehen möchten, zu bereinigen.


4
Sie nicht verwenden möchten, /dev/zeroein Flash - Speichergerät zu löschen. Siehe den Eintrag auf meinem Blog: fakkelbrigade.eu/chris/blog/2012/01/…
Chris Down

1
Es ist nicht ungewöhnlich falsch, / dev / zero auf ein Flash-Gerät zu schreiben. Der einzige Vorteil, den das Schreiben von 1s auf das Gerät bietet, besteht darin, dass Sie beim nächsten Schreiben auf die Festplatte möglicherweise etwas schnellere Schreibzeiten erhalten, da diese nicht zuerst gelöscht werden muss - und dies hängt davon ab, ob die Flash-Übersetzungsebene intelligent ist.
Shawn J. Goff

2
@ ChrisDown, nicht sicher, wie es in der Leistung vergleicht, aber Sie könnten verwenden badblocks -s -w -t 0xff /dev/?d??. Sie erhalten alle 1en geschrieben und auch getestet.
Zoredache

2
@ChrisDown Ihr Blogeintrag ist 404-konform.
Derobert

1
Wenn der Flash intern alle Einsen löscht, sollte die Übersetzungsschicht die Bits invertieren, da es üblich ist, Platten mit allen Nullen zu formatieren.
Psusi

6

Es gibt keine Möglichkeit , ein Low-Level - Format auf den meisten Flash - Geräten zu tun, da sie eine zusätzliche Übersetzungsschicht von USB / ATA / SD / etc haben. zu MTD , die die Low-Level - MTD Geräte verschleiert (die können Low-Level - Formatierung direkt zu , wenn bekommen sein [was Sie nicht können]).


4

mkfs.vfat /dev/hda1 wird das Äquivalent des MSDOS "Format" -Befehls tun.


2

Ich bin in der Vergangenheit auf Geräte gestoßen (allerdings schon seit einiger Zeit nicht mehr), die den Befehl SCSI FORMAT UNIT implementieren - unter Linux können Sie Folgendes verwenden:

sg_format --format / dev / sdX

Zurücksetzen dieser Geräte auf den Werkszustand (die USB-Speicherspezifikation ist von den älteren SCSI-Standards abgeleitet).

Ich glaube, dass einige neuere USB 3-Geräte auch ATA-Sicherheitsbefehle implementieren. Daher können Sie https://ata.wiki.kernel.org/index.php/ATA_Secure_Erase verwenden, wodurch die Flash-Übersetzungsebene wahrscheinlich auf die Werkseinstellungen zurückgesetzt wird state (wie es normalerweise bei SSDs der Fall ist).


1

Es gibt so etwas wie ein Low-Level-Format für Flash-Speicher, aber es wird in Fabriken mit herstellerspezifischer Software durchgeführt.

Dazu müssen Sie direkt mit dem Speichercontroller-Chip sprechen. Leider konnte ich unter Linux keine Programme finden, die das können.

Es gibt Hersteller-Tools, die eine Formatierung auf niedriger Ebene durchführen und einige Einstellungen (z. B. LED-Verhalten, schreibgeschütztes Laufwerk) und Daten (z. B. Herstellername, Modellname, Seriennummer) auf den Speichercontroller-Chipsatz schreiben können. In der Regel handelt es sich jedoch um diese Tools sind nur für Windows gemacht und sind oft in Chinesisch.

Ein solches Tool heißt "FC MP Tools". Soweit ich das beurteilen kann, wurden diese von Alcor Micro entworfen und von FirstChip (FC) hergestellt. Anscheinend steht "MP" für "Massenproduktion".

Ich verwende die Version, die ich hier gefunden habe: http://down.upantool.com/file/software/mass/FristChip/2018/iTe_MpTools_20171130.zip

Weitere Links, denen Sie folgen können: 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-repair / http://reboot.pro/topic/19901-no-alcor-mptool-is-recognising-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

Es läuft in Wine, erkennt aber die Laufwerk-Chipsätze nicht (es benötigt wahrscheinlich direkten Zugriff auf den USB-Controller, um es zu tun).

Damit dies funktioniert, benötigen Sie ein Flash-Laufwerk mit einem bestimmten Alcor-Chipsatz, der unterstützt wird. Auch hier hat jeder Anbieter seine eigene Software, die über USB mit den Controller-Chips kommuniziert.

Ich habe das:

Bildbeschreibung hier eingeben

Notieren Sie sich die Chipsatz- Teilenummer auf dem Mikrocontroller: FC1178 BC1 Das Programm FC MP Tools erkennt diesen Chipsatz als 1178BC :

Bildbeschreibung hier eingeben

Und die Software, die ich verlinkt habe, funktioniert unter Windows XP und 10. Sie stürzt jedoch ab, wenn Sie das Programm auf Englisch umstellen! Stellen Sie Ihre Einstellungen auf Englisch ein, starten Sie das Programm neu und ändern Sie nicht die Sprache - es sollte funktionieren. Vielleicht wird es in einer neueren Version behoben.

Wie auch immer - verschiedene Anbieter haben unterschiedliche Tools, es ist ein Hasenloch, es gibt keinen Standard bei AFAIK und (zumindest dieses Tool) funktioniert leider nur unter Windows.

Soweit ich weiß, testet dies den Speicherchip und schreibt eine fehlerhafte Sektorkarte auf den Controller-Chip, sodass dem Betriebssystem nur guter Speicher zur Verfügung steht. Auf diese Weise können auch teilweise beschädigte Chips verwendet und verkauft werden. Diese werden wahrscheinlich in der Fabrik nach Qualität sortiert und auf unterschiedliche Kapazitäten formatiert. Dies nennt man Binning.

Vielleicht können wir es tun, wenn jemand eine Menge dieser Tools sammeln, zurückentwickeln und ein universelles Open-Source-Tool für Linux erstellen kann - andernfalls sehe ich das nicht.


1

Obwohl eine Formatierung auf niedriger Ebene, wie sie auf Festplatten- und Diskettenlaufwerken durchgeführt wurde, für ein Flash-Laufwerk keinen Sinn macht, gibt es herstellerspezifische Dienstprogramme für Flash-Laufwerke mit "niedriger Ebene": Dies ist ein Beispiel: Alcor-Dienstprogramm für niedrige Ebene

Ich bin auf diese Frage gestoßen, als ich nach einem solchen Dienstprogramm gesucht habe, das unter Linux funktionieren würde. Es scheint jedoch, dass es den Herstellern von Flash-Laufwerken egal ist, uns glücklich zu machen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.