Arbeitet man sich in die Materie der Datenanalyse und -wiederherstellung unter Linux ein, kommt man auch automatisch mit den grundlegenden Prinzipien dieser in Kontakt. Ein Prinzip ist: Bei der Analyse und Wiederherstellung sind die Ursprungsdaten nicht zu beschreiben. Entsprechend werden Geräte, Partitionen und Dateisysteme stets nur als Read-Only gemounted oder nur auf 1-zu-1 Abzügen gearbeitet.
Diese Abzüge haben aber einen Haken: Analysiere ich zum Beispiel ein 12 TB Dateisystem, welches partiell überschrieben wurde, so bräuchte ich einen vergleichsweise großen Zwischenspeicher (oder vergleichbares RAID-Array) um einen komplette Abzug zu speichern. Würde ich den Speicher in eine große 12-24 TB externe Festplatte laden, wäre das zwar auch möglich, würde aber ewig dauern.
Es empfiehlt sich also, sofern das zu analysierende Dateisystem keine defekten oder teildefekten Speichermedien hat, einfach in Overlay darauf zu setzen. Das Overlay kann auf ein Read-Only Blockgerät gelegt werden. Der Speicherort des Overlays ist dabei frei wählbar: So ist zum Beispiel auch eine Ramdisk oder ein schneller SSD-Speicher hierfür möglich.
Wie geht das?
qemu-img create -b /dev/sda -f qcow2 -F raw ./overlay.qcow2
qemu-nbd --connect=/dev/nbd0 ./overlay.qcow2
Im Beispiel wird ein Overlay über /dev/sda gelegt, die „übergelegten“ Daten landen in overlay.qcow2. Das nutzbare Blockgerät wird im Beispiel /dev/nbd0 sein.