Einzelnen Beitrag anzeigen

helgew

Registriert seit: 30. Jul 2008
125 Beiträge
 
#6

Re: HDD defekt : nur lesen über MemoryStream funktioniert ..

  Alt 9. Apr 2009, 14:21
Hallo,

zunächst habe ich keine sonderliche Lust, eine Linux Live CD zu basteln, mit der ich auch NTFS-Partitionen mounten kann, aber danke für den Hinweis.

Meine Frage begründet sich in eben der Tatsache, dass ich nicht genau verstehe, worin nun der Unterschied besteht, ob ich Daten in einen Puffer lade und von dort aus weiterschreibe. Mein erster Versuch war das Kopieren von Dateien in 2MB-Blöcken, was jedoch nicht funktionierte.

Zitat:
Quelle öffnen (Filestream)
Ziel öffnen (Filestream)

2MB Block lesen
2MB Block schreiben
2MB Block lesen
2MB Block schreiben
.
.
.

Ziel schließen
Quelle schließen

dies produzierte in gleichem Maße Fehler wie "DirSync" und xcopy.


Folgender Algorithmus funktioniert hingegen:

für kleine Dateien:

Zitat:
Memorystream erzeugen
von Quelle laden
als Ziel speichern
Stream freigeben
für große Dateien:

Zitat:
Quelle öffnen (Filestream)
Position suchen
128MB Block lesen
Quelle schließen

Ziel öffnen
ans Ende gehen
128MB Block schreiben
Ziel schließen

wiederholen, bis alles kopiert ist (der letzte Puffer ist nicht ganz gefüllt)
Lesen ist weiterhin kein Problem, ich kann mir nur nicht erklären, wieso Schreibzugriffe auf andere HDDs nicht funktionieren, während das handle auf die defekte Festplatte noch gültig ist.

Die einzige Lösung in diesem Fall kann also nur sein, den Lese/Schreibmodus der HDD derart zu begrenzen, dass der betreffende Speicherbereich des controllers nicht mehr benutzt wird, da kann mir auch kein Linux helfen. Nun denn, Vorschläge zur Güte? (Sorry, mit der Geduld geht es langsam zuende)
  Mit Zitat antworten Zitat