stringtranslate.com

Registro de arranque maestro

Un registro de arranque maestro ( MBR ) es un tipo de sector de arranque en el primer bloque de dispositivos de almacenamiento masivo de computadoras particionadas , como discos fijos o unidades extraíbles, destinados a usarse con sistemas compatibles con IBM PC y superiores. El concepto de MBR se presentó públicamente en 1983 con PC DOS 2.0 .

El MBR contiene la información sobre cómo se dividen los sectores del disco (también conocidos como "bloques") en particiones, cada una de las cuales contiene teóricamente un sistema de archivos. El MBR también contiene código ejecutable que funciona como cargador para el sistema operativo instalado, generalmente transfiriendo el control a la segunda etapa del cargador o en conjunto con el registro de arranque de volumen (VBR) de cada partición. Este código MBR generalmente se conoce como cargador de arranque.

La organización de la tabla de particiones en el MBR limita el espacio de almacenamiento máximo direccionable de un disco particionado a 2  TiB (2 32  × 512 bytes) . [1] Los enfoques para aumentar ligeramente este límite utilizando aritmética de 32 bits o sectores de 4096 bytes no están oficialmente admitidos, ya que rompen fatalmente la compatibilidad con los cargadores de arranque existentes, la mayoría de los sistemas operativos compatibles con MBR y las herramientas de sistema asociadas, y pueden causar una corrupción grave de datos cuando se utilizan fuera de entornos de sistema estrechamente controlados. Por lo tanto, el esquema de particionamiento basado en MBR está en proceso de ser reemplazado por el esquema de tabla de particiones GUID (GPT) en las nuevas computadoras. Una GPT puede coexistir con un MBR para proporcionar alguna forma limitada de compatibilidad con versiones anteriores para sistemas más antiguos.

Los MBR no están presentes en medios no particionados, como disquetes , superfloppies u otros dispositivos de almacenamiento configurados para comportarse como tales, ni tampoco están necesariamente presentes en unidades utilizadas en plataformas que no sean PC.

Descripción general

El soporte para medios particionados, y por lo tanto el registro de arranque maestro (MBR), se introdujo con IBM PC DOS 2.0 en marzo de 1983 para soportar el disco duro de 10 MB del entonces nuevo IBM Personal Computer XT , que todavía usaba el sistema de archivos FAT12 . La versión original del MBR fue escrita por David Litton de IBM en junio de 1982. La tabla de particiones admitía hasta cuatro particiones primarias . Esto no cambió cuando se introdujo FAT16 como un nuevo sistema de archivos con DOS 3.0. El soporte para una partición extendida , un tipo especial de partición primaria utilizada como contenedor para albergar otras particiones, se agregó con DOS 3.2, y las unidades lógicas anidadas dentro de una partición extendida llegaron con DOS 3.30. Dado que MS-DOS, PC DOS, OS/2 y Windows nunca pudieron arrancar desde ellos, el formato MBR y el código de arranque permanecieron casi sin cambios en funcionalidad (excepto algunas implementaciones de terceros) a lo largo de las eras de DOS y OS/2 hasta 1996.

En 1996, se introdujo el soporte para el direccionamiento de bloques lógicos (LBA) en Windows 95B y MS-DOS 7.10 (que no debe confundirse con IBM PC-DOS 7.1) para admitir discos de más de 8 GB. También se introdujeron las marcas de tiempo de disco . [2] Esto también reflejó la idea de que el MBR está destinado a ser independiente del sistema operativo y del sistema de archivos. Sin embargo, esta regla de diseño se vio parcialmente comprometida en las implementaciones más recientes de Microsoft del MBR, que imponen el acceso CHS para los tipos de partición FAT16B y FAT32 0x06 / 0x0B , mientras que LBA se utiliza para 0x0E / 0x0C .

A pesar de que a veces no se documentan bien ciertos detalles intrínsecos del formato MBR (lo que ocasionalmente causaba problemas de compatibilidad), se lo ha adoptado ampliamente como un estándar de facto de la industria, debido a la amplia popularidad de las computadoras compatibles con PC y su naturaleza semiestática durante décadas. Esto llegó incluso al punto de ser compatible con sistemas operativos de otras plataformas. A veces, esto se sumaba a otros estándares preexistentes o multiplataforma para el arranque y el particionamiento. [3]

Sin embargo, las entradas de partición MBR y el código de arranque MBR utilizado en sistemas operativos comerciales están limitados a 32 bits. [1] Por lo tanto, el tamaño máximo de disco admitido en discos que utilizan sectores de 512 bytes (ya sean reales o emulados) por el esquema de partición MBR (sin aritmética de 32 bits) está limitado a 2 TiB. [1] En consecuencia, se debe utilizar un esquema de partición diferente para discos más grandes, ya que se han vuelto ampliamente disponibles desde 2010. Por lo tanto, el esquema de partición MBR está en proceso de ser reemplazado por la Tabla de particiones GUID (GPT). El enfoque oficial no hace mucho más que garantizar la integridad de los datos mediante el empleo de un MBR protector . Específicamente, no proporciona compatibilidad con versiones anteriores de sistemas operativos que no admiten también el esquema GPT. Mientras tanto, terceros han diseñado e implementado múltiples formas de MBR híbridos para mantener particiones ubicadas en los primeros 2 TiB físicos de un disco en ambos esquemas de particionamiento "en paralelo" y/o para permitir que los sistemas operativos más antiguos arranquen también desde particiones GPT. La naturaleza no estándar actual de estas soluciones causa varios problemas de compatibilidad en ciertos escenarios.

El MBR consta de 512 o más bytes ubicados en el primer sector de la unidad.

Puede contener uno o más de los siguientes:

Particionamiento de disco

IBM PC DOS 2.0 introdujo la FDISKutilidad para configurar y mantener particiones MBR. Cuando un dispositivo de almacenamiento se ha particionado según este esquema, su MBR contiene una tabla de particiones que describe las ubicaciones, los tamaños y otros atributos de las regiones lineales denominadas particiones.

Las particiones en sí mismas también pueden contener datos para describir esquemas de particionamiento más complejos, como registros de arranque extendidos (EBR), etiquetas de disco BSD o particiones de metadatos del Administrador de discos lógicos . [8]

El MBR no se encuentra en una partición; se encuentra en un primer sector del dispositivo (desplazamiento físico 0), que precede a la primera partición. (El sector de arranque presente en un dispositivo no particionado o dentro de una partición individual se denomina en cambio registro de arranque de volumen ). En los casos en los que la computadora está ejecutando una superposición de BIOS DDO o un administrador de arranque , la tabla de particiones se puede mover a otra ubicación física en el dispositivo; por ejemplo, Ontrack Disk Manager a menudo colocaba una copia del contenido original del MBR en el segundo sector, luego se ocultaba de cualquier sistema operativo o aplicación que se iniciara posteriormente, por lo que la copia del MBR se trataba como si todavía residiera en el primer sector.

