JoTheGunny
Anmeldungsdatum: 23. Mai 2009
Beiträge: 41
|
Ich habe ein kleines, meine CF Karte weigerte sich gestern schlagartig weiter zu arbeiten. Meine Spiegelreflex zeigte mir nur an, dass die CF defekt sei und ich die wechseln soll. Später am Laptop stellte sich dann heraus, dass die CF Karte ziemlich hinüber ist. Es wird vom Betriebssystem auch nur ein 939MB großer Bereich erkannt, wobei ess ich hier um eine 8GB 133x Transcend handelt. Ich habe schon versucht die Photos mit diversen Programmen zu retten, unter anderem auch TestDisk und unter Windows auch das von Transcend angebotene Tool zur Wiederherstellung von Photos, leider beides erfolgslos. TestDisk kann keine wiederherstellbare Partition finden und das Tool von Transcend gibt mir eine Fehlermeldung aus: "Error in RedFile. Error Code:27 Description: Das Laufwerk kann den angeforderten Sektor nicht finden".
Ich bin jetzt ratlos damit. Die Speicherkarte ist gerade mal drei Monate alt und funktionierte vorher hervorragend. Hat jemand eine Idee wie man die Photos retten kann? Sie befinden sich im CR2 Format (ein Rohdatenformat). Normalerweise würde ich ja sagen der Verlust sei nicht so tragisch, jedoch ging die Speicherkarte gegen Ende der 50. Geburtstagsfeier meiner Mutter kaputt und somit sind fast alle Aufnahmen weg. Ein 50. Geburtstag lässt sich leider nicht wiederholen und daher würde ich die Bilder irgendwie gerne wiederherstellen nur weiß ich auch nicht weiter. Die Partition auf der CF Karte war eine fat32.
Moderiert von redknight: ins richtige Forum verschoben.
|
redknight
Moderator & Supporter
Anmeldungsdatum: 30. Oktober 2008
Beiträge: 21725
Wohnort: Lorchhausen im schönen Rheingau
|
JoTheGunny schrieb: Die Speicherkarte ist gerade mal drei Monate alt und funktionierte vorher hervorragend.
Auch dann kann sie kaputtgehen. Hat jemand eine Idee wie man die Photos retten kann?
im Paket des von Dir installierten testdisk befindet sich auch photorec . Wenn überhaupt hiflt das noch.
|
JoTheGunny
(Themenstarter)
Anmeldungsdatum: 23. Mai 2009
Beiträge: 41
|
redknight schrieb: im Paket des von Dir installierten testdisk befindet sich auch photorec . Wenn überhaupt hiflt das noch.
Leider hilft das auch nicht, erstens erkennt aus auch nur die 939MB und dursucht auch nur diese. Des Weiteren gibt es auch eine Fehlermeldung aus: "Error reading sector 1833984".
Gibt es denn kein Programm, mit dem man blind den Speicher durchsuchen kann anstelle von nur dem erkannten Bereich? Oder kann man vielleicht auch verhindern, dass photorec abbricht wenn es den kaputten Sektor erreicht?
|
STRAGIC-IT
Anmeldungsdatum: 3. Januar 2006
Beiträge: 3242
Wohnort: Fürth
|
Hallo JoTheGunny,
ich denke das Du PHOTOREC nicht richtig einstellst. Lies bitte mal das hier durch:
http://www.cgsecurity.org/wiki/PhotoRec_Schritt_f%C3%BCr_Schritt Du kannst auch ganze Disks durchsuchen lassen und nicht nur Partitionen. Denk dran, je mehr Rettungsversuche Du machst, desto mehr Sektoren der Karte können ausfallen. Deswegen lieber erst mal an einer anderen Karte die Bedienung testen und nicht gleich am HOT-SPOT. Bye
HS
|
JoTheGunny
(Themenstarter)
Anmeldungsdatum: 23. Mai 2009
Beiträge: 41
|
Hi STRAGIC.
Alleine schon der Hinweis von photorec deutet auf ein versagen hin: "Disk capacity must be correctly detected for a successful recovery. If a disk listed above has incorrect size, check HD jumper settings, BIOS detection, and install the latest OS patches and disk drivers." Die CF Karte wird jedoch nur als 939MB erkannt anstelle als eine 8GB und ich habe keine Ahnung was man da ändern kann. Des Weiteren wird auch keine Partition erkannt, sondern nur whole disk wobei das nur die 939MB dabei sieht (ergo die Partition ist futsch). Auf diesen 939MB befindet sich allerdings nichts was wiederhergestellt werden kann. Nochmal die Frage, wie kann ich jetzt von dem gesamten Speicher wiederherstellen lassen und nicht nur diesen 939MB?
|
STRAGIC-IT
Anmeldungsdatum: 3. Januar 2006
Beiträge: 3242
Wohnort: Fürth
|
Hallo JoTheGunny,
wenn die Hardware nur noch diese Menge an Gesamtspeicher darstellt und auch GPARTED nicht mehr anzeigt kannst Du das als Totalverlust buchen. Zumindest ist die Garantie noch vorhanden. Bei mir im Geschäft gibt es folgende Regel - sobald die 2 Jahre erreicht sind, werfe ich das Teil weg und nehme ein frisches. Außerdem habe ich, nach jahrelangen Mix-Käufen, nur noch einen Hersteller: KI...N ! Der blieb als einziger mit seinen Produkten übrig. Als genialen Beweis habe noch einen 1 GByte USB-Stick (gekauft 2004) von diesem Hersteller bei dem sogar schon ein FIAT aus Versehen drüber gerollt ist. Gehäuse ist defekt - Speicher OK. Bye
HS
|
JoTheGunny
(Themenstarter)
Anmeldungsdatum: 23. Mai 2009
Beiträge: 41
|
Gparted war das erste was ich gestartet habe um mir anzusehen was noch übrig ist. Leider zeigt es auch nicht mehr an, allerdings noch die Warnung, dass es sich um eine unbekannte Partition handelt. Garantie ist mir egal, es geht mir ganz allein um die Photos. Ich werde mir keine weitere Transcend Speicherkarte kaufen, hab drei Stück von denen und zwei haben schon nach weniger als nen halben Jahr Probleme bereitet. Dann muss ich wohl doch zwei bis dreimal mehr bezahlen für CFs von SanDisk.. Ich will aber auch noch nicht aufgeben, man muss doch irgendwie den Speicher der Karte unabhängig von dem was die Hardware ermittelt ansprechen und auslesen können oder? Also einfach blind Speicherabfragen ausführen. Es reicht auch wenn ich erfahren würde wie man das mit meinetwegen C machen kann, den rest werde ich wohl selbst programmiert bekommen.
|
Heizung
Anmeldungsdatum: 2. September 2009
Beiträge: 320
Wohnort: https://...
|
Es soll Spezielle Datenrettungsfirmen geben die von solchen Sachen leben. Aber ich hab keine Ahnung wie das preislich aussieht und ob die überhaupt was machen können.
|
redknight
Moderator & Supporter
Anmeldungsdatum: 30. Oktober 2008
Beiträge: 21725
Wohnort: Lorchhausen im schönen Rheingau
|
JoTheGunny schrieb: Leider zeigt es auch nicht mehr an, allerdings noch die Warnung, dass es sich um eine unbekannte Partition handelt. Garantie ist mir egal, es geht mir ganz allein um die Photos.
Das haben wir mittlerweile verstanden, ich sehe da aber wenig bis keine Möglichkeiten. Du sagst ja nicht mal, wie du photorec aufrufst oder zeigst die Ausgabe von parted. Alles was wir Helfer tun können, ist rumraten. Ich gehe davon aus, dass du den Wikiartikel Datenrettung gelesen hast, der genauso wie dein Thread heisst. Ich werde mir keine weitere Transcend Speicherkarte kaufen, hab drei Stück von denen und zwei haben schon nach weniger als nen halben Jahr Probleme bereitet. Dann muss ich wohl doch zwei bis dreimal mehr bezahlen für CFs von SanDisk..
Das ist - verzeih mir den Einwurf - völlig irrelevant für das Problem an sich. Ich will aber auch noch nicht aufgeben, man muss doch irgendwie den Speicher der Karte unabhängig von dem was die Hardware ermittelt ansprechen und auslesen können oder? Also einfach blind Speicherabfragen ausführen. Es reicht auch wenn ich erfahren würde wie man das mit meinetwegen C machen kann, den rest werde ich wohl selbst programmiert bekommen.
Speicher ist oftmals als Verkettete List organisiert. Das heisst, das im letzten Bereich des ersten Blocks die Information steht, wo der zweite zugehörige Block ist. Und genau diese Information fehlt dir im kaputten Bereich zwischendrin. Ich glaube auch nicht, dass hier jemand die Programmierung von Kernelmodulen beherrscht. Allerdings ist das die Vorlage in C.
|
JoTheGunny
(Themenstarter)
Anmeldungsdatum: 23. Mai 2009
Beiträge: 41
|
Heizung schrieb: Es soll Spezielle Datenrettungsfirmen geben die von solchen Sachen leben. Aber ich hab keine Ahnung wie das preislich aussieht und ob die überhaupt was machen können.
Daran habe ich auch schon gedacht, nur wird das über 100€ kosten, das ist Geld was ich nicht habe. redknight schrieb: JoTheGunny schrieb: Leider zeigt es auch nicht mehr an, allerdings noch die Warnung, dass es sich um eine unbekannte Partition handelt. Garantie ist mir egal, es geht mir ganz allein um die Photos.
Das haben wir mittlerweile verstanden, ich sehe da aber wenig bis keine Möglichkeiten. Du sagst ja nicht mal, wie du photorec aufrufst oder zeigst die Ausgabe von parted. Alles was wir Helfer tun können, ist rumraten. Ich gehe davon aus, dass du den Wikiartikel Datenrettung gelesen hast, der genauso wie dein Thread heisst.
Den habe ich gelesen sowie andere Artikel zu diesem Thema.
johannes@johannes-laptop:~$ sudo parted /dev/sdb
Verwende /dev/sdb
(parted) print
Fehler: /dev/sdb: unbekannte Partitionstabelle
Fehler den es ausgibt wie ich schon zuvor erwähnte. Photorec:
Intel/PC Partition
Whole Disk (Einzige mögliche Option)
Options: Paranoid: yes; Keep corrupted Files: yes; rest no Disk /dev/sdb - 939 MB / 895 MiB (RO) - Generic USB CF Reader
Partition Start End Size in sectors
No partition 0 0 1 1020 9 42 1834560 [Whole disk]
0 files saved in /home/johannes/Desktop/recup_dir directory.
Recovery completed.
Error reading sector 1833984
Eine ähnliche Ausgabe erhalte ich auch auf die mit safecopy angelegte Kopie (bevor wer fragt, es steht dann etwas anderes als /dev/sdb [...]). Ich will aber auch noch nicht aufgeben, man muss doch irgendwie den Speicher der Karte unabhängig von dem was die Hardware ermittelt ansprechen und auslesen können oder? Also einfach blind Speicherabfragen ausführen. Es reicht auch wenn ich erfahren würde wie man das mit meinetwegen C machen kann, den rest werde ich wohl selbst programmiert bekommen.
Speicher ist oftmals als Verkettete List organisiert. Das heisst, das im letzten Bereich des ersten Blocks die Information steht, wo der zweite zugehörige Block ist. Und genau diese Information fehlt dir im kaputten Bereich zwischendrin. Ich glaube auch nicht, dass hier jemand die Programmierung von Kernelmodulen beherrscht. Allerdings ist das die Vorlage in C.
Diese fehlenden Informationen sind mir erstmal egal, die werden sich später sicher mit etwas Aufwand zusammensetzen lassen und selbst wenn ich nur 20% der Photos wiederhergestellt bekomme reicht das aus. Was ich möchte ist erstmal eine Kopie des gesamten Speichers und nicht nur der 939MB die sich mit safecopy kopieren lassen.
|
frostschutz
Anmeldungsdatum: 18. November 2010
Beiträge: 7651
|
JoTheGunny schrieb: Was ich möchte ist erstmal eine Kopie des gesamten Speichers und nicht nur der 939MB die sich mit safecopy kopieren lassen.
Wenn kein Kartenleser eine größere Kapazität erkennt bist du da am Ende deiner Möglichkeiten angelangt... PhotoRec unterstützt ja das CR2 Format (muss man evtl. in der Liste zu suchender Formate auswählen). Wenn es keine findet dann auch hier Ende Gelände. Du kannst ja mal strings auf das Image loslassen. Wenn Bilder drin sind müsstest du mit strings neben Datenmüll zumindest auch ein paar Zeilen leserliche Exif-Daten finden a la: Exif
Canon
Canon PowerShot A640
2009:01:20 14:22:07 Versuche auch mal diesen Befehl: grep -a -b --only-matching -E "(II|MM).{6}CR"$'\x02\x00' image.iso Das sucht nach Headern von CR2-Dateien bzw. deren Offsets in Rohdaten. Bei einer CR2 Datei sollte das 0 ausspucken da der Header da ja ganz am Anfang steht. Wenn das bei deinem Device / deinem Image nichts liefert ist auch nichts drin. Wenn es etwas liefert besteht zumindest noch Hoffnung...
|
chilidude
Anmeldungsdatum: 18. Februar 2010
Beiträge: 867
|
Es gibt schon noch Möglichkeiten. Eine wäre die Disk im Rohformat zu scannen und nach dem Header der Datei zu suchen. Da es sich nur um CR2 Dateien handelt, wäre dies eine gangbare Möglichkeit. Nachteil dabei ist, das die Dateien grösser sind wie ein Cluster und die Daten deswegen nicht unbedingt sequentiell abgelegt worden sein müssen. In der Praxis wird das in deinem Fall aber nicht sehr häufig auftreten. (Hängt davon ab, ob und wie oft du zwischen den Aufnahmen Fotos gelöscht hast. Du hättest also gute Chancen, den Grossteil der Fotos wiederherzustellen.
Die zweite Methode sieht vor, die Partionstabelle (der 1. Sektor) neuzuschreiben. Dazu nimmst du eine identische Disk und legst sie in den Fotoapparat. Der legt bei der Formatierung dann eine neu an. Die kopierst du dann mittels "dd" auf die kaputte Disk und versuchst nochmal den Zugriff auf logischer Ebene. In jedem Fall würde ich vorher eine Rohkopie von der CF-Disk machen. Beispielcode für Rohkopie:
dd if=/dev/sdX of=$Home/brokendisk.bin bs=10M Beispielcode für Kopie des ersten Sektors:
dd if=/dev/sdX of=$Home/brokenmbr.bin bs=512 count=1
|
frostschutz
Anmeldungsdatum: 18. November 2010
Beiträge: 7651
|
Bei defekten Disks muss man dd unbedingt noch ein conv=noerror,sync mitgeben. Sonst bricht es beim ersten Lesefehler einfach ab. Und die gewählte Blocksize sollte kleiner sein. bs=4k oder so. Bei bs=10M wird sonst gleich ein bis zu 10MB großer Bereich übersprungen.
|
chilidude
Anmeldungsdatum: 18. Februar 2010
Beiträge: 867
|
Ich hatte noch vergessen zu schreiben, dass bei Methode 1 noch Headerinformationen am Ende des Cluster liegen welche entfernt werden müssen. (Das liesse sich automatisiert machen.) Es wäre allerdings trotzdem besser ein Programm zu verwenden, welches die Linkkette auflösst.
|
JoTheGunny
(Themenstarter)
Anmeldungsdatum: 23. Mai 2009
Beiträge: 41
|
frostschutz schrieb: Versuche auch mal diesen Befehl:
grep -a -b --only-matching -E "(II|MM).{6}CR"$'\x02\x00' image.iso
Das liefert leider absolut nichts, was vermutlich auch daran liegt, dass grep ebenfalls nur die 10% der Kapazität der Speicherkarte durchsucht. chilidude schrieb: Beispielcode für Rohkopie:
dd if=/dev/sdX of=$Home/brokendisk.bin bs=10M
Kopiert ebenfalls wie safecopy nur den kleinen Teil und nicht die gesamte Kapazität der Speicherkarte. Aus irgendeinen Grund können nurnoch auf 939MB zugegriffen werden anstelle der gesamten 8GB. Gibt es eine Möglichkeit außerhalb des erkannten Bereiches etwas auszulesen? Das mit dem Sektor habe ich gelassen, da ich nicht weiß ob der momentan erkannte erste Sektor wirklich der erste Sektor auf der Speicherkarte ist. Ich möchte nicht unnötig noch etwas löschen.
|