Master boot record

Master boot record
Almacenamiento de un master boot record estándar
Dirección Descripción
0x0000 Área de código
0x01B8 4 bytes; firma del disco (opcional)
0x01BC 2 bytes; normalmente 0x0000
0x01BE Para entradas en la tabla de particiones primarias de 16 bytes (esquema estándar de la tabla de particiones del MBR)
0x01FE 2 bytes; firma del MBR (0xAA55)

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 sólo para identificar un dispositivo de disco individual, aunque en algunas máquinas esto último no se usa y es ignorado.

Contenido

Estructura

En la práctica, el MBR casi siempre se refiere al sector de arranque de 512 bytes, o el partition sector de una partición para ordenadores compatibles con IBM PC. Debido a la amplia implementación de ordenadores PC clónicos, este tipo de MBR se usa mucho, hasta el punto de ser incorporado en otros tipos de ordenador y en nuevos estándares multiplataforma para el particionado y el arranque.

Primer sector físico del disco (pista cero)
446 bytes Código máquina (gestor de arranque)
64 bytes Tabla de particiones (4 registros que definen cada una de las particiones primarias)
2 bytes Firma de unidad arrancable ("55h AAh" en hexadecimal)
Registro de la tabla de particiones - 16 bytes
Offset Descripción
0x00 Estado[1]
0x01 Cabezal, sector y cilindro del primer sector en la partición[2]
0x04 Tipo de partición
0x05 Cabezal, Sector y Cilindro del último sector de la partición[2]
0x08 (4 bytes) Logical block address del primer sector de la partición
0x0C (4 bytes) Longitud de la partición, en sectores
Registro de partición extendida de IBM
Offset Descripción
0x00 Bits de estado[1] (bit 0 = lista del menú del gestor de arranque, el resto son bits reservados)
0x01 Firma de la partición

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 convención, hay exactamente cuatro entradas de particiones primarias en el esquema de la Tabla de Particiones, aunque en algunos sistemas (pocos) se ha extendido ese número 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 protección del MBR frente a programas que sólo 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.

MBR y arranque del sistema

En los ordenadores compatibles IBM IA-32 que usan el esquema de la Tabla de Particiones del MBR, el firmware para el arranque (bootstrapping) que se encuentra en la memoria de solo lectura del BIOS (actualmente usan memorias flash) carga y ejecuta el master boot record. Como los procesadores del modo real, el código del MBR está compuesto de instrucciones de lenguaje máquina en modo real. Ese código pasa, normalmente, el control mediante chain loading al volume boot record de la partición (primaria) activa, aunque algunos gestores de arranque reemplazan ese código convencional por el suyo.

El código convencional del MBR espera que se use el esquema de la tabla de particiones del MBR, y escanea la lista de entradas de particiones (primarias) en la tabla de particiones buscando una que esté marcada con active flag. Luego carga y ejecuta el Volume Boot Record para esa partición (así que el master boot record, como otros sectores de arranque, es un blanco para los virus que infectan el sector de arranque).

El código del MBR, modificado por algunos gestores de arranque, puede realizar una serie de tareas que son distintas según el gestor de arranque. Por ejemplo, en algunos gestores, ese código carga el resto del código del gestor de arranque desde la primera pista del disco (que es espacio libre no asignado a ninguna partición de disco) y lo ejecuta. En otros, usa una tabla de posiciones de disco, que se encuentra en el mismo espacio que el código, para localizar el código del resto del gestor de arranque y poder cargarlo y ejecutarlo. Ambas formas tienen problemas. La primera confía en el comportamiento (que no es el mismo en todas) de las utilidades de particionado de disco y la segunda requiere que la tabla de posiciones de disco se actualice una vez se hayan hecho los cambios para localizar el resto del código.

En los ordenadores que no usan procesadores IA-32, o en ordenadores que usan el esquema de la tabla de particiones GUID, ese esquema no es correcto, y el MBR no se utiliza en el arranque del sistema. En su lugar el firmware es capaz de entender directamente el esquema de particionado GPT y el formato de sistema de ficheros FAT, de modo que carga y ejecuta programas guardados como ficheros en la Partición del Sistema. El MBR, por tanto, no interviene en absoluto en el arranque del sistema (excepto indirectamente, en la medida en que podría contener la tabla de particiones si se ha usado el esquema de la Tabla de Particiones del MBR).

MBR e identificación de los discos

Además del código del arranque y la tabla de particiones, hay un tercer campo que puede estar contenido en un MBR: la firma del disco (de Windows NT). Tiene 32 bits para identificar inequívocamente el hardware de disco (no confundir con la unidad de disco — no tienen por qué ser lo mismo en discos duros extraíbles).

La firma del disco fue introducida por Windows NT 3.5, pero actualmente la usan varios sistemas operativos, incluida las versiones de la 2.6 en adelante del núcleo Linux. Windows NT usa la firma del disco como un índice en su registro, donde guarda la relación entre particiones y letras de disco. También lo usa en el fichero boot.ini para indicar las particiones con marca bootable en Windows NT.[4] GNU/Linux usa la firma del disco al arrancar para determinar la posición del volumen de arranque.

Consideraciones en la programación

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 válido en un disco particionado durante la secuencia de arranque (boot sequence). Como se ha visto antes, el código convencional del MBR carga y ejecuta el código del volume boot record del sistema operativo (o bootloader) que se encuentra al principio de la partición activa. El MBR puede asumir simplemente que la partición 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é partición de disco se arranca y tiene que pasarle el control al MBR de otro disco duro.

