Πρόγραμμα γραψίματος για να διαγραφεί το χώρισμα, για να διαγράψει το λήμμα χωρισμάτων από τον πίνακα χωρισμάτων MBR

Data Recovery PRO DATA DOCTOR

Home | Order Online | Downloads | Contact Us | Software Knowledgebase

it | es | pt | fr | de | jp | kr | cn | ru | nl | gr


Πρόγραμμα γραψίματος για να διαγραφεί το χώρισμα

Το πρόγραμμα για να διαγραφεί το χώρισμα χρησιμοποιείται για το σκοπό ανίχνευσης λαθών. Παραδείγματος χάριν, υποθέστε ότι είχατε τα χωρίσματα συστημάτων αρχείων FAT32 στο δίσκο σας. Τώρα αποφασίσατε να εγκαταστήσετε το λειτουργικό σύστημα LINUX στο δίσκο σας ταυτόχρονα.

Εάν οποιοιδήποτε πώς, η εγκατάσταση του λειτουργικού συστήματος διακόπτεται ενδιάμεσα, στο στάδιο όταν γίνονταν οι τροποποιήσεις στον πίνακα χωρισμάτων του MBR. Σε τέτοιες περιπτώσεις υπάρχουν πολλές δυνατότητες ότι το χώρισμα, στο οποίο επρόκειτο να εγκαταστήσετε το άλλο λειτουργικό σύστημα, γίνεται απρόσιτο.

Σε αυτήν την περίπτωση το διάστημα δίσκων του χαμένου χωρίσματος γίνεται άχρηστο οφειλόμενο στην ύπαρξη απρόσιτο. Εντούτοις εάν διαγράφουμε τις πληροφορίες χωρισμάτων εκείνου του χωρίσματος από τον πίνακα χωρισμάτων οποιοιδήποτε πώς, μπορούμε πάλι να κάνουμε αυτήν την διαστημική χρησιμοποιήσιμη χρησιμοποιώντας εντολή FDISK του DOS.

Το πρόγραμμα για να διαγραφεί το λήμμα χωρισμάτων από τον πίνακα χωρισμάτων MBR έχει δοθεί έπειτα:

/* Πρόγραμμα για να διαγραφεί το δεύτερο λήμμα χωρισμάτων από τον πίνακα χωρισμάτων MBR */

# include <bios.h>

/* δομή για να διαβάσει την είσοδο χωρισμάτων από τον πίνακα χωρισμάτων */

struct partition
{
/* Ενεργός ψηφιολέξη χωρισμάτων */
unsigned char bootable ;

/* Starting Head */
unsigned char start_side ;

/* συνδυασμός αρχικού αριθμού τομέα και κυλίνδρων */

unsigned int start_sec_cyl ;

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

/* Ending Head */
unsigned char end_side ;

/* συνδυασμός αρχικού αριθμού τομέα και κυλίνδρων */

unsigned int end_sec_cyl ;

/* Σχετικός αριθμός τομέα */
unsigned long part_beg ;

/* Μήκος χωρισμάτων στους τομείς */
unsigned long plen ;
} ;

/* Δομή σε ανάγνωσες-γραφής MBR */
struct part
{

/* Ipl (αρχικός φορτωτής προγράμματος) */
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(); /* Επιδείξτε τις πληροφορίες του χωρίσματος
πίνακας μετά από την τροποποίηση */
getch();

}

Σχόλια στο πρόγραμμα:

Uncomment η λειτουργία biosdisk (3, 0x80, 0 ..0 ..1 ..1, &p) για να διαγράψει το δεύτερο χώρισμα από τον πίνακα χωρισμάτων MBR.

Για να διαγράψουν το χώρισμα, όλες οι παράμετροι από το, τίθενται ως στόχος 0 στο επιτραπέζιο λήμμα χωρισμάτων σε MBR. Πάντα θυμηθείτε ότι εάν διαγράψετε το εκτεταμένο χώρισμα, όλα τα λογικά χωρίσματα εκείνου του εκτεταμένου χωρίσματος θα γίνουν επίσης απρόσιτα.

Η λειτουργία display() χρησιμοποιείται για να επιδείξει τον πίνακα χωρισμάτων MBR. Η κωδικοποίηση της λειτουργίας είναι η ακόλουθη:

/* Λειτουργία στον πίνακα χωρισμάτων επίδειξης 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;
}

Sample Chapters from book DATA RECOVERY WITH AND WITHOUT PROGRAMMING by Author Tarun Tyagi
Data Recovery with & without Programming


Publishers of the Book
Number of Pages
ISBN
Price of the Book


BPB Publications, New Delhi, India
540
81-7656-922-4
$69.00 (Including Shipping Charges, Cost of Book and Other expenses, Free Source Code CD included with the Book)





Buy Data recovery Book

Previous page

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

Next page

© Copyright 2002-2005 DataDoctor.Biz

Home | Contact us | Downloads | Services | Resources | Terms and conditions | Site map

Website Data Recovery | recuperación de Datos | Récupération de données | Datenrettung | Recupero dati | データ復旧 | 데이터 복구 | 数据恢复 | Восстановление данных | De terugwinning van gegevens | Ανάκτηση δεδομένων
Sitemap Site map1 2 3 4 | Spanish1 2 3 | French1 2 3 | German1 2 3 | Italian1 2 3 | Portuguese1 2 3 | Japanese1 2 3 | Korean1 2 3 | Chinese1 2 3 | Russian1 2 3 | Dutch1 2 3 | Greek1 2 3
Data Recovery Book English | Spanish | French | German | Italian | Portuguese | Japanese | Korean | Chinese | Russian | Dutch | Greek