Wie hebe ich die Markierung eines NTFS-Clusters als fehlerhaft auf?

14

Wie hebe ich die Markierung von Clustern als fehlerhaft in NTFS auf?

Hintergrund

Ich bin aus Versehen gerannt

>chkdsk /R

auf meiner SSD, wo

/ R : Findet fehlerhafte Sektoren und stellt lesbare Informationen wieder her (impliziert / F)
/ F : Behebt Fehler auf der Festplatte

Und jetzt habe ich einen Cluster auf meinem Laufwerk als schlecht markiert. Ich muss die Markierung dieses Clusters aufheben.

Hinweis : Es chkdskbesteht die Möglichkeit, einen Cluster erneut zu bewerten und für die Verwendung zurückzugeben:

/ B : Nur NTFS: Wertet fehlerhafte Cluster auf dem Volume neu aus (impliziert / R)

Leider hebt diese Option die Markierung des Clusters nur auf, wenn es nicht mehr fehlerhaft ist. Ich möchte, dass der Cluster trotzdem nicht markiert ist.

Wie hebe ich die Markierung eines NTFS-Clusters als fehlerhaft auf?

Warum tust du das?

Es ist egal, warum ich und Hunderte von anderen die Frage stellen. Das Problem ist jedoch, dass sich auf meiner Festplatte ein fehlerhafter Sektor befindet. Es ist Zeit, das Laufwerk durch ein neues zu ersetzen. Dazu spiegeln Sie die SSD mithilfe der Windows-Software- Spiegelung auf eine andere SSD .

Leider verhindert ein bekannter Fehler in der Windows NTFS-Spiegelung, dass die Spiegelung abgeschlossen wird, wie in KB325615 dokumentiert :

Software Mirror kann nicht erstellt werden, wenn die Festplatte fehlerhafte Blöcke enthält

DMIO arbeitet unterhalb des Dateisystems und bricht den Spiegelungsvorgang ab, wenn E / A-Fehler beim Lesen von einem Sektor auf der Quellfestplatte oder beim Versuch, die Daten auf die Zielfestplatte zu schreiben, festgestellt werden.

Die offensichtliche Problemumgehung bestand darin, das Betriebssystemvolumen zu verkleinern , sodass der fehlerhafte Sektor über das Ende des Volumens hinausgeht. Wenn Sie in Windows 7 versuchen, ein Volume zu verkleinern , werden die Dateien automatisch aus dem Weg geräumt.

Bildbeschreibung hier eingeben

Das ist eine gute Sache. Wenn Sie in früheren Zeiten ein Volume verkleinern wollten, mussten Sie ein Defragmentierungsprogramm verwenden, mit dem alle Dateien zur Vorderseite des Laufwerks verschoben wurden. am ende lücken lassen.

Leider gibt es jetzt eine nicht verschiebbare Datei im Weg: $BadClus. Beim Defragmentierungsvorgang wird die nicht verschiebbare Datei im Ereignisprotokoll notiert:

Unter Volume OS (C :) wurde eine Volumenschrumpfungsanalyse gestartet. Dieser Ereignisprotokolleintrag enthält Informationen zu der letzten nicht verschiebbaren Datei, die die maximale Anzahl der zurückfordernden Bytes begrenzen kann.

Diagnosedetails:

  • Die letzte nicht verschiebbare Datei scheint zu sein: \ $ BadClus: $ Bad: $ DATA
  • Der letzte Cluster der Datei lautet: 0xdc1ded
  • Potentielles Ziel (LCN-Adresse) verkleinern: 0xa91bd9
  • Die NTFS-Dateiflaggen lauten: -S - D
  • Schrumpfphase: <Analyse>

So:

  • Ich kann die Lautstärke nicht spiegeln, bis die fehlerhaften Sektoren entfernt sind
  • Durch Verringern der Lautstärke werden die fehlerhaften Sektoren entfernt
  • Ich kann das Volumen nicht verkleinern, bis die Sparse- $BadClusDatei verschoben wird
  • Ich kann mich nicht bewegen, $BadCluswährend es physisch schlechte Cluster besetzt
  • $BadClus wird fehlerhafte Cluster physisch belegen, während NTFS den Cluster für fehlerhaft hält

Wie hebe ich die Markierung eines Clusters als fehlerhaft auf?

Auch für Ghosting-Laufwerke

Die Lösung für mein Problem würde auch für den häufigsten Fall funktionieren:

Jemand macht ein Laufwerk mit fehlerhaften Sektoren zu einem neuen Laufwerk, und auf dem guten Laufwerk werden diese Cluster immer noch als fehlerhaft markiert, obwohl sie gut sind. Es kommt also vor, dass ihnen eine Problemumgehung zur Verfügung steht:

>chkdsk /B

