Portál AbcLinuxu, 19. března 2024 12:29
hexedit /dev/hdb2Me se neco podobneho stalo taky a ty data sem z toho disku uz nedostal... Stalo se to pri poklesu napeti v siti, problikl monitor a z kernelu byl panic. Ale to je tak dva roky zpet a fs byl ext2. Hmmmm...., jeste me napada, ze nekde v Brne je firma, co umi ty data z disku dostat, ale je to bezzaruky a drahy jako pr*se. Co ale uz nevim, je nazev firmy a adresa. Jo a naucil jsem jednu vec - zalohovat porad
pro jistotu na nepripojeny filesystem:
fdisk /dev/hd?? posloupnosti "p" "enter" "q" "enter" zkontrolovat v sloupci id jesli ma partition cislo 83
file -s /dev/hd?? poznava v tom ten filesystem? jestli ne, tak je nejspis prvni superblock poskozeny
tune2fs -l /dev/hd?? vypise to srozumitelne informace, podobaji se priblizne pocty bloku flagy verze superblocku apod? jestli ne mozna odesel do vecnych lovist prvni superblock a pomohlo by najiti druhyho
dumpe2fs -obBLOCK /dev/hd?? pripadne
dumpe2fs -obBLOCK -oB BLOCKSIZE /dev/hd?? nemam predstavu, jestli se to pokusi hadat z kristalove koule velikost bloku na disku (jesli to provede podobny odhad, jako mkfs... podle velikosti partition, ale protoze to je stejny balik programu nad stejnou knihovnou, tak mozna jo, takze zbyva otazka jestli ste si hral s parametry filesystemu pri jeho tvoreni), kazdopadne hledani superblocku, ktery by mohly byt v poradku
mount -o ro,errors=continue,sb=BLOCK /dev/hd?? /nekde
z man mount sb=n Instead of block 1, use block n as superblock. This could be useful when the filesystem has been dam- aged. (Earlier, copies of the superblock would be made every 8192 blocks: in block 1, 8193, 16385, ... (and one got hundreds or even thousands of copies on a big filesystem). Since version 1.08, mke2fs has a -s (sparse superblock) option to reduce the number of backup superblocks, and since version 1.15 this is the default. Note that this may mean that ext2 filesystems created by a recent mke2fs cannot be mounted r/w under Linux 2.0.*.) The block number here uses 1k units. Thus, if you want to use logical block 32768 on a filesystem with 4k blocks, use "sb=131072".
mozna pomuze nasledujici hruba sila pro hledani superblocku
X=0; while true; do dumpe2fs -ob $X && echo zeby $X && break; $X=$(($X+1)); done
pripadne pak pokracovat uz jen od posledne vypsaneho X nebo jeho nasledovnika tj. rucne udelat X=$(($X+1)) a spustit dal ten while to X pak asi pouzit mount -o sb=$X,ro,errors=continue ...
zamerne je tam pri mountovani flag read only a pokracovani pri chybach, aby se z toho daly dostat data treba i z casti vadny. ve chvili, kdy budou vsechny pouzitelny data zalohovany na jiny partition, tak:
umount
e2fsck -fpb $X /dev/hd..
nic dalsiho me uz asi nenapadne, co by slo udelat jen tak metodou pokus mozna to vyjde...
Tiskni Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.