Disposición del sector

Por convención, hay exactamente cuatro entradas en la tabla de partición primaria en el esquema de la tabla de partición MBR, aunque algunos sistemas operativos y herramientas del sistema extendieron esto a cinco (Particiones Activas Avanzadas (AAP) con PTS-DOS 6.60 [9] y DR-DOS 7.07), ocho ( AST y NEC MS-DOS 3.x [10] [11] así como Storage Dimensions SpeedStor), o incluso dieciséis entradas (con Ontrack Disk Manager ).

Entradas de la tabla de particiones

La tabla de particiones, un artefacto de la tecnología de discos duros de la era de la PC XT , subdivide un medio de almacenamiento utilizando unidades de cilindros , cabezales y sectores ( direccionamiento CHS ). Estos valores ya no corresponden a sus homónimos en las unidades de disco modernas, además de ser irrelevantes en otros dispositivos como las unidades de estado sólido , que físicamente no tienen cilindros ni cabezales.

En el esquema CHS, los índices de sector (casi) siempre han comenzado con el sector 1 en lugar del sector 0 por convención, y debido a un error en todas las versiones de MS-DOS/PC DOS hasta la 7.10 incluida, el número de cabezas generalmente está limitado a 255 [h] en lugar de 256. Cuando una dirección CHS es demasiado grande para caber en estos campos, la tupla (1023, 254, 63) se usa típicamente hoy, aunque en sistemas más antiguos, y con herramientas de disco más antiguas, el valor del cilindro a menudo rodeaba el módulo de la barrera CHS cerca de los 8 GB, lo que causaba ambigüedad y riesgos de corrupción de datos. (Si la situación implica un MBR "protector" en un disco con un GPT, la especificación de Interfaz de Firmware Extensible de Intel requiere que se use la tupla (1023, 255, 63).) El valor del cilindro de 10 bits se registra dentro de dos bytes para facilitar la realización de llamadas a las rutinas de acceso al disco BIOS INT 13h originales/heredadas , donde 16 bits se dividían en partes de sector y cilindro, y no en límites de bytes. [13]

Debido a los límites del direccionamiento CHS, [16] [17] se realizó una transición al uso de LBA, o direccionamiento de bloque lógico . Tanto la longitud de la partición como la dirección de inicio de la partición son valores de sector almacenados en las entradas de la tabla de particiones como cantidades de 32 bits. El tamaño del sector solía considerarse fijo en 512 (2 9 ) bytes, y una amplia gama de componentes importantes, incluidos chipsets , sectores de arranque , sistemas operativos , motores de base de datos , herramientas de particionamiento , utilidades de respaldo y sistema de archivos y otro software tenían este valor codificado. Desde fines de 2009, las unidades de disco que emplean sectores de 4096 bytes ( 4Kn o formato avanzado ) han estado disponibles, aunque el tamaño del sector para algunas de estas unidades todavía se informaba como 512 bytes al sistema host a través de la conversión en el firmware del disco duro y se denominaban unidades de emulación 512 ( 512e ).

Dado que las direcciones y tamaños de bloque se almacenan en la tabla de particiones de un MBR utilizando 32 bits, el tamaño máximo, así como la dirección de inicio más alta, de una partición que utiliza unidades que tienen sectores de 512 bytes (reales o emulados) no puede superar los 2 TiB −512 bytes (2 199 023 255 040 bytes o4 294 967 295 (2 32 −1) sectores × 512 (2 9 ) bytes por sector). [1] Aliviar esta limitación de capacidad fue una de las principales motivaciones para el desarrollo de GPT.

Dado que la información de particionamiento se almacena en la tabla de particiones MBR utilizando una dirección de bloque inicial y una longitud, en teoría puede ser posible definir particiones de tal manera que el espacio asignado para un disco con sectores de 512 bytes dé un tamaño total cercano a 4 TiB, si todas las particiones excepto una están ubicadas por debajo del límite de 2 TiB y la última se asigna como comenzando en o cerca del bloque 2 32 −1 y especifica el tamaño como hasta 2 32 −1, definiendo así una partición que requiere 33 en lugar de 32 bits para acceder a la dirección del sector. Sin embargo, en la práctica, solo ciertos sistemas operativos habilitados para LBA-48 , incluidos Linux, FreeBSD y Windows 7 [18] que usan direcciones de sector de 64 bits internamente realmente admiten esto. Debido a las limitaciones de espacio del código y a la naturaleza de la tabla de particiones MBR, que solo admite 32 bits, los sectores de arranque, incluso si están habilitados para admitir LBA-48 en lugar de LBA-28 , a menudo utilizan cálculos de 32 bits, a menos que estén diseñados específicamente para admitir el rango de direcciones completo de LBA-48 o estén destinados a ejecutarse solo en plataformas de 64 bits. Cualquier código de arranque o sistema operativo que utilice direcciones de sector de 32 bits internamente provocaría que las direcciones se enredaran al acceder a esta partición y, por lo tanto, se produciría una corrupción grave de datos en todas las particiones.

Para los discos que presentan un tamaño de sector distinto de 512 bytes, como las unidades externas USB , también existen limitaciones. Un tamaño de sector de 4096 da como resultado un aumento de ocho veces en el tamaño de una partición que se puede definir utilizando MBR, lo que permite particiones de hasta 16 TiB (2 32  × 4096 bytes) de tamaño. [19] Las versiones de Windows más recientes que Windows XP admiten tamaños de sector más grandes, así como Mac OS X, y Linux ha admitido tamaños de sector más grandes desde 2.6.31 [20] o 2.6.32, [21] pero los problemas con los cargadores de arranque, las herramientas de partición y las implementaciones de BIOS de la computadora presentan ciertas limitaciones, [22] ya que a menudo están programados para reservar solo 512 bytes para los búferes de sector, lo que hace que la memoria se sobrescriba para tamaños de sector más grandes. Esto también puede causar un comportamiento impredecible y, por lo tanto, debe evitarse cuando la compatibilidad y la conformidad con los estándares son un problema.

Cuando un dispositivo de almacenamiento de datos ha sido particionado con el esquema GPT, el registro de arranque maestro aún contendrá una tabla de particiones, pero su único propósito es indicar la existencia de la GPT y evitar que los programas de utilidad que solo entienden el esquema de tabla de particiones MBR creen particiones en lo que de otro modo verían como espacio libre en el disco, borrando así accidentalmente la GPT.

Arranque del sistema

En los ordenadores compatibles con IBM PC , el firmware de arranque (contenido en la ROM BIOS ) carga y ejecuta el registro maestro de arranque. [23] El PC/XT (tipo 5160) utilizaba un microprocesador Intel 8088. Para seguir siendo compatibles, todos los sistemas con arquitectura BIOS x86 comienzan con el microprocesador en un modo operativo denominado modo real . El BIOS lee el MBR desde el dispositivo de almacenamiento en la memoria física y, a continuación, dirige al microprocesador al inicio del código de arranque. El BIOS cambiará el procesador al modo real y, a continuación, comenzará a ejecutar el programa MBR, por lo que se espera que el comienzo del MBR contenga código de máquina en modo real . [23]

