Linux: Schneller Daten von fehlerhafter Festplatte retten

Mit ddrescue lassen sich sehr gut Daten von einer defekten Festplatte retten. Beschrieben wurde dies bereits hier. Bei großen Kapazitäten dauert dies allerdings sehr lange und man kopiert mitunter viel ungenutzten freien Speicherplatz mit.

Am Fallbeispiel einer 1 TB Notebook-Festplatte, auf der Windows 10 in einer 915 GB großen Partition installiert ist (LW C:\) und dabei lediglich nur um die 44 GB belegt sind, dauert die Erstellung eines RAW-Abbilds mit ddrescue etwas mehr als zwei Tage. Dabei ist der überweigende Teil dieses Abbilds unnütz.

Effektiver und schneller geht der Vorgang vonstatten, wenn man ddrescue vorher eine Art Karte mitgibt, auf der verzeichnet ist welche Bereiche belegt sind und folglich gesichert werden sollten. Möglich macht das Partclone.

Das betroffene Notebook wurde mit einer PartedMagic-CD gestartet und dann Schritt für Schritt wie folgt vorgegangen.

Die zu sichernde Partition mit

fdisk -l

ermitteln. Beispielausgabe:

Festplatte /dev/sda: 931,5 GiB, 1000204886016 Bytes, 1953525168 Sektoren
Einheiten: Sektoren von 1 * 512 = 512 Bytes
Sektorgröße (logisch/physikalisch): 512 Bytes / 4096 Bytes
E/A-Größe (minimal/optimal): 4096 Bytes / 4096 Bytes
Festplattenbezeichnungstyp: gpt
Festplattenbezeichner: 9FF70AAA-D393-4B8A-8EA7-9F5598BC5D28

Device          Start        End    Sectors   Size Type
/dev/sda1        2048     534527     532480   260M EFI System
/dev/sda2      534528     567295      32768    16M Microsoft reserved
/dev/sda3      567296 1920621392 1920054097 915,6G Microsoft basic data
/dev/sda4  1920622592 1924184063    3561472   1,7G Windows recovery environment
/dev/sda5  1924184064 1953513471   29329408    14G Microsoft basic data

Festplatte /dev/sdb: 465,8 GiB, 500107862016 Bytes, 976773168 Sektoren
Einheiten: Sektoren von 1 * 512 = 512 Bytes
Sektorgröße (logisch/physikalisch): 512 Bytes / 512 Bytes
E/A-Größe (minimal/optimal): 512 Bytes / 512 Bytes
Festplattenbezeichnungstyp: dos
Festplattenbezeichner: 0x7028503f

Device     Boot Start       End   Sectors   Size Id Type
/dev/sdb1        2048 976769023 976766976 465,8G  7 HPFS/NTFS/exFAT

„/dev/sda“ ist die im Notebook verbaute Festplatte, „/dev/sda3“ ist dabei die zuvor erwähnte Windows-Partition. „/dev/sdb1“ ist eine via USB angeschlossen Festplatte, die als Backup-Ziel dient.

Nun erstellt man mit Partclone die „Karte“ der belegten Sektoren:

partclone.ntfs -s /dev/sda3 -D -o sda3.domain

Beispielausgabe:

Partclone v0.2.73 http://partclone.org
Starting to map device (/dev/sda3) to domain log (sda3.domain)
Elapsed: 00:02:13, Remaining: 00:00:00, Completed: 100.00%                      
Total Time: 00:02:13, 100.00% completed!
done!
File system:  NTFS
Device size:  983,1 GB = 240006762 Blocks
Space in use:  51,7 GB = 12631621 Blocks
Free Space:   931,3 GB = 227375141 Blocks
Block size:   4096 Byte
Elapsed: 00:00:08, Remaining: 00:00:00, Completed: 100.00%, Rate: 388,04GB/min, 
current block:  240006763, total block:  240006762, Complete: 100.00%           
Total Time: 00:00:08, Ave. Rate:  388,0GB/min, 100.00% completed!
Syncing... OK!
Partclone successfully mapped the device (/dev/sda3) to the domain log (sda3.domain)
Cloned successfully.

Zuvor wurde mittels „cd /media/sdb1/Backup/RAW“ in das Ziel-Verzeichnis auf der Backup-Platte gewechselt. Gut zu wissen ist, das Partclone mit verschiedenen Dateisystemen umgehen kann. So lässt sich z.B. mit „partclone.ext3“ eintsprechend eine mit ext3 formatierte Partition behandeln.

Als letzten Schritt lässt man ddrescue mit der zuvor erstellten Datei arbeiten:

ddrescue --domain-log sda3.domain /dev/sda3 sda3.img sda3.log -n

Beispielsausgabe:

GNU ddrescue 1.18.1
Press Ctrl-C to interrupt
rescued:    51739 MB,  errsize:   12288 B,  current rate:      392 B/s
   ipos:    28704 MB,   errors:       2,    average rate:    8045 kB/s
   opos:    28704 MB, run time:    1.78 h,  successful read:       0 s ago
Finished

Mit dem so erstellten Abbild kann man weiterarbeiten, sei es um dieses direkt auf einer neuen Festplatte wiederherzustellen, dieses zu Mounten oder z.B. unter Windows mit OSFMount und weiteren Tools bearbeiten zu können.

Apropos OSFMount: Dieses läuft nur unter Windows. Bei einem wie oben erstellen Abbild muss man die Meldung nach der Abbild-/Disk-Größe (Image-/Disk-Size) mit „Ja“ bestätigen, andernfalls klappt es nicht richtig.

Evtl. muss zudem „Read-only“ deaktiviert werden, falls es mit nicht funktioniert.

Quellen:

superuser – Why can’t ddrescue just recover blocks used by the filesystem?

Partclone – [Partclone-user] [PATCH] Using partclone to create a domain log file for GNU ddrescue

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.