Portál AbcLinuxu, 10. listopadu 2025 02:53
hda1 - / - Debian - ext2 - podarilo se mi pripojit hda2 - /home - Debian -ext2 - nepodarilo se mi pripojit ... sda1 - nevyuzito - tady mel byt DR-DOS sda2 - nevyuzito - tady mel byt NW6.5 SYS: sda3 - swap ...
). vacsinou mi pomohol program gpart alebo testdisk. pokial nebolo na disk zapisovane tak sa mi stale podarilo particie obnovit.
c:\autoexec.bat se spustil dosovsky programek (na nazev souboru si uz nevzpomenu) a teprve ten zavedl NW. Takze tam musi byt partisna (staci mala, ale musi byt), ze ktere muze/umi DOS bootovat - tedy nejcasteji hda[1-4].todle najde vsechny bloky, ktery se tvari jako superblock ext2. zacatek partition muze byt pouze u kazdeho z vypsanych. a ted nevim, jestli jsem tam udelal prepocet, protoze superblock je az treti nebo paty blok v partition
/bla zmente na device na kterem byly ty data. (idealne ale jako jsem to delal ja vykopirujte cely disk pomoci dd if=... of=... bs=1k nekam bokem, at mate zalohu nebo pracujte s temy zkopirovanymi daty)
v fdisk-u pak prepnete jednotky na bloky (u) at mate presnou kontrolu a ty cisla by se pak mely shodovat (teda -3 nebo -5... kouknete se do /etc/magic jak detekuje "file" ext2... napsal jsem to podle toho.)
#include <stdio.h>
int main( int argc, char argv)
{
unsigned short int magic;
FILE *hda=fopen("/bla", "r");
long int block=1;
printf("bla %d\n", sizeof( unsigned short int));
if (NULL== hda) {
printf("nepodarilo se otevrit soubor\n");
return(-1);
}
if (fseek( hda, (0x438)%512, SEEK_CUR)) {
printf("chybka seeku\n");
return(-1);
}
do {
if (1> fread( &magic, 2, 1, hda)) {
printf("chybka readu\n");
return(-1);
}
printf("%8d: nacteno %8d\n", block, magic);
if (0xEF53== magic) {
printf("%8d: je to ext2\n");
}
if (fseek( hda, 510, SEEK_CUR)) {
printf("chybka seeku\n");
return(-1);
}
block++;
} while (1);
}
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.