Dado que la rutina de arranque del BIOS carga y ejecuta exactamente un sector del disco físico, tener la tabla de particiones en el MBR con el código de arranque simplifica el diseño del programa MBR. Contiene un pequeño programa que carga el Volume Boot Record (VBR) de la partición de destino. Luego, el control se transfiere a este código, que es responsable de cargar el sistema operativo real. Este proceso se conoce como carga en cadena .

Se crearon programas de código MBR populares para arrancar PC DOS y MS-DOS , y un código de arranque similar sigue siendo ampliamente utilizado. Estos sectores de arranque esperan que el FDISKesquema de la tabla de particiones esté en uso y escanean la lista de particiones en la tabla de particiones incorporada del MBR para encontrar la única que está marcada con el indicador activo . [24] Luego carga y ejecuta el registro de arranque de volumen (VBR) de la partición activa.

Existen implementaciones de código de arranque alternativas, algunas de las cuales son instaladas por los gestores de arranque , que funcionan de diversas formas. Algunos códigos MBR cargan código adicional para un gestor de arranque desde la primera pista del disco, que supone que es espacio "libre" que no está asignado a ninguna partición de disco, y lo ejecuta. Un programa MBR puede interactuar con el usuario para determinar qué partición en qué unidad debe arrancar, y puede transferir el control al MBR de una unidad diferente. Otros códigos MBR contienen una lista de ubicaciones de disco (que a menudo corresponden a los contenidos de los archivos en un sistema de archivos ) del resto del código del gestor de arranque que se debe cargar y ejecutar. (El primero se basa en un comportamiento que no es universal en todas las utilidades de particionamiento de discos, sobre todo en las que leen y escriben GPT. El último requiere que la lista integrada de ubicaciones de disco se actualice cuando se realizan cambios que reubicarían el resto del código).

En máquinas que no utilizan procesadores x86 , o en máquinas x86 con firmware que no sea BIOS como el firmware Open Firmware o el firmware Extensible Firmware Interface (EFI), este diseño no es adecuado y el MBR no se utiliza como parte del arranque del sistema. [25] En cambio, el firmware EFI es capaz de comprender directamente el esquema de partición GPT y el formato del sistema de archivos FAT , y carga y ejecuta programas almacenados como archivos en la partición del sistema EFI . [26] El MBR solo se involucrará en la medida en que pueda contener una tabla de particiones para fines de compatibilidad si se ha utilizado el esquema de tabla de particiones GPT.

Existe un código de reemplazo de MBR que emula el arranque del firmware EFI, lo que permite que las máquinas que no son EFI puedan arrancar desde discos utilizando el esquema de particionamiento GPT. Detecta un GPT, coloca el procesador en el modo operativo correcto y carga el código compatible con EFI desde el disco para completar esta tarea.

Identidad del disco

Información contenida en la tabla de particiones de un disco duro externo tal como aparece en el programa de utilidad QtParted , que se ejecuta en Linux (con KDE)

Además del código de arranque y una tabla de particiones, los registros de arranque maestros pueden contener una firma de disco. Se trata de un valor de 32 bits que tiene como objetivo identificar de forma única el medio del disco (a diferencia de la unidad de disco, que no necesariamente es la misma para los discos duros extraíbles).

La firma de disco fue introducida por la versión 3.5 de Windows NT, pero ahora la utilizan varios sistemas operativos, incluida la versión 2.6 y posteriores del núcleo de Linux . Las herramientas de Linux pueden utilizar la firma de disco de NT para determinar desde qué disco se inició la máquina. [27]

Windows NT (y los sistemas operativos Microsoft posteriores) utilizan la firma del disco como índice de todas las particiones de cualquier disco conectado alguna vez a la computadora bajo ese sistema operativo; estas firmas se guardan en claves del Registro de Windows , principalmente para almacenar las asignaciones persistentes entre particiones de disco y letras de unidad. También se puede utilizar en archivos BOOT.INI de Windows NT (aunque la mayoría no lo hace), para describir la ubicación de particiones de arranque de Windows NT (o posterior). [28] Una clave (entre muchas), donde aparecen las firmas de disco de NT en un registro de Windows 2000/XP, es:

HKEY_LOCAL_MACHINE\SYSTEM\Dispositivos montados\

Si la firma de un disco almacenada en el MBR era A8 E1 B9 D2 (en ese orden) y su primera partición correspondía con la unidad lógica C: en Windows, entonces los datos bajo el valor de la clave serían:REG_BINARY\DosDevices\C:

A8 E1 B9 D2 00 7E 00 00 00 00 00 00

Los primeros cuatro bytes son la firma del disco (en otras claves, estos bytes pueden aparecer en orden inverso al que se encuentran en el sector MBR). A continuación, aparecen ocho bytes más, que forman un entero de 64 bits, en notación little-endian , que se utilizan para localizar el desplazamiento de bytes de esta partición. En este caso, 00 7E corresponde al valor hexadecimal 0x7E00 (32,256 ). Suponiendo que la unidad en cuestión informa un tamaño de sector de 512 bytes, entonces dividir este desplazamiento de bytes por 512 da como resultado 63, que es el número de sector físico (o LBA) que contiene el primer sector de la partición (a diferencia del recuento de sectores utilizado en el valor de sectores de las tuplas CHS, que cuenta desde uno , el valor de sector absoluto o LBA comienza a contar desde cero ).

Si este disco tuviera otra partición con los valores 00 F8 93 71 02 después de la firma del disco (por ejemplo, debajo del valor de clave ), comenzaría en el desplazamiento de byte 0x00027193F800 (\DosDevices\D:10,495,457,280 ), que también es el primer byte del sector físico20.498.940 .

A partir de Windows Vista , la firma del disco también se almacena en el almacén de datos de configuración de arranque (BCD), y el proceso de arranque depende de ella. [29] Si la firma del disco cambia, no se puede encontrar o tiene un conflicto, Windows no puede arrancar. [30] A menos que Windows se vea obligado a utilizar la parte superpuesta de la dirección LBA de la entrada de Partición activa avanzada como pseudofirma de disco, el uso de Windows entra en conflicto con la característica de Partición activa avanzada de PTS-DOS 7 y DR-DOS 7.07, en particular si su código de arranque se encuentra fuera de los primeros 8 GB del disco, por lo que se debe utilizar el direccionamiento LBA.

Consideraciones de programación

El MBR se originó en el PC XT . [31] Las computadoras compatibles con IBM PC son little-endian , lo que significa que el procesador almacena valores numéricos que abarcan dos o más bytes en la memoria, comenzando con el byte menos significativo . El formato del MBR en los medios refleja esta convención. Por lo tanto, la firma del MBR aparecerá en un editor de discos como la secuencia 55 AA. [a]

