Fehler bei Testdisk? Partitionstabelle fehlerhaft

TestDisk benutzen um verlorene Partitionen wiederherzustellen
Forum rules
Your help is welcome: there are currently few answers or none to most message posted in the German forum!
If you want to post a request for help, please consider using the English forum.
Message
Author
DerJochen
Posts: 12
Joined: 20 Apr 2015, 09:10

Re: Fehler bei Testdisk? Partitionstabelle fehlerhaft

#11 Post by DerJochen »

Ich habe jetzt gleich mehrere Fehler von Testdisk gefunden.
Es hat in einer Woche nicht ein einziges Mal einen der gefunden Einträge ins Log geschrieben.
Die Analyse war viel zu langsam 7 Tage für 3TB ist nicht hinnehmbar.
Die gefundenen Einträge sind mit Sicherheit falsch. Das einzige was sein könnte dass es sich dabei um Virtuelle Images handelt.
Die Analyse hängt bei 99% da die Zahl der gescannten Sektoren schon größer ist als die Zahl der zu scannenden Sektoren und damit wohl eine Abfrage was als nächstes passieren soll nicht funktioniert hängt es jetzt.
Gibt es einen Issue Tracker für so etwas?

Wie kann ich jetzt angeben das an den Stellen wo etwas gefunden wurde nach dem Backup des Filesystems gesucht wird um mir den nächsten Lauf mit 7 Tagen Wartezeit zu sparen?

Was wäre die schnellst Möglichkeit ein Filesystem wieder zu finden das Testdisk schon einmal gefunden hatte?

Image
Attachments
testdisk_99.png
testdisk_99.png (11 KiB) Viewed 4019 times

User avatar
Fiona
Posts: 2835
Joined: 18 Feb 2012, 17:19
Location: Ludwigsburg/Stuttgart - Germany

Re: Fehler bei Testdisk? Partitionstabelle fehlerhaft

#12 Post by Fiona »

Ich kann gegenwärtig nicht beurteilen ob in TestDisk ein Fehler vorliegt!
TestDisk sucht nach Pasrtitionen und kann auch welche anhand von Überbleibseln oder ähnlich als solche erkennen.
Die Dauer des scans bei GPT ist bekannt und im Gegensatz zu Intel-MBR werden nicht Cylinder sondern jeder Sektor gescannt.
Im Vergleich zu meinen Test mit kommerzieller Datenrettungssoftware lag ein Scan bei über 2 Tagen.
Zum Sachverhalt:
Platten werden oft mit Advanced Format ausgeliefert.
Das bedeutet Intel-MBR.
Bei Intel MBR werden Partitionen an Cylindergrenzen ausgerichtet.
Ein Cylinder hat 255 Heads (0-254-Partition und jeder Head hat 63 Sektoren) macht ungefähr 8 MB.
Oder aber als anderes Schema werden Partitionen auch an Megabytegrenzen ausgerichtet.
Unter Windows seit Vista.
Ein Scan mit Intel sucht in ca. 8 MB-Schritten gegenüber GPT (jeder Sektor je nach Platte entweder 512 Bytes oder bei 4k -4096 Bytes).
Bei einem Scan mit Intel werden auch Partitionen in Megabytegrenzen (Megabate Boundary) gleichzeitig gesucht.
Ist somit drastisch schneller.

Problem:
Du hattest mitgeteilt das es vorher eine NTFS-Partition war.
Das Backup vom Bootsektor liegt leider genau am Ende der Partition.
Daher die Prozedur und ist stressig.
Gegenwärtig gibt es leider keine Möglichkeit eine Region festzusetzen das TestDisk in bestimmte Bereiche nach einem Backup vom Bootsektor sucht.
Speziell für erfahrene Benutzer könnte es ein Anreiz sein aber würde nur NTFS betreffen.
Ist auch gegenwärtig ein mit am meisten benutztes Dateisystem.
Bai FAT32 liegt das Backup in Sektor 6 im Dateisystem und wird damit recht schnell erkannt.
Info:
http://www.cgsecurity.org/wiki/Erweiterte_FAT-Reparatur
Bei Linux-Partitionen sind Superblöcke in Gruppen über das gesamte Dateisystem verteilt.

