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

Files Recovery Software
Σπίτι Στοιχεία Επικοινωνίας Εξυπηρέτηση Πελατών Κατεβάστε το Demo Προϊόντα  

 
 

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

Το πρόγραμμα για να διαγραφεί το χώρισμα χρησιμοποιείται για το σκοπό ανίχνευσης λαθών. Παραδείγματος χάριν, υποθέστε ότι είχατε τα χωρίσματα συστημάτων αρχείων 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;
}


Previous page

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

Next page
 
 
Data Recovery Book
 
Κεφάλαιο 1 Μια επισκόπηση της αποκατάστασης στοιχείων
Κεφάλαιο 2 Εισαγωγή των σκληρών δίσκων
Κεφάλαιο 3 Λογική προσέγγιση στους δίσκους και το OS
Κεφάλαιο 4 Συστήματα αριθμού
Κεφάλαιο 5 Εισαγωγή του προγραμματισμού γ
Κεφάλαιο 6 Εισαγωγή στα βασικά υπολογιστών
Κεφάλαιο 7 Απαραίτητες εντολές DOS
Κεφάλαιο 8 Δίσκος-ζωντανό ον λειτουργεί και διακόπτει το χειρισμό με το γ
Κεφάλαιο 9 Διαχειριζόμενοι μεγάλοι σκληροί δίσκοι
Κεφάλαιο 10 Αποκατάσταση στοιχείων από την αλλοιωμένη δισκέτα
Κεφάλαιο 11 Παραγωγή των στηριγμάτων
Κεφάλαιο 12 Ανάγνωση και τροποποίηση MBR με τον προγραμματισμό
Κεφάλαιο 13 Ανάγνωση και τροποποίηση DBR με τον προγραμματισμό
Κεφάλαιο 14 Προγραμματισμός για την αποκατάσταση "ακατέργαστων αρχείων"
Κεφάλαιο 15 Προγραμματισμός για τις ψήκτρες στοιχείων
Κεφάλαιο 16 Ανάπτυξη περισσότερων χρησιμοτήτων για τους δίσκους
Προσάρτημα Γλωσσάριο όρων αποκατάστασης στοιχείων
 
 
Pro Data Doctor

Σπίτι

Προϊόντα

Στοιχεία Επικοινωνίας

Εξυπηρέτηση Πελατών

Κατεβάστε το Demo

Όροι και Προϋποθέσεις

 
Pro Data Doctor