La BIOS cargará el primer MBR válido que encuentre hacia la dirección física hexadecimal 0x7C00, y salta a esa dirección. Parte de los 512 bytes del sector se reserva para la tabla de particiones y otra información (ver la tabla), así que el código del programa debe ser tan pequeño como para caber en poco más de 400 bytes de memoria. El código debe comunicarse con el usuario, examinar la tabla de particiones, o realizar tareas de gestión como activar la línea 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 código del sector de arranque también espera ser cargado de la dirección física 0x7C00, incluso cuando toda la memoria de las direcciones físicas entre la 0x500 y la 0x9ffff está disponible en modo real (637 Kb y medio). Cuando el MBR ya se está ejecutando desde la posición 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 tamaño de un sector, lo cual no es un problema pues es fácil que el MBR cargue bastante más que sólo un sector. Algunos gestores de arranque son más grandes que un sector, así que cargar más de un sector puede acelerar el proceso de arranque.

Hacer una copia de seguridad del MBR

En UNIX y GNU/Linux se puede usar el comando dd para hacer un backup y restaurar el MBR desde una consola.

Para hacer la copia de seguridad (backup):

dd if=/dev/xxx of=mbr.backup bs=512 count=1

Para restaurarlo:

dd if=mbr.backup of=/dev/xxx bs=512 count=1

Donde xxx es el dispositivo, que puede ser hda, sda, o cualquier otro.

Si se quiere hacer una copia de seguridad del MBR, sería recomendable copiar los primeros 63 sectores del disco (que equivaldrían al primer cilindro del disco) y no sólo el primero, ya que nuestro sistema podría tener implementado el sistema GUID, el cual utiliza más sectores para guardar la información sobre las particiones del disco duro. La instrucción sería:

 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 información 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 documentación) reescribirá el código del MBR. En Windows 2000 y posteriores, la consola de recuperación puede usarse para escribir el nuevo código 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 inglés se conoce como ghosting) y da avisos de que no se encuentra el fichero de paginación, 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 opción para reescribir el MBR ("Re-write Master Boot Record"). Cuando se ejecuta con esa opción 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.

Véase también

Referencias

  1. a b Los campos de estado en los registros de la tabla de una partición no exteendida los usa el código 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 partición 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 teoría, valores distintos de 0x00 y 0x80 en este campo no tienen significado. En la práctica, su significado depende de lo que el código de arranque del MBR haya predeterminado. Algunos gestores de arranque identifican el valor 0x80 con una partición bootable ("startable"). Otros sólo buscan un valor distinto de cero.
  2. a b Estos campos tienen una limitación de 1024 cilindros, 255 cabezas, y 63 sectores. Si una dirección CHS es demasiado larga para almacenarla aquí, se emplea una tupla (1023,254,63).
  3. Andries Brouwer. «Propiedades de la tabla de particiones». Partition types.
  4. Microsoft. «Windows puede usar sintaxis signature() en el fichero Boot.ini». KnowledgeBase.

Enlaces externos


Wikimedia foundation. 2010.

Игры ⚽ Поможем написать курсовую

Mira otros diccionarios:

  • Master Boot Record — Saltar a navegación, búsqueda Algunas 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 sólo para identificar un dispositivo de disco… …   Wikipedia Español

  • Master Boot Record — Le Master Boot Record ou MBR (parfois aussi appelé Zone amorce ) est le nom donné au premier secteur adressable d un disque dur (cylindre 0, tête 0 et secteur 1, ou secteur 0 en adressage logique) dans le cadre d un partitionnement Intel. Sa… …   Wikipédia en Français

  • Master Boot Record —   [Abk. MBR, dt. »hauptsächliche Boot Aufzeichnung«, Haupt Boot Bereich] der, erster Sektor einer Festplatte (bzw. bei mehreren: der ersten Festplatte). Er enthält Angaben zur Partitionierung der Festplatte sowie Befehle zum Starten des… …   Universal-Lexikon

  • Master Boot Record — es la traducción del inglés de registro principal de arranque (acrónimo MBR), es un sector de 512 bytes al principio del disco duro que contine una secuencia de comandos necesarios para cargar un sistema operativo. Es decir, es el primer registro …   Enciclopedia Universal

  • Master boot record — A master boot record (MBR) is a type of boot sector popularized by the IBM Personal Computer.[1] It consists of a sequence of 512 bytes located at the first sector of a data storage device such as a hard disk. MBRs are usually placed on storage… …   Wikipedia

  • Master-Boot-Record — Der Master Boot Record (kurz: MBR) ist bei BIOS basierten Computern der x86 Architektur der erste Datenblock (512 Byte) eines in Partitionen aufgeteilten Speichermediums, wie beispielsweise einer Festplatte. Der MBR enthält eine Partitionstabelle …   Deutsch Wikipedia

  • Master Boot Record — Der Master Boot Record (kurz: MBR) ist bei BIOS basierten Computern der x86 Architektur der erste Datenblock (512 Byte) eines in Partitionen aufgeteilten Speichermediums, wie beispielsweise einer Festplatte. Der MBR enthält eine Partitionstabelle …   Deutsch Wikipedia

  • Master boot record — Le Master Boot Record ou MBR (parfois aussi appelé Zone amorce ) est le nom donné au premier secteur adressable d un disque dur (cylindre 0, tête 0 et secteur 1, ou secteur 0 en adressage logique) dans le cadre d un partitionnement Intel. Sa… …   Wikipédia en Français

  • master boot record — paleidimo įrašas statusas T sritis informatika apibrėžtis Įrašas, esantis pirmajame ↑paleidimo disko sektoriuje su pirmomis komandomis, skirtomis operacinei sistemai arba ↑paleidyklei įkelti ir paleisti. Kai kompiuteris įjungiamas, pirmiausia… …   Enciklopedinis kompiuterijos žodynas

  • Master Boot Record — …   Википедия

Compartir el artículo y extractos

Link directo
Do a right-click on the link above
and select “Copy Link”