La secuencia de arranque en el BIOS cargará el primer MBR válido que encuentre en la memoria física de la computadora en la dirección 0x7C00 a 0x7FFF . [31] La última instrucción ejecutada en el código del BIOS será un "salto" a esa dirección para dirigir la ejecución al comienzo de la copia del MBR. La validación principal para la mayoría de los BIOS es la firma en el desplazamiento 0x01FE , aunque un implementador del BIOS puede optar por incluir otras comprobaciones, como verificar que el MBR contenga una tabla de particiones válida sin entradas que hagan referencia a sectores más allá de la capacidad informada del disco.

Para el BIOS, los discos extraíbles (por ejemplo, disquetes) y los discos fijos son esencialmente lo mismo. En ambos casos, el BIOS lee el primer sector físico del medio en la RAM en la dirección absoluta 0x7C00 , verifica la firma en los dos últimos bytes del sector cargado y, luego, si encuentra la firma correcta, transfiere el control al primer byte del sector con una instrucción de salto (JMP). La única distinción real que hace el BIOS es que (de manera predeterminada, o si el orden de arranque no es configurable) intenta arrancar desde el primer disco extraíble antes de intentar arrancar desde el primer disco fijo. Desde la perspectiva del BIOS, la acción del MBR de cargar un registro de arranque de volumen en la RAM es exactamente la misma que la acción de un registro de arranque de volumen de disquete de cargar el código objeto de un cargador de sistema operativo en la RAM. En cualquier caso, el programa que el BIOS cargó está realizando el trabajo de cargar en cadena un sistema operativo.

Mientras que el código del sector de arranque MBR espera ser cargado en la dirección física 0x0000 : 0x7C00 , [i] toda la memoria desde la dirección física 0x0000 : 0x0501 (la dirección 0x0000 : 0x0500 es la última utilizada por un BIOS Phoenix) [13] hasta 0x0000 : 0x7FFF , [31] posteriormente relajada a 0x0000 : 0xFFFF [32] (y a veces [j] hasta 0x9000 : 0xFFFF )‍—‌el final de los primeros 640 KB‍ —‌está disponible en modo real. [k] La llamada de interrupción del BIOS puede ayudar a determinar cuánta memoria se puede asignar de forma segura (de manera predeterminada, simplemente lee el tamaño de la memoria base en KB desde el segmento : ubicación de desplazamiento 0x0040 : 0x0013 , pero puede ser interceptada por otro software de prearranque residente como superposiciones de BIOS, código RPL o virus para reducir la cantidad informada de memoria disponible para evitar que otro software de etapa de arranque como sectores de arranque los sobrescriba).INT 12h

Los últimos 66 bytes del MBR de 512 bytes están reservados para la tabla de particiones y otra información, por lo que el programa del sector de arranque del MBR debe ser lo suficientemente pequeño para caber en 446 bytes de memoria o menos.

El código MBR examina la tabla de particiones, selecciona una partición adecuada y carga el programa que realizará la siguiente etapa del proceso de arranque, generalmente haciendo uso de llamadas INT 13h BIOS . El código de arranque MBR carga y ejecuta un código de registro de arranque de volumen (dependiente del cargador de arranque o del sistema operativo) que se encuentra al principio de la partición "activa". El registro de arranque de volumen cabe en un sector de 512 bytes, pero es seguro que el código MBR cargue sectores adicionales para acomodar cargadores de arranque más largos que un sector, siempre que no hagan suposiciones sobre cuál es el tamaño del sector. De hecho, al menos 1 KB de RAM está disponible en la dirección 0x7C00 en cada máquina IBM XT y AT, por lo que se podría usar un sector de 1 KB sin problemas. Al igual que el MBR, un registro de arranque de volumen normalmente espera cargarse en la dirección 0x0000 : 0x7C00 . Esto se debe a que el diseño del registro de arranque de volumen se originó en medios no particionados, donde el procedimiento de arranque del BIOS cargaría directamente un registro de arranque de volumen; como se mencionó anteriormente, el BIOS trata a los MBR y a los registros de arranque de volumen (VBR) [l] exactamente de la misma manera. Dado que esta es la misma ubicación donde se carga el MBR, una de las primeras tareas de un MBR es reubicarse en otro lugar de la memoria. La dirección de reubicación está determinada por el MBR, pero la mayoría de las veces es 0x0000 : 0x0600 (para MS-DOS/PC DOS, OS/2 y código MBR de Windows) o 0x0060 : 0x0000 (la mayoría de los MBR de DR-DOS). (Aunque ambas direcciones segmentadas se resuelven en la misma dirección de memoria física en modo real, para que Apple Darwin arranque, el MBR debe reubicarse en 0x0000 : 0x0600 en lugar de 0x0060 : 0x0000 , ya que el código depende del puntero DS:SI a la entrada de partición proporcionada por el MBR, pero erróneamente se refiere a él solo a través de 0x0000 :SI. [33] ) Es importante no reubicarse en otras direcciones en la memoria porque muchos VBR asumirán un cierto diseño de memoria estándar al cargar su archivo de arranque.

El campo Estado de un registro de tabla de particiones se utiliza para indicar una partición activa. Los MBR que cumplen con los estándares solo permiten una partición marcada como activa y la utilizan como parte de una comprobación de integridad para determinar la existencia de una tabla de particiones válida. Mostrarán un mensaje de error si se ha marcado como activa más de una partición. Algunos MBR no estándar no tratarán esto como una condición de error y solo utilizarán la primera partición marcada en la fila.

Tradicionalmente, los valores distintos de 0x00 (no activo) y 0x80 (activo) no eran válidos y el programa de arranque mostraba un mensaje de error al encontrarlos. Sin embargo, la especificación de BIOS Plug and Play y la especificación de arranque de BIOS (BBS) permitieron que otros dispositivos también se volvieran arrancables desde 1994. [32] [34] En consecuencia, con la introducción de MS-DOS 7.10 (Windows 95B) y superiores, el MBR comenzó a tratar un bit 7 establecido como un indicador activo y mostró un mensaje de error solo para los valores 0x01 .. 0x7F . Continuó tratando la entrada como una unidad de disco físico que se usaría al cargar el VBR de la partición correspondiente más adelante, por lo que ahora también aceptaba como válidas otras unidades de arranque que no fueran 0x80 ; sin embargo, MS-DOS no hizo uso de esta extensión por sí mismo. Almacenar el número de unidad física real en la tabla de particiones normalmente no causa problemas de compatibilidad con versiones anteriores, ya que el valor diferirá de 0x80 solo en unidades distintas de la primera (que de todos modos no han sido arrancables antes). Sin embargo, incluso con sistemas habilitados para arrancar desde otras unidades, la extensión puede no funcionar de manera universal, por ejemplo, después de que la asignación de unidades físicas del BIOS haya cambiado cuando se eliminan, agregan o intercambian unidades. Por lo tanto, según la Especificación de arranque del BIOS (BBS), [32] es una buena práctica que un MBR moderno que acepte el bit 7 como indicador activo pase el valor DL ​​proporcionado originalmente por el BIOS en lugar de usar la entrada en la tabla de particiones.