Fragen:
Hattest du bereits deine Disk in GPT umgewandelt?
Masche aber mal gegenwärtig nichts mehr und teikle es nur mit!
Schaue auf die Disk und hat sie 4k-Sektoren?
Im Fall bräuchte ich die Log-Datei bis Analyse ohne Scan mit Quick Search etc.. um Festzustellen ob die Platte mit 4K-Sektoren als solche erkannt wird.
Ist öfters ein Problem wenn eine Platte irrtümlich mit 512 Bytes Partition und Disk 4096 erkannt wird oder umgekehrt?
TestDisk bezieht grundsätzlich Infos vom Betriebssystem, Ausnahme ist DOS welches das BIOS nutzt.
Ältere Computer können 512 Bytes emulieren damit die Platte zwecks Booten erkannt wird.
Hattest du die 32bit-Version benutzt?
Steht extra dabei nur für reine 64bit-Maschinen ohne 32bit Emulation wie WoW64.
Wäre ein Itanium-Computer zum Beispiel.
Ist von mir immer wider ein Frage und wichtig, da die Ergebnisse unterschiedlich sein können.

Fiona

DerJochen
Posts: 12
Joined: 20 Apr 2015, 09:10

Re: Fehler bei Testdisk? Partitionstabelle fehlerhaft

#13 Post by DerJochen »

Fiona wrote:Ich kann gegenwärtig nicht beurteilen ob in TestDisk ein Fehler vorliegt!
Zumindest das es bei 99% hängt und nicht mehr weitermacht weil die Zahl der gescannten Sektoren größer ist als die Zahl der Sektoren gegen die verglichen wird ist ein Fehler.
Ich hab mir jetzt nicht den Quellcode angeschaut aber ich rate mal dass hier Variablen nicht immer richtig miteinander verglichen werden und Abbruchbedingungen für den Scan bei bestimmten Fällen nie erreicht werden.

Fiona wrote:I
Problem:
Du hattest mitgeteilt das es vorher eine NTFS-Partition war.
Auslieferungszustand FAT32 MBR, am Mac in NTFS formatiert und meiner Erinnerung nach als GPT Datenträger, fast vollständig mit Datenbefüllt, Kurzschluss am USB Port,
Versuch der Datenwiederherstellung durch Tausch mit baugleicher Elektronik aber falscher Positionierungsangaben der Schreib Leseköpfe, Sicherung der Daten unter Linux, Reperatur der Festplatte mit korrekten Hardware Settings und Firmware, Neu Beschreiben der Festplatte mit den Daten in einem Unterordner, die Daten konnten aber von mir nicht in Windows angezeigt werden, Versuch der Datenrettung mit Testdisk, Zurückschreiben der Partitionsdaten durch Testdisk nachdem mir die Daten korrekt in Testdisk gelistet wurden, funktionierte nicht da die Fetsplatte von dem Datenrettungsunternehmen als MBR und nicht GPT Datenträge ausgehändigt wurde ..., danach wurde das Filesystem bei zwei Schnelldurchläufen nicht mehr gefunden, ein dritter Schnelldurchlauf nach Intel brachte das Dateisystem zu Tage und es wurden 500GB Daten korrekt mit Verzeichnisstruktur usw. wiederhergestellt bis es zur Unterbrechung der Stromversorgung kam. Danach wurden das Filesystem nicht mehr in der Suche nach Intel gefunden und die Suche nach GPT hing nach 7 Tagen bei 99% fest
Fiona wrote: Gegenwärtig gibt es leider keine Möglichkeit eine Region festzusetzen das TestDisk in bestimmte Bereiche nach einem Backup vom Bootsektor sucht.
Speziell für erfahrene Benutzer könnte es ein Anreiz sein aber würde nur NTFS betreffen.
Ist auch gegenwärtig ein mit am meisten benutztes Dateisystem.
Wenn bekannt ist welches Dateisystem verwendet wurde dann sollte es in Testdisk einen Auswahldialog geben der es einem ermöglicht durch die Auswahl das ganze Verfahren zu beschleunigen.
Wäre also ein Featurewunsch für Testdisk der aber die Arbeit damit wahrscheinlich um einiges schneller und Fehler unanfälliger machen sollte. Wer garantiert schon dass es in 7 Tagen Analyselauf nicht mal zu Stromschwankungen kommt ;-)
Fiona wrote: Hattest du bereits deine Disk in GPT umgewandelt?
Nach der Auslieferung durch den Hersteller meine ich sie konvertiert zu haben bevor ich sie das erste mal mit NTFS nutzte.
Vor dem letzten Lauf nach GPT habe ich die Platte in GPT Datenträger in Windows 8.1 konvertieren lassen, keine Partition angelegt und damit auch nichts formatiert etc..
Fiona wrote: Masche aber mal gegenwärtig nichts mehr und teikle es nur mit!
Schaue auf die Disk und hat sie 4k-Sektoren?
Im Fall bräuchte ich die Log-Datei bis Analyse ohne Scan mit Quick Search etc.. um Festzustellen ob die Platte mit 4K-Sektoren als solche erkannt wird.
Meiner Meinung nach habe ich die 4k Sektoren für die Formatierung eingestellt da ich sehr viele kleine Dateien auf die Festplatte habe schreiben lassen. (Quellcode, Sourcecode Repositories, Metadaten zu Dateien etc..)
In welchem Zustand ich die Festplatte dann zurück bekommen habe kann ich nicht sagen.
Ich weiss nur dass die Daten unter Linux zurückgeschrieben wurden aber habe nie eine Antwort auf meine Fragen bekommen wie ich denn auf die Daten zugreifen können soll ... Für das Unternehmen waren die Daten ja auf der Festplatte korrekt wieder zurückgeschrieben und damit der Supportfall erledigt.
Fiona wrote: Hattest du die 32bit-Version benutzt?
Ja, 32bit Version von Testdisk 6.14 dann 7.0 WIP, dann die Finale 7.0 vom 18.4., immer die 32bit da ich die Warnung gelesen hatte. Betriebssystem unter der die letzten Testdisk Läufe stattfanden war Windows 8.1 64bit.

