Programma di scrittura per cancellare divisorio, per cancellare l'entrata del divisorio dalla tabella del divisorio di MBR

Files Recovery Software
Home Dettagli contatto Supporto Clienti Scarica la Demo Prodotti  

 
 

Programma di scrittura per cancellare divisorio

Il programma per cancellare il divisorio è usato per scopo d'analisi guasti. Per esempio, supporre che avete avuti i divisorii del sistema di lima FAT32 nel vostro disc. Ora avete deciso installare simultaneamente il sistema operativo di LINUX nel vostro disc.

Se c'è ne come, l'installazione del sistema operativo è interrotta nel fratempo, nella fase quando le modifiche stavano apportande alla tabella del divisorio del MBR. In tali casi ci sono possibilità molto che il divisorio, in cui stavate andando installare l'altro sistema operativo, diventa inaccessibile.

In questo caso lo spazio di disc del divisorio perso si trasforma in in inutile dovuto essere inaccessibile. Tuttavia se cancelliamo le informazioni del divisorio di quel divisorio dalla tabella del divisorio affatto come, possiamo ancora rendere a questo spazio l'ordine usando utilizzabile di FDISK del DOS.

Il programma per cancellare l'entrata del divisorio dalla tabella del divisorio di MBR è stato dato dopo:

/* Programma per cancellare la seconda entrata del divisorio dalla tabella del divisorio di MBR */

# include <bios.h>

/* structure to read the partition entry from partition table */

struct partition
{
/* Active Partition Byte */
unsigned char bootable ;

/* Starting Head */
unsigned char start_side ;

/* combination of Starting sector and cylinder number */

unsigned int start_sec_cyl ;

/* File system Indicator Byte */
unsigned char parttype ;

/* Ending Head */
unsigned char end_side ;

/* combination of Starting sector and cylinder number */

unsigned int end_sec_cyl ;

/* Relative Sector Number */
unsigned long part_beg ;

/* Partition length in sectors */
unsigned long plen ;
} ;

/* Structure to read-write MBR */
struct part
{

/* IPL (Initial Program Loader) */
unsigned char master_boot[446] ;

/* Partition table */
struct partition pt[4] ;

/* Magic Number */
int lasttwo ;
} ;

struct part p ;