Interfaz de BIOS a MBR

El MBR se carga en la ubicación de memoria 0x0000 : 0x7C00 y con los siguientes registros de CPU configurados cuando el cargador de arranque anterior (normalmente el IPL en el BIOS) le pasa la ejecución saltando a 0x0000 : 0x7C00 en el modo real de la CPU .

Algunas BIOS de Compaq utilizan erróneamente 0x07C0 : 0x0000 en su lugar. Si bien esto se resuelve en la misma ubicación en la memoria de modo real, no es estándar y se debe evitar, ya que el código MBR que asume ciertos valores de registro o no está escrito para ser reubicable puede no funcionar de otra manera.
Los BIOS de IBM y la mayoría de los demás BIOS admiten DL. Se sabe que el BIOS Toshiba T1000 no lo admite correctamente y algunos BIOS Wyse 286 antiguos utilizan valores DL mayores o iguales a 2 para discos fijos (lo que refleja los números de unidad lógica en DOS en lugar de los números de unidad física del BIOS). Las memorias USB configuradas como unidades extraíbles suelen tener una asignación de DL = 0x80 , 0x81 , etc. Sin embargo, algunos BIOS poco comunes los presentan erróneamente como DL = 0x01 , como si estuvieran configurados como superfloppies.
Un BIOS conforme estándar asigna números mayores o iguales a 0x80 exclusivamente a discos fijos/unidades extraíbles, y tradicionalmente solo los valores 0x80 y 0x00 se pasaban como unidades de disco físicas durante el arranque. Por convención, solo los discos fijos/unidades extraíbles están particionados, por lo tanto, el único valor DL ​​que un MBR podía ver tradicionalmente era 0x80 . Muchos MBR fueron codificados para ignorar el valor DL ​​y trabajar con un valor cableado (normalmente 0x80 ), de todos modos.
La especificación BIOS Plug and Play y la especificación BIOS Boot (BBS) permiten que otros dispositivos también se puedan iniciar desde 1994. [32] [34] La última recomienda que el código MBR y VBR use DL en lugar de valores predeterminados cableados internamente. [32] Esto también garantizará la compatibilidad con varias asignaciones no estándar (ver los ejemplos anteriores), en lo que respecta al código MBR.
Los CD-ROM de arranque que siguen la especificación El Torito pueden contener imágenes de disco montadas por el BIOS para que aparezcan como disquetes o superfloppies en esta interfaz. Los valores DL de 0x00 y 0x01 también pueden ser utilizados por los Servicios de extensión de interfaz de tiempo de ejecución de área protegida (PARTIES) y las extensiones de BIOS de Trusted Computing Group (TCG) en modo de confianza para acceder a particiones PARTIES que de otro modo serían invisibles, archivos de imagen de disco ubicados a través del Registro de extensión de ingeniería de arranque (BEER) en el último sector físico del Área protegida del host (HPA) de un disco duro . Si bien está diseñado para emular disquetes o superfloppies, el código MBR que acepta estos valores DL no estándar permite utilizar imágenes de medios particionados al menos en la etapa de arranque de los sistemas operativos.

Los sistemas con soporte para BIOS Plug-and-Play o BBS proporcionarán un puntero a datos PnP además de DL: [32] [34]

Esta información permite que el cargador de arranque en el MBR (o VBR, si se transfiere) interactúe activamente con el BIOS o una superposición de BIOS PnP/BBS residente en la memoria para configurar el orden de arranque, etc., sin embargo, la mayoría de los MBR y VBR estándar ignoran esta información. Lo ideal es que ES:DI se transfiera al VBR para que el sistema operativo cargado lo use más tarde, pero los sistemas operativos habilitados para PnP normalmente también tienen métodos alternativos para recuperar el punto de entrada del BIOS PnP más adelante, de modo que la mayoría de los sistemas operativos no dependen de esto.

Interfaz de MBR a VBR

Por convención, un MBR conforme al estándar pasa la ejecución a un VBR cargado exitosamente, cargado en la ubicación de memoria 0x0000 : 0x7C00 , saltando a 0x0000 : 0x7C00 en el modo real de la CPU con los siguientes registros mantenidos o configurados específicamente:

Los MBR de MS-DOS 2.0–7.0 / PC DOS 2.0–6.3 no pasan el valor DL ​​recibido en la entrada, sino que usan la entrada de estado de arranque en la entrada de la tabla de particiones de la partición primaria seleccionada como unidad de disco de arranque físico. Dado que esto es, por convención, 0x80 en la mayoría de las tablas de particiones MBR, no cambiará las cosas a menos que el BIOS intente arrancar desde un dispositivo físico distinto del primer disco fijo/unidad extraíble de la fila. Esta es también la razón por la que estos sistemas operativos no pueden arrancar desde un segundo disco duro, etc. Algunas herramientas FDISK también permiten marcar particiones en discos secundarios como "activas". En esta situación, sabiendo que estos sistemas operativos no pueden arrancar desde otras unidades de todos modos, algunos de ellos continúan usando el valor tradicionalmente fijo de 0x80 como marcador activo, mientras que otros usan valores correspondientes a la unidad de disco física asignada actualmente ( 0x81 , 0x82 ), lo que permite el arranque desde otras unidades, al menos en teoría. De hecho, esto funcionará con muchos códigos MBR, que toman un bit 7 establecido de la entrada de estado de arranque como indicador activo en lugar de insistir en 0x80 ; sin embargo, los MBR de MS-DOS/PC DOS están programados para aceptar solo el valor fijo de 0x80 . Almacenar el número de unidad física real en la tabla de particiones también causará problemas cuando cambie la asignación de unidades físicas del BIOS, por ejemplo, cuando se eliminan, agregan o intercambian unidades. Por lo tanto, para un MBR normal que acepta el bit 7 como indicador activo y, de lo contrario, solo usa y pasa al VBR el valor DL ​​proporcionado originalmente por el BIOS permite una máxima flexibilidad. Los MBR de MS-DOS 7.1–8.0 han cambiado para tratar el bit 7 como indicador activo y cualquier valor 0x01 .. 0x7F como inválido, pero aún toman la unidad de unidad física de la tabla de particiones en lugar de usar el valor DL ​​proporcionado por el BIOS. Los MBR extendidos de DR-DOS 7.07 tratan el bit 7 como un indicador activo y usan y pasan el valor DL ​​del BIOS de manera predeterminada (incluidos los valores no estándar 0x00 .. 0x01 utilizados por algunos BIOS también para medios particionados), pero también proporcionan un bloque de configuración NEWLDR especial para admitir métodos de arranque alternativos junto con LOADER y REAL/32, así como para cambiar el comportamiento detallado del MBR, de modo que también pueda funcionar con valores de unidad recuperados de la tabla de particiones (importante junto con LOADER y AAP, consulte el desplazamiento NEWLDR ), traducir unidades de unidad no estándar Wyse 0x02 .. 0x7F a 0x80 .. 0xFD y, opcionalmente, corregir el valor de la unidad (almacenado en el desplazamiento en el Bloque de parámetros de BIOS extendido (EBPB) o en el desplazamiento del sector).0x000C0x0190x01FD) en los VBR cargados antes de pasarles la ejecución (ver desplazamiento NEWLDR 0x0014); esto también permite que otros cargadores de arranque utilicen NEWLDR como un cargador de cadena, configuren su imagen en memoria sobre la marcha y "tunelicen" la carga de VBR, EBR o AAP a través de NEWLDR.