Es ist übrigens nicht erlaubt im Forum TXT oder LOG Dateianhänge hochzuladen daher hier mal der letzte Log:


Thu May 14 23:24:03 2015
Command line: TestDisk

TestDisk 7.0, Data Recovery Utility, April 2015
Christophe GRENIER <grenier@cgsecurity.org>
http://www.cgsecurity.org
OS: Windows 8 (9200)
Compiler: GCC 4.8, Cygwin 1007.34
Compilation date: 2015-04-18T13:01:55
ext2fs lib: 1.42.8, ntfs lib: 10:0:0, reiserfs lib: 0.3.1-rc8, ewf lib: 20120504, curses lib: ncurses 5.9
disk_get_size_win32 IOCTL_DISK_GET_LENGTH_INFO(/dev/sda)=256060514304
disk_get_size_win32 IOCTL_DISK_GET_LENGTH_INFO(/dev/sdb)=3000592982016
disk_get_size_win32 IOCTL_DISK_GET_LENGTH_INFO(\\.\PhysicalDrive0)=256060514304
disk_get_size_win32 IOCTL_DISK_GET_LENGTH_INFO(\\.\PhysicalDrive1)=3000592982016
disk_get_size_win32 IOCTL_DISK_GET_LENGTH_INFO(\\.\C:)=241813958144
filewin32_getfilesize(\\.\E:) GetFileSize err Unzulässige Funktion.

filewin32_setfilepointer(\\.\E:) SetFilePointer err Unzulässige Funktion.

Warning: can't get size for \\.\E:
Hard disk list
Disk /dev/sda - 256 GB / 238 GiB - CHS 31130 255 63, sector size=512
Disk /dev/sdb - 3000 GB / 2794 GiB - CHS 364801 255 63, sector size=512
Drive C: - 241 GB / 225 GiB - CHS 29398 255 63, sector size=512

Partition table type (auto): EFI GPT
Disk /dev/sdb - 3000 GB / 2794 GiB
Partition table type: Intel

Analyse Disk /dev/sdb - 3000 GB / 2794 GiB - CHS 364801 255 63
Geometry from i386 MBR: head=256 sector=63
check_part_i386 1 type EE: no test
Current partition structure:
1 P EFI GPT 0 0 2 267349 89 4 4294967295

