Hibás partición txt keresés

Fórumok

Hi!

Lészen egy virtuális gép egy LVM-en. Sajnos valahogy "meghalt", se gdisk, se gpart nem lát rajta partíciót. dd-vel olvastam ki róla adatot file-ba, és ez alapján az adatok ott vannak, "csak" meg kellene találni.
Valójában egyetlen sima, mezei .txt file-t keresnék (stat.txt). Sajnos az 50GB-os hibás partícióról nem tudok dd-vel máshová menteni egy .img-t, hogy abba kutakodjak.

Van esetleg arra mód, hogy "röptében" csekkoljam a dd kimenetét és megmondja, hogy "hol" találta a nagy olvasásban? Mer néhány 100MB-ot ki tudok írni és így kimazsolázsni a hasznos infót a .txt-ből

Mondjuk a txt-ben is strukturált adat van, arra is lehetne keresni, de kellene az, hogy honnan is kezdődik.

Valakinek ötlete esetleg?

Előre is köszönöm!

Hozzászólások

dd if=/dev/lvm-data/virtgep | hexdump -C | grep 'stat.txt'

Itt tartok, de ez "csak" úgy jó, ha a kiírt sor után egyből megszakítom a keresést, tehát néznem kell, hogy történik -e valami....

Esetleg valami más ötlet, a fenti sor továbbfejlesztése?

Azt, hogy amit csinálsz az eredeti problémádat megoldja-e nem tudom.
Amit kérdezel arra ez lehet a válasz:


| grep -Eo -m1 '.{N}?stat\.txt.{M}?'

N-t cseréld arra, hogy hány karaktert listázzon a találat előtt.
M-et cseréld arra, hogy hány karaktert listázzon a találat után.
(-m 1 opcionális, kérdés, hogy mit akarsz)

Szerk.:
Valsz ha a fájl tartalmára keresel és kicsi a fájl, akkor sokkal nagyobb sikerrel jársz.
Ha szerencséd van befért a fájl egy fájlrendszer blokkba és a grep -A, -B, -C kapcsolóival ki is tudod szedni a teljes tartalmat, de erre mondjuk már van sztem jobb megoldás is.
A hexdump nem biztos egyébként, hogy kell, illetve nem biztos, hogy az a legjobb, talán inkább strings.

♲♻♲

Nem írtad, hogy mi is az ismert struktúra, de ha esetleg olyasmi, hogy a fájl elejére és végére is lehet illeszteni, akkor:

awk 'BEGIN {RS="[\n\r\0]+"}; /elejeminta/,/vegeminta/ { print}' /dev/lvm-data/virtgep

A fentin kívül két feltételezéssel él:
- hogy a bináris romhalmazban ha más nem, előbb-utóbb sztenderd 0 előfordul;
- hogy a fájlod elég kicsi ahhoz, hogy ne legyen szétszórva a virtuális gépben (ha szét van, és tényleg döglött a virt diszk, a visszaláncolás is kevés eséllyel kecsegtet).

Persze részstruktúrák ismerete esetén fájldarabokra is lehet így vadászni.
Gyors nem lesz - ahhoz már legalább egy ftellre és mintakeresésre képes nyelvet kéne bevetni, és a fentihez hasonlóan egyhuzamban olvasni, mint végigdarabolni a lemezt.

Köszönöm az ötleteket!

Úgy tűnik több helyen is fellelhető a stat.txt. ;-)
Most próbálom belőni azokat a részeket, ahol fellelhető a file eleje (fix karakter sztringgel kezdődik) és onnan egy néhány 100MB-os imeget kiszedni, azzal gyorsabb lesz keresgélés, feldolgozás.
Maga a .txt ~150Kb-os file lenne.

A végeredményről majd beszámolok, de ha valakinek még van ötlete, kérem ne tartsa vissza. ;-)