Nur dass das in meinem Fall nicht funktioniert. (Und selbst wenn es in meinem Fall funktioniert hat, ist es nicht die Frage, die ich stelle.)

Bonus Chatter

Natürlich unterhält die Kingson SSD keine Ersatzsektoren. Wenn dies der Fall wäre, könnte der Ersatzsektor für mich transparent neu zugeordnet werden, und NTFS würde nicht versuchen, Gedanken zu überdenken.

SpinRite

Ich habe versucht, das SS-Laufwerk zu schleudern. Es stößt auf den fehlerhaften Sektor, kann jedoch keine Werte vom Laufwerk abrufen:

══════════════════╤═══════════════════════════╤═════════════════════════════════
cylinder : 7,183  │     data samples : 1,999  │  first uncertain bit : · · · · ·
  sector :    17  │   unique samples :     0  │   last uncertain bit : · · · · ·
    head :   187  │  discarded sples :     0  │   uncertain bit span : · · · · ·

Die Anzahl der Datenstichproben beträgt bis zu 2.000, wechselt dann wieder auf Null und wird fortgesetzt.

Bildbeschreibung hier eingeben

Nach ungefähr 20 Loops (dh 40.000 Datenabtastungen) gab ich auf.

Klonen

Nochmal; Lassen Sie uns die Frage nicht mit dem Beispiel verwechseln. Die Frage ist, wie Sie die Markierung von Clustern in NTFS aufheben können. Lange nachdem ich aufgegeben und die SSD weggeworfen habe, bleibt die Frage immer noch. Verwechsle mein Problem nicht mit der Frage. Das bedeutet nicht, dass ich versuchen könnte, mein Problem tatsächlich zu lösen:

DriveImageXML erreicht den fehlerhaften Sektor und bricht ab.

GParted kann nicht geladen werden. Ein grafischer Startbildschirm wird angezeigt, und in einem Konsolenfenster wird der Text gescrollt, gefolgt von einem schwarzen Bildschirm ohne Inhalt

Clonezilla weigert sich, meine SSD zu klonen:

Dieser Datenträger enthält eine nicht übereinstimmende GPT- und MGR-Partition: / dev / sdb Dies
führt zu Verwirrung bei Clonezill und kann dazu führen, dass das gespeicherte Image unbrauchbar wird oder der Datenträger nicht geklont werden kann.

Bitte beheben Sie dieses Problem und starten Sie Clonezilla erneut.
Programm abgebrochen.

Bildbeschreibung hier eingeben

Wie hebe ich die Markierung eines Clusters als fehlerhaft in NTFS auf?

Ian Boyd
quelle
Möchten Sie eine Windows-Lösung oder wäre die Verwendung von Linux in Ordnung?
Thomas Weller
2
@ThomasW. Ich habe nichts dagegen, ein selbst-Boot-Tool; Verwenden Sie ein beliebiges Betriebssystem. Natürlich würde ich ein GUI-Tool bevorzugen. 1990 hatte ich es satt, Kommandozeilen zu benutzen. Ich fing an, mich mit CreateFiledem direkten Öffnen des Volumes zu beschäftigen. Aber mir wurde klar, dass ich bei Null anfangen und alle undokumentierten Datenstrukturen analysieren müsste. Ich öffnete das Volume direkt für die Bearbeitung in meinem bevorzugten Hex-Editor , hatte aber den gleichen Nachteil, da ich Hex-Strukturen manuell analysieren musste.
Ian Boyd
@ThomasW. warum fragst du überhaupt, ob du nicht antworten kannst, wie man es unter Linux repariert? Wenn Sie nur sagen möchten, dass das Reparieren von einer Linux-Live-CD in Ordnung ist, dann wissen Sie nicht, wie, aber er sollte ein Linux-Tag hinzufügen.
Barlop
Wenn Sie MBR für die Festplattenpartition verwenden, löscht sgdisk -z / dev / sdb das GPT und das Clonezilla kopiert es. backup-utility.com/articles/…
Cybernard

Antworten:

7

Ich werde auf die Titelfrage nichts mehr antworten. 1

Beachten Sie zunächst, dass der Sektor nicht lesbar ist, wenn er wirklich schlecht ist, wenn die Markierung aufgehoben wird. Daher wird Ihre Klon-Software wahrscheinlich ersticken, wenn Sie sie stattdessen lesen.

In NTFS wird ein Cluster als fehlerhaft markiert, indem er einem speziellen Stream$BadClus:$Bad , einer Sparse-Datei, zugewiesen wird.