void main()
{
unsigned int t1,t2;
clrscr();
biosdisk ( 2, 0x80, 0, 0, 1, 1, &p ) ;
display(); /* display the information of
Partition table */
getch();

p.pt[1].bootable = 0;
p.pt[1].start_side = 0 ;
p.pt[1].start_sec_cyl = 0 ;
p.pt[1].parttype = 0;
p.pt[1].end_side = 0;
p.pt[1].end_sec_cyl = 0;
p.pt[1].part_beg = 0;
p.pt[1].plen = 0;

printf("\n\n\n After Deleting the Second Partition
Entry From MBR Partition Table,");
printf("\n The Partition Table will Be Changed as
Follows: ");

/* To Delete Second Partition Information from partition
table of MBR Remove the forward slashes from the
biosdisk( ) function. Do not use Carelessly, Partition
information of Second Partition of Partition Table will
be Erased Completely. */

////// biosdisk ( 3, 0x80, 0, 0, 1, 1, &p ) ;
display(); /* Display the information of partition
table after modification */
getch();

}

Osservazioni sul programma:

Uncomment the biosdisk ( 3, 0x80, 0, 0, 1, 1, &p ) funzionare per cancellare il secondo divisorio dalla tabella del divisorio di MBR.

Per cancellare il divisorio, tutti i parametri di esso, sono regolati a 0 nell'entrata della tabella del divisorio in MBR. Ricordar sempre di quello se cancellate il divisorio esteso, tutti i divisorii logici di quel divisorio esteso inoltre diventerà inaccessibile.

L'esposizione di funzione () è usata per visualizzare la tabella del divisorio di MBR. La codificazione della funzione è come segue:

/* Funzione per visualizzare la tabella del divisorio di MBR */

display()
{
unsigned int s_sec, s_trk, e_sec, e_trk, i, t1, t2 ;
char type[20], boot[5] ;

printf("\n\nPart. Boot Starting location Ending Location Relative Number of");

printf("\nType Side Cylinder Sector Side Cylinder Sector Sectors Sectors\n");

for ( i = 0 ; i <= 3 ; i++ )
{
if ( p.pt[i].bootable == 0x80 )
strcpy ( boot, "Yes" ) ;
else
strcpy ( boot, "No" ) ;

switch ( p.pt[i].parttype )
{
case 0x00 :
strcpy ( type, "Unused" ) ; break ;
case 0x1 :
strcpy ( type, "FAT12" ) ; break ;
case 0x2 :
strcpy ( type, "Xenix" ) ; break ;
case 0x3 :
strcpy ( type, "Xenix:usr" ) ; break ;
case 0x4 :
strcpy ( type, "FAT16<32M" ) ; break ;
case 0x5 :
strcpy ( type, "DOS-Ext." ) ; break ;
case 0x6 :
strcpy ( type, "FAT16>32M" ) ; break ;
case 0x7 :
strcpy ( type, "NTFS" ) ; break ;
case 0x0b :
strcpy ( type, "FAT32" ) ; break ;
case 0x0c :
strcpy ( type, "FAT32-LBA" ) ; break ;
case 0x0d :
strcpy ( type, "VFAT16" ) ; break ;
case 0x0e :
strcpy ( type, "VFAT16-LBA" ) ; break ;
case 0x0f :
strcpy ( type, "FAT EXT" ) ; break ;
case 0x17 :
strcpy ( type, "HPFS" ) ; break ;
case 0x81 :
strcpy ( type, "Old LINUX" ) ; break ;
case 0x82 :
strcpy ( type, "LinuxSwap" ) ; break ;
case 0x83 :
strcpy ( type, "LinuxNative" ) ; break ;
case 0x85 :
strcpy ( type, "Linux Ext." ) ; break ;
default :
strcpy ( type, "Unknown" ) ; break ;
}

s_sec = ( p.pt[i].start_sec_cyl & 0x3f ) ;
t1 = ( p.pt[i].start_sec_cyl & 0xff00 ) >> 8 ;
t2 = ( p.pt[i].start_sec_cyl & 0x00c0 ) << 2 ;
s_trk = t1 | t2 ;

e_sec = ( p.pt[i].end_sec_cyl & 0x3f ) ;
t1 = ( p.pt[i].end_sec_cyl & 0xff00 ) >> 8 ;
t2 = ( p.pt[i].end_sec_cyl & 0x00c0 ) << 2 ;
e_trk = t1 | t2 ;

printf ( "\n%6s %3s", type, boot ) ;
printf ( "%4d %6d %8d", p.pt[i].start_side,
s_trk,s_sec ) ;
printf ( "%7d %6u %8u", p.pt[i].end_side, e_trk,
e_sec ) ;
printf ( " %10lu %10lu", p.pt[i].part_beg,
p.pt[i].plen ) ;

}

return 0;
}


Previous page

page 1 | 2 | 3 | 4 | 5 | 6

Next page
 
 
Di recupero di dati libro
 
Capitolo 1 Una descrizione del recupero di dati
Capitolo 2 Introduzione dei dischi rigidi
Capitolo 3 Metodo logico ai disc ed all'OS
Capitolo 4 Sistemi di numero
Capitolo 5 Introduzione di programmazione di C
Capitolo 6 Introduzione ai principi fondamentali del calcolatore
Capitolo 7 Ordini necessari del DOS
Capitolo 8 Funzioni ed interruzioni di Disc-ESSERE VIVENTE che maneggiano con la C
Capitolo 9 Maneggiamento dei dischi rigidi grandi
Capitolo 10 Recupero di dati dal disco magnetico corrotto
Capitolo 11 Fare i sostegni
Capitolo 12 MBR leggente e di modificazione con la programmazione
Chapter 13 DBR leggente e di modificazione con la programmazione
Capitolo 14 Programmandosi per "il recupero della lima grezza"
Capitolo 15 Programmandosi per i pulitori di dati
Capitolo 16 Sviluppare più programmi di utilità per i disc
Appendice Glossario dei termini di recupero di dati
 
 
Pro Data Doctor

Home

Prodotti

Dettagli contatto

Supporto Clienti

Scarica la Demo

Termini e Condizioni

 
Pro Data Doctor