Seit meiner Studienzeit hatte ich ein paar Festplatten. Von Zeit zu Zeit habe ich sie aktualisiert - ich habe die alten verkauft, aber stattdessen geräumigere. Dann war der Volumenbedarf recht groß, alles musste auf eigenen Schrauben gelagert werden. Aber die Zeit für das Internet ist gekommen und LANs sind von selbst verschwunden. Für einige Zeit wurden Festplatten als Dateireiniger für Torrents verwendet. Die Notwendigkeit eines Upgrades aufgrund mangelnden Volumens verschwand jedoch allmählich. Am Ende hatte ich ein paar ziemlich alte Festplatten, die allmählich zu sterben begannen. Sie sind noch keine Leichen, aber sie haben sich bereits mit schlechten Blöcken bedeckt und sind zum Grab gekrochen. Natürlich wurde bei den ersten Anzeichen von Übel alles, was mehr oder weniger wertvoll war, auf eine neue Schraube übertragen, und die alte ...
Es stellte sich also die Frage, aber was tun mit dem Alten? Irgendwie ist es schade, eine 4-TB-Schraube wegzuwerfen, wenn nur ein Dutzend Fehler darauf sind. Darüber hinaus wächst ihre Anzahl in den meisten Fällen nicht schnell, und diese 4-TB-Schraube kann für einige Zeit für jeden Unsinn verwendet werden. Es stellte sich die Frage, aber wie man sicherstellen kann, dass die Daten nicht auf die Fehler fallen. Die meisten Versorgungsunternehmen versuchen, diese Sektoren wiederherzustellen. Aber bei einem solchen Band stellt sich die Frage - warum? Dieser Vorgang ist sehr lang und ± Gigabyte auf einer 4-TB-Festplatte spielen keine besondere Rolle. Besonders wenn sich mehrere solcher lebenden Toten angesammelt haben. Ein wenig Google, eine Möglichkeit, Bads schnell zu markieren, stieß in Foren auf mehrere Filialen, in denen Leute nach etwas Ähnlichem suchten. Aber ich habe keine normale Lösung gefunden.
Wenn es keine Lösung gibt, wird es sein. Nachdem ich ein wenig nachgedacht hatte, entschied ich mich für den einfachsten Weg - ein Konsolendienstprogramm zu schreiben, das eine Schraube mit Dateien verbindet, und diese Dateien dann auf Lesen zu überprüfen. Datei lesen? Nun, der Sektor unter der Datei ist ganz, die Datei wird gelöscht. Nicht lesbar? Also haben wir den fehlerhaften Block gefunden, wir belassen die Datei auf diesem fehlerhaften, damit nichts anderes darauf geschrieben wird.
Von den Minuspunkten dieses Ansatzes wird nicht der Speicherplatz unter vorhandenen Dateien überprüft, sondern nur der freie Speicherplatz. Von den Vorteilen - schnell und in „Portionen“.
Insgesamt gibt es 2 Modi: Vollmodus und Reinigungsmodus.
Der Vollmodus verstopft die Festplatte mit Dateien, diese werden dann überprüft und gelöscht. Geben Sie dazu das Laufwerk und die gewünschte Block- / Dateigröße an.
BadBlocksPlaceholder [disk] [file_size_kb] BadBlocksPlaceholder e:\ 4096
Dateien werden im Ordner BadBlockPlaceholders \ yyyymmdd erstellt
Der zweite Modus dient zur weiteren Überprüfung / Reinigung. Das Verstopfen von 4-TB-Dateien und das Überprüfen auf Lesen ist ebenfalls kein sofortiger Vorgang, und manchmal müssen Sie sie in ein paar Tage aufteilen. In diesem Modus müssen Sie den Ordner mit den Platzhalterdateien angeben, die in der ersten Phase erstellt wurden.
BadBlocksPlaceholder clean e:\BadBlockPlaceholders\20190110
Lassen Sie BadBlockPlaceholders nach der Reinigung natürlich auf der Schraube liegen. Ich hoffe, jemand ist nützlich. Es wurde nur das Happy-Day-Skript getestet. Machen Sie sich also keine Sorgen und treten Sie nicht viel. Geschrieben in .net Core / C #.
Quellen sind auf
Github .