Was Sie brauchen, ist zu

  • Bearbeiten Sie die Runlist , um die entsprechenden zugewiesenen Blöcke zu entfernen
  • Markieren Sie die entsprechenden Cluster als frei in $Bitmap.

  • Um alle fehlerhaften Blöcke zu entfernen , gibt es ntfsfix -b -d( -b= Liste fehlerhafter Blöcke löschen, -d= Flag "Dirty" löschen / nicht setzen) (eine andere Methodentfstruncate macht genau dasselbe 2 ).

    • Es kann zu geringfügigen Inkonsistenzen in den Metadaten führen (in meinem Fall wurden einige Indizes anscheinend unsortiert). Ich bin mir nicht sicher, warum. Führen Sie das Programm also entweder manuell chkdsk -faus oder lassen Sie -des beim Start von Windows aus, wenn / falls FS-Fehler auftreten.
  • Das Löschen eines bestimmten Blocks ist viel schwieriger, da ich keine vorhandene Software gefunden habe, die dies ohne weiteres ausführen kann . 3 . NTFS Bad Sectors Resolution: Die $ BadClus-Metadatei - Katys Code beschreibt den Weg - im Grunde geht es darum, die Runlist und die Bitmap von Hand zu bearbeiten.


1 Nur weil der Umgang mit fehlerhaften Sektoren + NTFS + Klonen ein zu weites Thema ist. Ich beantworte gerne diejenigen, die in direktem Zusammenhang mit der Sache stehen.
2 überprüfte den Quellcode von ntfsfix v2015.3.14.
3 für die eindringlich diejenigen, diese können sie nicht tun: ntfscat(nicht unlesbare Sektoren lesen kann), ntfscp(kann nicht versetzt schreiben) ntfstruncate, ntfsfallocate, dd(kann nicht geöffnet werden $BadClus:$Badzum Schreiben)

ivan_pozdeev
quelle
Dies sollte als beste Antwort ausgewählt werden.
Hashim
1

Ich hatte eine Festplatte, auf der sich einige fehlerhafte Cluster gebildet haben. Ich habe es durch ein bekanntermaßen gutes Laufwerk ersetzt. Der Wiederherstellungsprozess stellte die fehlerhaften Clusterdaten sowie die anderen Daten wieder her. Dies war auf einem Windows 7 Enterprise-Computer.

Meine Lösung bestand darin, "chkdsk d: / b" auszuführen (wie bereits vorgeschlagen). Das / b weist es an (nur für NTFS), zuvor markierte fehlerhafte Cluster erneut zu scannen. Zumindest in meinem Fall (und ich würde vermuten, dass alle Versionen / b unterstützen) wird die Liste der fehlerhaften Cluster unmittelbar vor Beginn des Lesescans gelöscht. Sobald die Meldung "Entfernen von X-Clustern aus der Datei für fehlerhafte Cluster" angezeigt wird, sollten Sie in der Lage sein, den chkdsk-Prozess abzubrechen (da nur Daten gelesen werden).

Hinweis: Es besteht die Möglichkeit, dass chkdsk die fehlerhafte Cluster-Datei zum Zeitpunkt des Abbruchs aktualisiert, wenn am Anfang des Laufwerks ein fehlerhafter Sektor gefunden wurde. Ich bin das Risiko eingegangen und habe die fehlerhafte Cluster-Datei erfolgreich zurückgesetzt, ohne dass einige andere Programme heruntergeladen werden mussten, für die danach ohnehin eine vollständige chkdsk erforderlich ist. YMMV.

CasaDeRobison
quelle
Das hat tatsächlich funktioniert. Nach Schritt 2 schließen Sie einfach das cmdFenster. Führen Sie chkdsk d: /fdann CHKDSK discovered free space marked as allocated in the volume bitmap.Folgendes aus Windows has made corrections to the file system..
Davor Josipovic
0

Zunächst ist es am besten, das Laufwerk zu klonen. Dann chkdsk /Bauf dem neuen Arbeitslaufwerk verwenden.

Nun zum Aufheben der Markierung eines wirklich schlechten Sektors, der schwierig ist. Du könntest benutzen:

  • SpinRite oder
  • mhdd (Remap einschalten)

Jedes Produkt sollte den fehlerhaften Sektor neu zuordnen, dann sollte CHKDSK / B die Markierung aufheben.

Laden Sie gparted oder partedmagic ISO herunter . Booten Sie von dort und verkleinern Sie die Partition.

Dies wird funktionieren , da Windows nicht ausgeführt wird, so ist diese Software die Partition verkleinern , egal was passiert. Dann chkdsk /Berledigen wir den Rest.

Wenn all dies fehlschlägt, stoßen Sie jetzt auf eine hässliche Straße der Schmerzen. Sie müssen einen Sektoreditor besorgen und das Dateisystem manuell bearbeiten. Leider liegt es außerhalb meines Wissens für NTFS. Für FAT oder FAT32 ist es super einfach.