El código MBR pasa información adicional al VBR en muchas implementaciones:

En DR-DOS 7.07, se puede proporcionar opcionalmente una interfaz extendida mediante el MBR extendido y en conjunto con LOADER:

Junto con GPT, una propuesta de Especificación de unidad de disco mejorada (EDD) 4 MBR híbrido recomienda otra extensión de la interfaz: [37]

Dado que los sistemas operativos más antiguos (incluidos sus VBR) no admiten esta extensión ni pueden abordar sectores más allá de la barrera de 2 TiB, un cargador de arranque híbrido habilitado para GPT aún debería emular la entrada de la tabla de partición MBR ficticia de 16 bytes si la partición de arranque está ubicada dentro de los primeros 2 TiB. [n]

Edición y sustitución de contenidos

Aunque es posible manipular los bytes en el sector MBR directamente utilizando varios editores de disco , existen herramientas para escribir conjuntos fijos de código funcional en el MBR. Desde MS-DOS 5.0, el programa FDISKha incluido el modificador /MBR, que reescribirá el código MBR. [38] En Windows 2000 y Windows XP , la Consola de recuperación se puede utilizar para escribir nuevo código MBR en un dispositivo de almacenamiento utilizando su fixmbrcomando. En Windows Vista y Windows 7 , el Entorno de recuperación se puede utilizar para escribir nuevo código MBR utilizando el BOOTREC /FIXMBRcomando. También se pueden utilizar algunas utilidades de terceros para editar directamente el contenido de las tablas de particiones (sin requerir ningún conocimiento de editores hexadecimales o de disco/sector), como MBRWizard . [o]

ddes un comando POSIX que se utiliza comúnmente para leer o escribir en cualquier ubicación de un dispositivo de almacenamiento, incluido el MBR. En Linux , ms-sys se puede utilizar para instalar un MBR de Windows. Los proyectos GRUB y LILO tienen herramientas para escribir código en el sector MBR, a saber, grub-instally lilo -mbr. La consola interactiva de GRUB Legacy puede escribir en el MBR, utilizando los comandos setupy embed, pero GRUB2 actualmente requiere grub-installejecutarse desde dentro de un sistema operativo.

Varios programas pueden crear una " copia de seguridad " tanto de la tabla de particiones primaria como de las particiones lógicas en la partición extendida.

Linux sfdisk(en un SystemRescueCD ) puede guardar una copia de seguridad de la tabla de particiones primaria y extendida. Crea un archivo que se puede leer en un editor de texto, o sfdisk puede usar este archivo para restaurar la tabla de particiones primaria/extendida. Un ejemplo de comando para hacer una copia de seguridad de la tabla de particiones es sfdisk -d /dev/hda > hda.outy para restaurar es sfdisk /dev/hda < hda.out. Es posible copiar la tabla de particiones de un disco a otro de esta manera, lo que resulta útil para configurar la duplicación, pero sfdisk ejecuta el comando sin solicitar ni advertir nada mediante sfdisk -d /dev/sda | sfdisk /dev/sdb. [39]

Véase también

Notas

  1. ^ abcdefg La firma en el desplazamiento 0x01FE en los sectores de arranque es , es decir 0x55 en el desplazamiento 0x01FE y en el desplazamiento 0x01FF . Dado que la representación little-endian debe asumirse en el contexto de las máquinas compatibles con IBM PC , esto se puede escribir como una palabra de 16 bits en programas para procesadores x86 (observe el orden intercambiado), mientras que tendría que escribirse como en programas para otras arquitecturas de CPU que utilizan una representación big-endian . Dado que esto se ha mezclado numerosas veces en libros e incluso en documentos de referencia originales de Microsoft, este artículo utiliza la representación en disco byte a byte basada en desplazamiento para evitar cualquier posible mala interpretación.55hex AAhexAAhexAA55hex55AAhex
  2. ^ Para garantizar la integridad del código del cargador de arranque del MBR, es importante que los bytes de 0x00DA a 0x00DF nunca se modifiquen, a menos que los seis bytes representen un valor de 0 o que todo el código del cargador de arranque del MBR (excepto la tabla de particiones (extendida)) se reemplace al mismo tiempo. Esto incluye restablecer estos valores a menos que se conozca el código almacenado en el MBR. Windows se adhiere a esta regla.00 00 00 00 00 00hex
  3. ^ Originalmente, los valores de estado distintos de 0x00 y 0x80 no eran válidos, pero los MBR modernos tratan el bit 7 como un indicador activo y utilizan esta entrada para almacenar la unidad de arranque física.
  4. ^ ab Los campos del sector inicial están limitados a 1023+1 cilindros, 255+1 cabezales y 63 sectores; los campos del sector final tienen las mismas limitaciones.
  5. ^ abcde El rango para el sector es de 1 a 63; el rango para el cilindro es de 0 a 1023; el rango para la cabeza es de 0 a 255 inclusive. [13]
  6. ^ Los sistemas operativos utilizan esta entrada en determinadas circunstancias; en tales casos, se ignoran las direcciones CHS. [15]
  7. ^ El cero está reservado y no debe utilizarse en las entradas de partición normales. Los sistemas operativos utilizan esta entrada en determinadas circunstancias; en tales casos, las direcciones CHS se ignoran. [15]
  8. ^ "Cita: [La mayoría de] las versiones de MS-DOS (incluido MS-DOS 7 [Windows 95]) tienen un error que impide el arranque en discos duros con 256 cabezales (FFh), por lo que muchos BIOS modernos proporcionan asignaciones con un máximo de 255 cabezales (FEh)". RBIL [40] [41]
  9. ^ La dirección : es el primer byte de los 32 KB de RAM. La carga del programa de arranque en esta dirección fue históricamente la razón por la que, mientras que el tamaño mínimo de RAM de una IBM PC original (tipo 5150) era de 16 KB, se necesitaban 32 KB para la opción de disco en la IBM XT.0000hex7C00hex
  10. ^ Si hay un EBDA, la memoria disponible termina debajo de él.
  11. ^ Las máquinas muy antiguas pueden tener menos de 640 KB ( o 655.360 bytes) de memoria. En teoría, solo se garantiza la existencia de 32 KB (hasta : ) o 64 KB (hasta : ); este sería el caso en una máquina IBM XT equipada solo con la cantidad mínima de memoria requerida para un sistema de discos.A0000hex0000hex7FFFhex0000hexFFFFhex
  12. ^ Esto se aplica cuando el BIOS maneja un VBR, que es cuando está en el primer sector físico de un medio no particionado. De lo contrario, el BIOS no tiene nada que ver con el VBR. El diseño de los VBR es tal como es porque los VBR se originaron únicamente en medios de disquete no particionados (la IBM PC tipo 5150 originalmente no tenía opción de disco duro) y el sistema de particionamiento que utiliza un MBR se desarrolló más tarde como una adaptación para colocar más de un volumen, cada uno comenzando con su propio VBR como ya definido, en un solo disco fijo. Con este diseño, esencialmente el MBR emula la rutina de arranque del BIOS, haciendo las mismas cosas que el BIOS haría para procesar este VBR y configurar el entorno operativo inicial para él, tal como si el BIOS hubiera encontrado ese VBR en un medio no particionado.
  13. ^ La dirección IP se establece como resultado del salto. CS se puede establecer en 0 ya sea ejecutando un salto lejano o cargando el valor del registro explícitamente antes de ejecutar un salto cercano. (Es imposible que el código x86 al que se salta detecte si se utilizó un salto cercano o lejano para alcanzarlo [a menos que el código que realizó el salto pase esta información por separado de alguna manera]).
  14. ^ Esto no es parte de la propuesta mencionada anteriormente, sino una consecuencia natural de las condiciones preexistentes.
  15. ^ Por ejemplo, el Editor de tablas de particiones de PowerQuest (PTEDIT32.EXE), que se ejecuta en sistemas operativos Windows, todavía está disponible aquí: sitio FTP de Symantec.

