Schreiben Programm zum Löschen Fach, um Facheintragung aus Fachtabelle von MBR zu löschen

Files Recovery Software
Heim Kontakt Details Customer Support Demo herunterladen Produkte  

 
 

Schreiben Programm zum Löschen Fach

Das Programm zum Löschen Fach wird für überprüfungszweck verwendet. Z.B. annehmen, daß du die FAT32 Dateisystemfächer in deiner Scheibe hattest. Jetzt entschiedest du, das LINUX Betriebssystem in deine Scheibe gleichzeitig anzubringen.

Wenn irgendein, wie, die Installation des Betriebssystems in-between unterbrochen wird, am Stadium, als die änderungen am Fachtabelle des MBR gebildet wurden. In solchen Fällen gibt es eine Menge Möglichkeiten, die das Fach, in dem du warst, das andere Betriebssystem anzubringen, unzugänglich wird.

In diesem Fall Speicherkapazitaet wird des verlorenen Faches zum Sein unzugänglich unbrauchbares passendes. Jedoch, wenn wir die Fachinformationen dieses Faches aus Fachtabelle irgendwie löschen, wie, wir diesen Raum verwendbaren verwendenden FDISK Befehl von DOS wieder bilden können.

Das Programm zum Löschen die Facheintragung aus der Fachtabelle von MBR ist zunächst gegeben worden:

/* Programm zum Löschen die zweite Facheintragung aus der Fachtabelle von 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();

}

Anmerkungen zum Programm:

Uncomment die biosdisk (3, 0x80, 0, 0, 1, 1, &p) Funktion zum Löschen das zweite Fach aus der Fachtabelle von MBR.

Um das Fach zu löschen, werden alle Parameter von ihm, bis 0 in der Fachtabelle Eintragung in MBR eingestellt. An das immer sich erinnern, wenn du das ausgedehnte Fach löschst, alle logischen Fächer dieses ausgedehnten Faches wird auch unzugänglich.

Die Funktion Anzeige () wird benutzt, um die Fachtabelle von MBR anzuzeigen. Die Kodierung der Funktion ist, wie folgt:

/* Funktion, zum der Fachtabelle von MBR anzuzeigen */

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
 
 
Data Recovery-Buch
 
Kapitel 1 Ein überblick über Daten-Wiederaufnahme
Kapitel 2 Einleitung der Festplatten
Kapitel 3 Logische Annäherung an Scheiben und OS
Kapitel 4 Zahlensysteme
Kapitel 5 Einleitung der C Programmierung
Kapitel 6 Einleitung in eine Computer-Grundlagen
Kapitel 7 Notwendige DOS Befehle
Kapitel 8 Scheibe-BIOS Funktionen und Unterbrechungen, die mit C anfassen
Kapitel 9 Behandlung der großen Festplatten
Kapitel 10 Daten-Wiederaufnahme von verdorbenem Floppy-Disc
Kapitel 11 Bilden der Unterstützungen
Kapitel 12 Lesenund änderndes MBR mit der Programmierung
Kapitel 13 Lesenund änderndes DBR mit der Programmierung
Kapitel 14 Programmierung für "Raw File" Wiederaufnahme
Kapitel 15 Programmierung für Daten-Wischer
Kapitel 16 Entwickeln von mehr Dienstprogrammen für Scheiben
Anlage Glossar der Daten-Wiederaufnahme Bezeichnungen
 
 
Pro Data Doctor

Heim

Produkte

Kontakt Details

Customer Support

Demo herunterladen

Allgemeine Geschäftsbedingungen

 
Pro Data Doctor