Cybernard
quelle
Als SSD gibt es keine Ersatzsektoren, in die eine Neuzuordnung erforderlich ist. Aus diesem Grund notiert der SMART des Laufwerks weiterhin eine Pending Sector Countvon Null und eine Reallocated Sector Countvon Null.
Ian Boyd
Katy Coe hat ein exzellentes Blog, das sich mit den Eingeweiden von NTFS befasst. Aber meine Augen glasig , wenn ich Offsets beginnen musste Berechnung logische Clusternummern, virtuelle Cluster - Nummern, und die Tatsache , dass $ BadClus ist eine Ersatzdatei , die tatsächlich die Größe des gesamten Volumens ist. Ich würde mit ziemlicher Sicherheit mein (funktionierendes) Laufwerk zerstören.
Ian Boyd
2
Tatsächlich hat eine SSD Tonnen von Ersatzsektoren. In der Tat hat eine 120-GB-SSD wahrscheinlich bis zu 8 GB an Ersatzsektoren. Warum Ihr Laufwerk nicht automatisch neu zugeordnet wurde, ist mir unbekannt. Verwenden Sie gparted und verkleinern Sie die Partition.
Cybernard
Möglicherweise handelt es sich um ein altes, nicht mehr unterstütztes 64-GB-Kingston-Laufwerk. Oder vielleicht ist es nur ein Fehler in der Firmware des Laufwerks, bei dem vergessen wurde, eine Sektor-Neuzuordnung durchzuführen.
Ian Boyd
Außerdem schlägt das Klonen von Laufwerken fehl, wenn der Sektor fehlerhaft ist (mindestens DriveImageXML ).
Ian Boyd
0

Da Sie versuchen, Ihre Festplatte zu spiegeln (und anscheinend Windows 7 verwenden), gibt es einen anderen Ansatz:

Verwenden Sie das integrierte Tool, um ein Backup zu erstellen, das auf einer guten Festplatte wiederhergestellt werden soll. Gehen Sie zu Systemsteuerung, System und Sicherheit, Sicherung. Erstellen Sie dort ein System-Image und eine Systemreparaturdiskette.

Danach können Sie die alte fehlerhafte Festplatte durch eine gute ersetzen und dann das System mithilfe der Systemreparaturdiskette und der erstellten Sicherung in den Status zurückversetzen.

João Paulo
quelle
0

Das Paket gddrescue (gddrescue - GNU-Datenrettungstool) sollte den Job für Sie erledigen.

Besorgen Sie sich eine Debian-basierte Standalone-Distribution (CD oder USB-Stick) und installieren Sie gddrescue mit "sudo apt-get install gddrescue". Klonen Sie dann die SSd, indem Sie ein Terminalfenster öffnen und Folgendes ausführen:

ddrescue -f / dev / sda / dev / sdb ./ddrescue.log

(wobei / dev / sda die Quelle und / dev / sdb die Ziel-SSD ist)

ddrescue versucht, den fehlerhaften Block wiederherzustellen, und überspringt ihn, falls dies nicht möglich ist.

Wenn Sie fertig sind, sollte chkdsk / f / b den Job abschließen.

visnotjl
quelle
0

Es sieht so aus, als ob Ihr Ziel darin besteht, die Größe der Partition zu verkleinern, und Windows wird sie aufgrund der $ BadClus-Datei, die aufgrund fehlerhafter Cluster vorhanden ist, nicht verkleinern.

Ich habe eine alternative Lösung für Sie, die das Laufwerk verkleinern sollte, ohne direkt mit der $ BadClus-Datei umgehen zu müssen. Verwenden Sie den Partitions-Assistenten, um die Partition zu verkleinern. Der Partition Wizard ist einfach zu bedienen, für den nichtkommerziellen Gebrauch kostenlos, kann in Windows mit einer grafischen Benutzeroberfläche oder von einer CD oder einem USB-Boot ausgeführt werden, auf dem ein kleines Linux ausgeführt wird. Anschließend erhalten Sie dieselbe grafische Benutzeroberfläche. Dieses Programm kann auch gelöschte Partitionen wiederherstellen und zwischen MBR- und GPT-Partitionstabellen konvertieren.

Ich habe Probleme damit, dass Windows eine Partition nicht über einen bestimmten Punkt hinaus verkleinert. Dann werde ich den Partitions-Assistenten auf derselben Partition ausführen, was problemlos funktioniert. Ich nehme an, der Partitionsassistent ist bereit, die $ BadClus-Datei zu ignorieren. Ich benutze dieses Programm seit über 8 Jahren und habe mir schließlich die Pro-Version gekauft, weil sie es verdient hat. Ich fand dieses Programm als Ersatz für PQMagic, das ich 1996 gekauft hatte. Es war ein fantastisches DOS-Partitionierungsprogramm für kleinere Laufwerke.

Erik
quelle