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!
- 5299 megtekintés
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?
- A hozzászóláshoz be kell jelentkezni
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.
♲♻♲
- A hozzászóláshoz be kell jelentkezni
dd if=/dev/lvm-data/virtgep | hexdump -C | grep -n -m 1 'stat.txt'
Mondjuk akkor nem jó, ha a stat.txt 2 sort foglal el a hexdumpban. Esetleg próbáld meg ezt:
grep -a -b -o 'stat.txt' /dev/lvm-data/virtgep
--
Debian - The "What?!" starts not!
http://nyizsa.blogspot.com
- A hozzászóláshoz be kell jelentkezni
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.
- A hozzászóláshoz be kell jelentkezni
A file eleje: "# TLWWW-STAT EEEEHHNN"
Ezt követően minden egyes sor 13 bevezető szóközzel kezdődik, majd egy dátum pl.: 20100902, majd további adatok, a végén kocsivissza soremelés.
Nem minden nap íródott a file-hoz sor, így a végét nem tudom sajnos.
- A hozzászóláshoz be kell jelentkezni
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. ;-)
- A hozzászóláshoz be kell jelentkezni