Modificar MBR programando
El programa de muestra a demostrar, cómo podemos modificar los valores de la entrada de la tabla de la partición de MBR se ha dado abajo. El programa modifica la entrada de la partición de los valores segundos de la tabla de la partición de MBR.
La codificación del programa se ha dado abajo:
/* El programa para modificar los valores de la partición tabula la entrada de MBR*/
# include <bios.h>
/* estructura para leer la entrada de la partición de la tabla de la partición*/
struct partition
{
unsigned char bootable ; /* Octeto activo de la partición */
unsigned char start_side ; /* Encender la cabeza*/
unsigned int start_sec_cyl ; /* combinación de comenzar número del sector y de cilindro */
unsigned char parttype ; /* Octeto del indicador del sistema de ficheros*/
unsigned char end_side ; /* Cabeza del conclusión*/
unsigned int end_sec_cyl ; /* combinación de comenzar número del sector y de cilindro */
unsigned long part_beg ; /* Número relativo del sector */
unsigned long plen ; /* Longitud de la partición en sectores */
} ;
/* Estructura para leer MBR */
struct part
{
unsigned char master_boot[446] ; /*IPL (cargador de programa inicial)*/
struct partition pt[4] ; /* Tabla de la partición*/
int lasttwo ; /* Número mágico */
} ;
struct part p ;
void main()
{
unsigned int t1,t2;
clrscr();
biosdisk ( 2, 0x80, 0, 0, 1, 1, &p ) ;
display(); /* exhibir la información de la tabla de la partición */
getch();
/*Asumamos que deseamos modificar la información de la partición de la segunda entrada de la partición de la tabla de la partición de MBR, con estos valores*/
p.pt[1].bootable = 0x80; /* Partición activa del cargador*/
p.pt[1].parttype = 0x7; /* Partición de NTFS */
p.pt[1].start_side = 0; /* Comenzar =0 principal */
p.pt[1].end_side = 31; /* Ending Head == 31 */
p.pt[1].part_beg = 808416;/* Sector relativo = 808416
*/
p.pt[1].plen = 405216; /* Sectores totales en la partición = 405216 */
|