Warning: Bad ending head (CHS and LBA don't match)
No partition is bootable

search_part()
Disk /dev/sdb - 3000 GB / 2794 GiB - CHS 364801 255 63
file_pread(5,2,buffer,1565566976(364801/98/34)) lseek err Invalid argument
file_pread(5,1,buffer,1565566976(364801/98/34)) lseek err Invalid argument
file_pread(5,1,buffer,1565566975(364801/98/33)) lseek err Invalid argument
file_pread(5,14,buffer,1565566977(364801/98/35)) lseek err Invalid argument
file_pread(5,3,buffer,1565566991(364801/98/49)) lseek err Invalid argument
file_pread(5,3,buffer,1565567038(364801/99/33)) lseek err Invalid argument
file_pread(5,8,buffer,1565567054(364801/99/49)) lseek err Invalid argument
file_pread(5,11,buffer,1565567101(364801/100/33)) lseek err Invalid argument
file_pread(5,2,buffer,1565569023(364801/131/2)) lseek err Invalid argument

Results

interface_write()

No partition found or selected for recovery
simulate write!

write_mbr_i386: starting...
write_all_log_i386: starting...
No extended partition

Interface Advanced
Geometry from i386 MBR: head=256 sector=63
check_part_i386 1 type EE: no test
1 P EFI GPT 0 0 2 267349 89 4 4294967295
New options :
Dump : No
Align partition: Yes
Expert mode : Yes

Interface Advanced
Geometry from i386 MBR: head=256 sector=63
check_part_i386 1 type EE: no test
1 P EFI GPT 0 0 2 267349 89 4 4294967295

Analyse Disk /dev/sdb - 3000 GB / 2794 GiB - CHS 364801 255 63
Geometry from i386 MBR: head=256 sector=63
check_part_i386 1 type EE: no test
Current partition structure:
1 P EFI GPT 0 0 2 267349 89 4 4294967295

Warning: Bad ending head (CHS and LBA don't match)
No partition is bootable

search_part()
Disk /dev/sdb - 3000 GB / 2794 GiB - CHS 364801 255 63
BAD_RS LBA=1911419418 10858608
file_pread(5,3,buffer,1911419418(386329/179/53)) lseek err Invalid argument
file_pread(5,1,buffer,1911419418(386329/179/53)) lseek err Invalid argument
check_FAT: can't read FAT boot sector
check_part_i386 failed for partition type 0B
FAT32 386329 179 53 579850 82 53 3108908755
This partition ends after the disk limits. (start=6206386714, size=3108908755, end=9315295468, disk end=5860533168)

recover_EXT2: s_block_group_nr=0/120, s_mnt_count=1/29, s_blocks_per_group=32768, s_inodes_per_group=8144
recover_EXT2: s_blocksize=4096
recover_EXT2: s_blocks_count 3941376
recover_EXT2: part_size 31531008
Linux 284730 1 1 286692 183 12 31531008
ext4 blocksize=4096 Large_file Sparse_SB Recover, 16 GB / 15 GiB

recover_EXT2: s_block_group_nr=0/111, s_mnt_count=9/4294967295, s_blocks_per_group=32768, s_inodes_per_group=8192
recover_EXT2: s_blocksize=4096
recover_EXT2: s_blocks_count 3669760
recover_EXT2: part_size 29358080
Linux 287862 191 10 289690 52 26 29358080
ext4 blocksize=4096 Large_file Sparse_SB Recover, 15 GB / 13 GiB
file_pread(5,2,buffer,1565566976(364801/98/34)) lseek err Invalid argument
file_pread(5,1,buffer,1565566976(364801/98/34)) lseek err Invalid argument
file_pread(5,1,buffer,1565566975(364801/98/33)) lseek err Invalid argument
file_pread(5,14,buffer,1565566977(364801/98/35)) lseek err Invalid argument
file_pread(5,3,buffer,1565566991(364801/98/49)) lseek err Invalid argument
file_pread(5,3,buffer,1565567038(364801/99/33)) lseek err Invalid argument
file_pread(5,8,buffer,1565567054(364801/99/49)) lseek err Invalid argument
file_pread(5,11,buffer,1565567101(364801/100/33)) lseek err Invalid argument
file_pread(5,2,buffer,1565569023(364801/131/2)) lseek err Invalid argument
Disk /dev/sdb - 3000 GB / 2794 GiB - CHS 364801 255 63
Check the harddisk size: HD jumpers settings, BIOS detection...
The harddisk (3000 GB / 2794 GiB) seems too small! (< 4769 GB / 4441 GiB)
The following partition can't be recovered:
FAT32 386329 179 53 579850 82 53 3108908755
get_geometry_from_list_part_aux head=255 nbr=1
get_geometry_from_list_part_aux head=255 nbr=1

Results
* Linux 284730 1 1 286692 254 63 31535532
ext4 blocksize=4096 Large_file Sparse_SB Recover, 16 GB / 15 GiB
P Linux 287862 191 10 289690 52 26 29358080
ext4 blocksize=4096 Large_file Sparse_SB Recover, 15 GB / 13 GiB


dir_partition inode=2
* Linux 284730 1 1 286692 254 63 31535532
ext4 blocksize=4096 Large_file Sparse_SB Recover, 16 GB / 15 GiB
file_pread(5,8,buffer,279220209(2423524/203/25)) lseek err Invalid argument
file_pread(5,1,buffer,279220209(2423524/203/25)) lseek err Invalid argument
ext2fs_dir_iterate failed with error 1.
Directory /


dir_partition inode=2
P Linux 287862 191 10 289690 52 26 29358080
ext4 blocksize=4096 Large_file Sparse_SB Recover, 15 GB / 13 GiB
file_pread(5,8,buffer,329547768(2426657/138/34)) lseek err Invalid argument
file_pread(5,1,buffer,329547768(2426657/138/34)) lseek err Invalid argument
ext2fs_dir_iterate failed with error 1.
Directory /

interface_write()
1 * Linux 284730 1 1 286692 254 63 31535532
2 P Linux 287862 191 10 289690 52 26 29358080
simulate write!

write_mbr_i386: starting...
write_all_log_i386: starting...
No extended partition

TestDisk exited normally.

User avatar
Fiona
Posts: 2835
Joined: 18 Feb 2012, 17:19
Location: Ludwigsburg/Stuttgart - Germany

Re: Fehler bei Testdisk? Partitionstabelle fehlerhaft

#14 Post by Fiona »

Test läuft bei mir auf 3 TB, zwecks hängen bei 99 %.
Klar sind Tests auf große GPT-Platten zeitintensiv.
Auf kleinere Platten hatte es bei 99 % kurzfristig bis ca. 1 Minute gedauert.
Ich werde die Punkte mal anschneiden, für den Start eines scans oder eine Region.

DerJochen
Posts: 12
Joined: 20 Apr 2015, 09:10

Re: Fehler bei Testdisk? Partitionstabelle fehlerhaft

#15 Post by DerJochen »

Fiona wrote:Test läuft bei mir auf 3 TB, zwecks hängen bei 99 %.
Klar sind Tests auf große GPT-Platten zeitintensiv.
Auf kleinere Platten hatte es bei 99 % kurzfristig bis ca. 1 Minute gedauert.
Ich werde die Punkte mal anschneiden, für den Start eines scans oder eine Region.
Nachdem er bei 99% hing und die durchkämmten Sektoren größer waren als die zu durchkämmenden (müsste in einem der Screenshots zu sehen sein) habe ich nach 8h warten für das letzte Prozent abgebrochen ohne dass der Prozess in der Zeit noch irgendeine Aktivität gezeigt hat (Festplattenzugriffe, CPU Zeit etc.).

Denke wenn jemand der den Code kennt sich den Sourcecode anschauen würde in Bezug darauf wird man ziemlich schnell die Abbruchbedingung finden die evt. an der Stelle Fehlerhaft ist.

Gibt es eigentlich eine Debug Version von Testdisk die zusätzliche Logs schreibt?
Ich kann die gerne noch mal laufen lassen.
Übrigens für eine andere 3TB Disk bin ich gerade mit Testdisk seit 2 Tagen die Daten am kopieren.
Die Suche nach Intel hat 8h gedauert und bislang konnten alle Daten mit Verzeichnisstruktur und Dateinamen wiederhergestellt werden.
Das Problem scheint also auf die spezielle Platte und die Art der "Vorbehandlung" zurückzuführen sein.
Ich kann auch gerne mal meine Platte zur Verfügung stellen wenn meine Privaten Daten nicht im Anschluss im Internet kursieren.

User avatar
Fiona
Posts: 2835
Joined: 18 Feb 2012, 17:19
Location: Ludwigsburg/Stuttgart - Germany

Re: Fehler bei Testdisk? Partitionstabelle fehlerhaft

#16 Post by Fiona »

Es gibt die Möglichkeit in der Eingabeaufforderung mit Adminrechten und Pfad zum TestDisk-Ordner, testdisk mit folgenden Parametern laufen zu lassen:
testdisk_win.exe /log /debug

Fiona

Locked