Referencias

  1. ^ abcd "Compatibilidad de Windows con discos duros de más de 2 TB". 1. Microsoft . 2013-06-26. 2581408. Archivado desde el original el 2017-04-27 . Consultado el 2013-08-28 .
  2. ^ abc Sedory, Daniel B. (2004). "Los bytes misteriosos (o los bytes de la unidad/marca de tiempo) del registro de arranque maestro (MBR) de MS-Windows 95B, 98, 98SE y Me". Registros de arranque maestros . thestarman.pcministry.com. Archivado desde el original el 24 de agosto de 2017 . Consultado el 25 de agosto de 2012 .
  3. ^ Lucas, Michael (2003). Absolute OpenBSD: Unix para el paranoico práctico. p. 73. ISBN 9781886411999. Consultado el 9 de abril de 2011. Todos los sistemas operativos incluyen herramientas para gestionar particiones MBR. Lamentablemente, cada sistema operativo gestiona las particiones MBR de una forma ligeramente diferente.
  4. ^ Norton, Peter ; Clark, Scott (2002). Peter Norton's New Inside the PC. Sams Publishing . págs. 360–361. ISBN 0-672-32289-7.
  5. ^ Graves, Michael W. (2004). Guía A+ para el mantenimiento y la reparación de hardware de PC . Thomson Delmar. pág. 276. ISBN 1-4018-5230-0.
  6. ^ Andrews, Jean (2003). Actualización y reparación con Jean Andrews. Curso de tecnología de Thomson. pág. 646. ISBN 1-59200-112-2.
  7. ^ Boswell, William (2003). Dentro de Windows Server 2003. Addison -Wesley Professional . pág. 13. ISBN. 0-7357-1158-5.
  8. ^ Smith, Roderick W. (2000). Manual de configuración de arranque múltiple. Que Publishing . Págs. 260-261. ISBN. 0-7897-2283-6.
  9. ^ Brouwer, Andries Evert (2004-04-22) [2000]. "Propiedades de las tablas de particiones". Tipos de particiones . Archivado desde el original el 2017-08-24 . Consultado el 2017-08-24 . Matthias [R.] Paul escribe: "[…] PTS-DOS [usa] una quinta entrada de partición especial delante de las otras cuatro entradas en el MBR y el código de arranque del MBR compatible con AAP correspondiente. […]"
  10. ^ Brouwer, Andries Evert (2004-04-22) [2000]. "Propiedades de las tablas de particiones". Tipos de particiones . Archivado desde el original el 2017-08-24 . Consultado el 2017-08-24 . Algunos sistemas OEM, como AST DOS (tipo ) y NEC DOS (tipo ) tenían 8 en lugar de 4 entradas de partición en sus sectores MBR. (Matthias R. Paul).14hex24hex(NB. Las tablas de particiones de NEC MS-DOS 3.30 y AST MS-DOS con ocho entradas están precedidas por una firma en el desplazamiento 0x017C ).A55Ahex
  11. ^ Sedory, Daniel B. (18 de mayo de 2007) [2003]. "Notas sobre las diferencias en una versión OEM del MBR DOS 3.30". Registros de arranque maestros . Archivado desde el original el 24 de agosto de 2017. Consultado el 24 de agosto de 2017. Cuando agregamos particiones a esta tabla NEC, la primera se colocó en los desplazamientos 0x01EE a 0x01FD y la siguiente entrada se agregó justo encima de ella. Por lo tanto, las entradas se insertan y enumeran al revés de las de una tabla normal. Por lo tanto, al observar una tabla de este tipo con un editor de discos o una utilidad de listado de particiones, mostraría la primera entrada en una tabla NEC de ocho entradas como la última (cuarta entrada) en una tabla de particiones normal.(NB. Muestra una tabla de particiones de 8 entradas y dónde su código de arranque difiere de MS-DOS 3.30).
  12. ^ "Tabla de particiones". osdev.org. 2017-03-18 [2007-03-06]. Archivado desde el original el 2017-08-24 . Consultado el 2017-08-24 .
  13. ^ abc BIOS del sistema para computadoras IBM PC/XT/AT y compatibles . Referencia técnica de Phoenix . Addison-Wesley . 1989. ISBN 0-201-51806-6.
  14. ^ Brouwer, Andries Evert (2013) [1995]. «Lista de identificadores de particiones para PC». Tipos de particiones . Archivado desde el original el 24 de agosto de 2017. Consultado el 24 de agosto de 2017 .
  15. ^ ab Wood, Sybil (2002). Guía de operaciones de Microsoft Windows 2000 Server. Microsoft Press . pág. 18. ISBN 978-0-73561796-4.
  16. ^ "Introducción a la geometría del disco duro". Tech Juice . 2012-12-06 [2011-08-08]. Archivado desde el original el 2013-02-04.
  17. ^ Kozierok, Charles M. (17 de abril de 2001). "BIOS y el disco duro". The PC Guide . Archivado desde el original el 17 de junio de 2017. Consultado el 19 de abril de 2013 .
  18. ^ Smith, Robert (26 de junio de 2011). "Cómo solucionar las limitaciones de MBR". Tutorial de fdisk para GPT . Archivado desde el original el 24 de agosto de 2017. Consultado el 20 de abril de 2013 .
  19. ^ "Más de 2 TiB en un disco MBR". superuser.com. 7 de marzo de 2013. Archivado desde el original el 24 de agosto de 2017. Consultado el 22 de octubre de 2013 .
  20. ^ "Transición a discos duros sectoriales de formato avanzado 4K". Tech Insight . Seagate Technology . 2012. Archivado desde el original el 2017-08-24 . Consultado el 2013-04-19 .
  21. ^ Calvert, Kelvin (16 de marzo de 2011). "Discos duros de gran capacidad WD AV‐GP" (PDF) . Western Digital . Consultado el 20 de abril de 2013 .
  22. ^ Smith, Roderick W. (27 de abril de 2010). «Linux en discos con sectores de 4 KB: consejos prácticos». DeveloperWorks . IBM . Archivado desde el original el 24 de agosto de 2017 . Consultado el 19 de abril de 2013 .
  23. ^ ab "MBR (x86)". Wiki de OSDev . OSDev.org. 5 de marzo de 2012. Archivado desde el original el 24 de agosto de 2017 . Consultado el 20 de abril de 2013 .
  24. ^ Sedory, Daniel B. (30 de julio de 2003). "IBM DOS 2.00 Master Boot Record". El reino de Starman. Archivado desde el original el 24 de agosto de 2017. Consultado el 22 de julio de 2011 .
  25. ^ Singh, Amit (25 de diciembre de 2009) [diciembre de 2003]. "Booting Mac OS X" (Arranque de Mac OS X). Mac OS X Internals: The Book (Funciones internas de Mac OS X: el libro) . Consultado el 22 de julio de 2011 .
  26. ^ de Boyne Pollard, Jonathan (10 de julio de 2011). "El proceso de arranque EFI". Respuestas dadas con frecuencia . Archivado desde el original el 24 de agosto de 2017. Consultado el 22 de julio de 2011 .
  27. ^ Domsch, Matt (2005-03-22) [2003-12-19]. "Re: Mejoras de EDD en RFC 2.6.0". Lista de correo del kernel de Linux . Archivado desde el original el 2017-08-24 . Consultado el 2017-08-24 .
  28. ^ "Windows puede utilizar la sintaxis Signature() en el archivo BOOT.INI". KnowledgeBase . Microsoft .
  29. ^ McTavish (febrero de 2014). "Firma de disco MBR de Vista". Arrancadores múltiples: arranque dual y arranque múltiple con Vista . Archivado desde el original el 24 de agosto de 2017. Consultado el 24 de agosto de 2017 .
  30. ^ Russinovich, Mark (8 de noviembre de 2011). "Reparación de colisiones de firmas de disco". Blog de Mark Russinovich . Microsoft . Archivado desde el original el 24 de agosto de 2017 . Consultado el 19 de abril de 2013 .
  31. ^ abc Sakamoto, Masahiko (13 de mayo de 2010). "¿Por qué el BIOS carga el MBR en 0x7C00 en x86?". Glamenv-Septzen.net. Archivado desde el original el 24 de agosto de 2017. Consultado el 4 de mayo de 2011 .
  32. ^ abcdef Compaq Computer Corporation ; Phoenix Technologies Ltd. ; Intel Corporation (11 de enero de 1996). "BIOS Boot Specification 1.01" (PDF) . 1.01. ACPICA. Archivado (PDF) desde el original el 24 de agosto de 2017 . Consultado el 20 de abril de 2013 .[1]
  33. ^ ab Elliott, David F. (12 de octubre de 2009). "¿Por qué el MBR "estándar" establece SI?". tgwbd.org . Archivado desde el original el 24 de agosto de 2017. Consultado el 20 de abril de 2013 .
  34. ^ abc Compaq Computer Corporation ; Phoenix Technologies Ltd. ; Intel Corporation (1994-05-05). "Especificación 1.0A del BIOS Plug and Play" (PDF) . 1.0A. Intel . Archivado desde el original (PDF) el 2017-08-24 . Consultado el 2013-04-20 .
  35. ^ Paul, Matthias R. (1997-10-02) [1997-09-29]. "Caldera OpenDOS 7.01/7.02 Update Alpha 3 IBMBIO.COM - README.TXT y BOOT.TXT - Una breve descripción de cómo se inicia OpenDOS". Archivado desde el original el 2003-10-04 . Consultado el 29-03-2009 .[2]
  36. ^ Paul, Matthias R. (14 de agosto de 2017) [7 de agosto de 2017]. "La saga continua de Windows 3.1 en modo mejorado en OmniBook 300". MoHPC - el Museo de las Calculadoras HP . Archivado desde el original el 1 de mayo de 2018. Consultado el 1 de mayo de 2018. […] SYS […] /O[:nnn] Anular la unidad de arranque informada por IPL (n=0..126, 128..254). […] Preparando el disco de destino... Eligiendo el sector de arranque FAT12 CHS (requiere que IPL informe la unidad de arranque). Tratando el destino como un disquete o un medio superfloppy (unidad de arranque 0). Escribiendo un nuevo sector de arranque... […](NB. SYS escribe registros de arranque de volumen en lugar de registros de arranque maestros, pero su interfaz de registro entrante es similar (con extensiones) ya que ambos podrían ser cargados inicialmente por el sistema subyacente).
  37. ^ Elliott, Robert (4 de enero de 2010). "Anexo del código de arranque del MBR híbrido EDD-4" (PDF) . Hewlett Packard , Comité técnico T13. e09127r3. Archivado (PDF) desde el original el 24 de agosto de 2017. Consultado el 20 de abril de 2013 .
  38. ^ "FDISK/MBR reescribe el registro de arranque maestro". Soporte . 1. Microsoft . 2011-09-23. 69013. Archivado desde el original el 2017-02-08 . Consultado el 2013-04-19 .
  39. ^ "sfdisk(8) – Página del manual de Linux". die.net . 2013 [2007]. Archivado desde el original el 24 de agosto de 2017 . Consultado el 20 de abril de 2013 .
  40. ^ Brown, Ralf D. (16 de julio de 2000). "Lista de interrupciones de Ralf Brown (v61 html)". Delorie Software . Consultado el 3 de noviembre de 2016 .
  41. ^ Brown, Ralf D. (16 de julio de 2000). "B-1302: INT 13 - DISCO - LEER SECTOR(ES) EN MEMORIA". Lista de interrupciones de Ralf Brown (RBIL) (61.ª ed.) . Consultado el 3 de noviembre de 2016 .(NB. Ver archivo INTERRUP.B dentro del archivo "INTER61A.ZIP.)

Lectura adicional

Enlaces externos