Master Boot Record
Master Boot Record
Master Boot Record
Un master boot record (MBR) es el primer sector ("sector cero") de un dispositivo de almacenamiento de datos, como un disco duro. A veces, se emplea para el arranque del sistema operativo con bootstrap, otras veces es usado para almacenar una tabla de particiones y, en ocasiones, se usa slo para identificar un dispositivo de disco individual, aunque en algunas mquinas esto ltimo no se usa y es ignorado.
Estructura
En la prctica, el MBR casi siempre se refiere al sector de arranque de 512 bytes, o el partition sector de una particin para ordenadores compatibles con IBM PC. Debido a la amplia implementacin de ordenadores PC clnicos, este tipo de MBR se usa mucho, hasta el punto de ser incorporado en otros tipos de ordenador y en nuevos estndares multiplataforma para el particionado y el arranque.
[2]
(4 bytes) Logical block address del primer sector de la particin (4 bytes) Longitud de la particin, en sectores
Firma de la particin
Cuando un dispositivo de almacenamiento de datos se ha particionado con un esquema de tabla de particiones del MBR (por ejemplo el esquema convencional de particionado de IBM PC), el MBR contiene las entradas primarias en la tabla de particiones. Las entradas de particiones secundarias se almacenan en registros de particiones extendidas, etiquetas de disco BSD, y particiones de metadatos del Logical Disk Manager que son descritas por esas entradas de particiones primarias. Por convencin, hay exactamente cuatro entradas de particiones primarias en el esquema de la Tabla de Particiones, aunque en algunos sistemas (pocos) se ha extendido ese nmero a cinco u ocho.[3] Cuando un dispositivo de almacenamiento de datos se ha particionado con Tabla de Particiones GUID, el Master Boot Record no contiene la tabla de particiones (aunque contiene modelos de estructuras de datos, una proteccin del MBR frente a programas que slo entienden el esquema de la Tabla de Particiones del MBR para que no creen particiones en el disco) y se usa poco debido a lo que puede afectar al particionado de disco.
Consideraciones en la programacin
Se asume que el sistema que se est programando usa un esquema MBR para BIOS, como se ha indicado antes, y la BIOS del sistema localiza un MBR vlido en un disco particionado durante la secuencia de arranque (boot sequence). Como se ha visto antes, el cdigo convencional del MBR carga y ejecuta el cdigo del volume boot record del sistema operativo (o bootloader) que se encuentra al principio de la particin activa. El MBR puede asumir simplemente que la particin activa del disco actual es desde la que se arranca o, alternativamente, puede programarse como un MBR de arranque dual. Un MBR de arranque dual debe interactuar con el usuario para determinar desde qu particin de disco se arranca y tiene que pasarle el control al MBR de otro disco duro. La BIOS cargar el primer MBR vlido que encuentre hacia la direccin fsica hexadecimal 0x7C00, y salta a esa direccin. Parte de los 512 bytes del sector se reserva para la tabla de particiones y otra informacin (ver la tabla), as que el cdigo del programa debe ser tan pequeo como para caber en poco ms de 400 bytes de memoria. El cdigo debe comunicarse con el usuario, examinar la tabla de particiones, o realizar tareas de gestin como activar la lnea A20, o cambiar a modo irreal desde modo real. Eventualmente, el MBR necesitar realizar su tarea y cargar el programa que har la siguiente fase del arranque, usando la llamada de la BIOS INT 13. Normalmente, el cdigo del sector de arranque tambin espera ser cargado de la direccin fsica 0x7C00, incluso cuando toda la memoria de las direcciones fsicas entre la 0x500 y la 0x9ffff est disponible en modo real (637 Kb y medio). Cuando el MBR ya se est ejecutando desde la posicin 0x7C00, una de sus primeras tareas normalmente es reubicarse en otro lugar de la memoria -- a menudo en la 0x7A00. Un volume boot record tiene solamente el tamao de un sector, lo cual no es un problema pues es fcil que el MBR cargue bastante ms que slo un sector. Algunos gestores de arranque son ms grandes que un sector, as que cargar ms de un sector puede acelerar el proceso de arranque.
Master boot record dd if=/dev/xxx of=mbr_63.backup bs=512 count=63 Para borrarlo, si no tenemos una copia de seguridad pero necesitamos eliminar la informacin de este sector, tenemos que poner los 512 bytes a cero: dd if=/dev/zero of=/dev/xxx bs=512 count=1 En los sistemas operativos de Microsoft no hay acceso directo al MBR. En DOS o Windows 9x, el programa de DOS fdisk junto con fdisk /mbr (del que no hay documentacin) reescribir el cdigo del MBR. En Windows 2000 y posteriores, la consola de recuperacin puede usarse para escribir el nuevo cdigo del MBR al disco duro. Existen otras utilidades para editar la tabla de particiones del MBR directamente. Si se est haciendo un backup del disco duro (lo que en ingls se conoce como ghosting) y da avisos de que no se encuentra el fichero de paginacin, seguramente se pueda solucionar con fdisk /fixmbr (ejecutado desde un disquete, ya que no se podr entrar en Windows). En DR-DOS 6 (y posiblemente otras versiones), el programa FDISK tiene una opcin para reescribir el MBR ("Re-write Master Boot Record"). Cuando se ejecuta con esa opcin se guarda el antiguo MBR en OLDMBR.BIN, que puede ser copiado en un disquete para que FDISK intente restaurar el MBR original desde l, en caso de necesidad.
Vase tambin
Arranque Proceso de arranque en Linux Tabla de particiones
Referencias
[1] Los campos de estado en los registros de la tabla de una particin no exteendida los usa el cdigo del gestor de arranque incluido en el MBR para determinar desde qu particiones se puede arrancar (tienen la marca bootable). (En nomenclatura IBM, esas particiones se marcan como startable. En otras nomenclaturas se les llama active).
Los campos de estado en los registros de la tabla de una particin extendida tienen el mismo uso que en el caso anterior, (en nomenclatura IBM, esas particiones son marcadas como bootable). Por lo general, las particiones marcadas como "bootable" contienen un gestor de arranque, que muestra una lista de las particiones desde las que se puede arrancar. 0x80 = bootable, 0x00 = non-bootable, otros = mal formado. En teora, valores distintos de 0x00 y 0x80 en este campo no tienen significado. En la prctica, su significado depende de lo que el cdigo de arranque del MBR haya predeterminado. Algunos gestores de arranque identifican el valor 0x80 con una particin bootable ("startable"). Otros slo buscan un valor distinto de cero.
[2] Estos campos tienen una limitacin de 1024 cilindros, 255 cabezas, y 63 sectores. Si una direccin CHS es demasiado larga para almacenarla aqu, se emplea una tupla (1023,254,63). [3] Andries Brouwer. Propiedades de la tabla de particiones (http:/ / www. win. tue. nl/ ~aeb/ partitions/ partition_types-2. html). Partition types. [4] Microsoft. Windows puede usar sintaxis signature() en el fichero Boot.ini (http:/ / support. microsoft. com/ kb/ 227704). KnowledgeBase.
Enlaces externos
Desensamblado del cdigo estndar del MBR (http://thestarman.pcministry.com/asm/mbr/STDMBR.htm) (en ingls) desmantelando nuestra pc (http://www.informatica-easy.webcindario.com/)* Solo en Linux(MBR) (http://www.soloenlinux.com/search/label/MBR) El cdigo de un IPL en GNU ensamblador (http://code.google.com/p/akernelloader/) P. Brady. Detalles de cmo el GRUB se almacena en un disco duro de PC (http://www.pixelbeat.org/docs/ disk/). www.pixelbeat.org. H. Gilbert. Particiones y Volmenes (http://www.yale.edu/pclt/BOOT/PARTITIO.HTM). PC Lube & Tune. Daniel B. Sedory. MBRs (Master Boot Records) (http://thestarman.pcministry.com/asm/mbr/index.html). Boot Records Revealed!. (otro repositorio) (http://mirror.href.com/thestarman/asm/mbr/index.html) (otro) (http://thestarman.narod.ru/asm/mbr/index.html) Entendiendo y trabajando con el MBR (http://www.cpqlinux.com/mbr.html). www.cpqlinux.com.
Licencia
Creative Commons Attribution-Share Alike 3.0 Unported http:/ / creativecommons. org/ licenses/ by-sa/ 3. 0/