stringtranslate.com

Master boot record

A master boot record (MBR) is a special type of boot sector at the very beginning of partitioned computer mass storage devices like fixed disks or removable drives intended for use with IBM PC-compatible systems and beyond. The concept of MBRs was publicly introduced in 1983 with PC DOS 2.0.

The MBR holds the information on how the disc's sectors (aka "blocks") are divided into partitions, each partition notionally containing a file system. The MBR also contains executable code to function as a loader for the installed operating system—usually by passing control over to the loader's second stage, or in conjunction with each partition's volume boot record (VBR). This MBR code is usually referred to as a boot loader.

The organization of the partition table in the MBR limits the maximum addressable storage space of a partitioned disk to 2 TiB (232 × 512 bytes).[1] Approaches to slightly raise this limit utilizing 32-bit arithmetic or 4096-byte sectors are not officially supported, as they fatally break compatibility with existing boot loaders, most MBR-compliant operating systems and associated system tools, and may cause serious data corruption when used outside of narrowly controlled system environments. Therefore, the MBR-based partitioning scheme is in the process of being superseded by the GUID Partition Table (GPT) scheme in new computers. A GPT can coexist with an MBR in order to provide some limited form of backward compatibility for older systems.

MBRs are not present on non-partitioned media such as floppies, superfloppies or other storage devices configured to behave as such, nor are they necessarily present on drives used in non-PC platforms.

Overview

La compatibilidad con medios particionados y, por tanto, con el registro de arranque maestro (MBR), se introdujo con IBM PC DOS 2.0 en marzo de 1983 para admitir el disco duro de 10 MB de la entonces nueva IBM Personal Computer XT , que todavía utiliza 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 , de las cuales DOS sólo podía usar una. Esto no cambió cuando se introdujo FAT16 como un nuevo sistema de archivos con DOS 3.0. Con DOS 3.2 se agregó soporte para una partición extendida , un tipo de partición primaria especial que se utiliza como contenedor para contener otras particiones, y con DOS 3.30 se incluyeron unidades lógicas anidadas dentro de una partición extendida. Dado que MS-DOS, PC DOS, OS/2 y Windows nunca estuvieron habilitados para 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 a 1996.

En 1996, se introdujo la compatibilidad con 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 marcas de tiempo de disco . [2] Esto también refleja la idea de que el MBR debe ser independiente del sistema operativo y del sistema de archivos. Sin embargo, esta regla de diseño se vio parcialmente comprometida en 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 usa para 0x0E / 0x0C .

A pesar de la documentación a veces deficiente de ciertos detalles intrínsecos del formato MBR (que ocasionalmente causaba problemas de compatibilidad), ha sido ampliamente adoptado como un estándar industrial de facto, debido a la gran 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 informáticos para otras plataformas. A veces, esto se sumaba a otros estándares preexistentes o multiplataforma para arranque y partición. [3]

Sin embargo, las entradas de la partición MBR y el código de arranque MBR utilizados en los sistemas operativos comerciales están limitados a 32 bits. [1] Por lo tanto, el tamaño de disco máximo 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 están 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 hace poco más que garantizar la integridad de los datos mediante el empleo de un MBR protector . Específicamente, no proporciona compatibilidad con sistemas operativos que tampoco admiten el esquema GPT. Mientras tanto, terceros han diseñado e implementado múltiples formas de MBR híbridos para mantener las particiones ubicadas en los primeros 2 TiB físicos de un disco en ambos esquemas de partición "en paralelo" y/o para permitir que los sistemas operativos más antiguos arranquen desde GPT. particiones también. La actual naturaleza no estándar de estas soluciones provoca varios problemas de compatibilidad en determinados 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:

partición de disco

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

Las propias particiones también pueden contener datos para describir esquemas de partición 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 está ubicado en una partición; está ubicado 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 registro de arranque de volumen ). En los casos en que la computadora ejecuta una superposición de BIOS DDO o un administrador de arranque , la tabla de particiones se puede mover a algún otro lugar físico. ubicación en el dispositivo; por ejemplo, Ontrack Disk Manager a menudo colocaba una copia del contenido original del MBR en el segundo sector y 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.

Diseño del sector

Por convención, hay exactamente cuatro entradas de la tabla de particiones primarias en el esquema de la tabla de particiones MBR, aunque algunos sistemas operativos y herramientas del sistema ampliaron 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

Un artefacto de la tecnología de disco duro de la era de la PC XT , la tabla de particiones subdivide un medio de almacenamiento utilizando unidades de cilindros , cabezales y sectores ( direccionamiento CHS ). Estos valores ya no se corresponden con 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 no tienen físicamente cilindros ni cabezas.

En el esquema CHS, los índices sectoriales (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 es generalmente 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 normalmente hoy en día, aunque en sistemas más antiguos y con herramientas de disco más antiguas, el valor del cilindro a menudo envuelven el módulo de la barrera CHS cerca de 8 GB, causando 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 la interfaz de firmware extensible de Intel requiere que se utilice la tupla (1023, 255, 63).) El valor del cilindro de 10 bits se registra en dos bytes en orden 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 bloques lógicos . 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 conjuntos de chips , sectores de arranque , sistemas operativos , motores de bases de datos , herramientas de partición , utilidades de sistemas de archivos y copias de seguridad y otro software, tenían este valor. -codificado. Desde finales de 2009, han estado disponibles unidades de disco que emplean sectores de 4096 bytes ( 4Kn o formato avanzado ), aunque el tamaño del sector para algunas de estas unidades todavía se informaba como 512 bytes al sistema host mediante conversión en el disco duro. firmware de la unidad y se denominan unidades de emulación 512 ( 512e ).

Dado que las direcciones y tamaños de los bloques se almacenan en la tabla de particiones de un MBR usando 32 bits, el tamaño máximo, así como la dirección de inicio más alta, de una partición que usa unidades que tienen sectores de 512 bytes (reales o emulados) no puede exceder 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 del GPT.

Dado que la información de partición 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 proporcione un tamaño total cercano a 4 TiB, si todas las particiones menos una están ubicadas por debajo del límite de 2 TiB y la última se asigna 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 la dirección del sector al que se accederá. Sin embargo, en la práctica, sólo ciertos sistemas operativos compatibles con LBA-48 , incluidos Linux, FreeBSD y Windows 7 [18] que utilizan direcciones de sector de 64 bits internamente, realmente admiten esto. Debido a las limitaciones de espacio de código y a la naturaleza de la tabla de particiones MBR de 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 usan cálculos de 32 bits, a menos que estén diseñados específicamente para admitir. el rango completo de direcciones de LBA-48 o están diseñados para ejecutarse únicamente en plataformas de 64 bits. Cualquier código de arranque o sistema operativo que utilice direcciones de sectores de 32 bits internamente provocaría que las direcciones se enreden al acceder a esta partición y, por lo tanto, provocaría una corrupción grave de los 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 usando 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 sectores de mayor tamaño, así como Mac OS X, y Linux ha admitido sectores de mayor tamaño desde 2.6.31 [20] o 2.6.32, [21] pero hay problemas con el arranque. Los cargadores, las herramientas de partición y las implementaciones de BIOS de computadora presentan ciertas limitaciones, [22] ya que a menudo están programados para reservar solo 512 bytes para buffers de sector, lo que hace que la memoria se sobrescriba para sectores de mayor tamaño. 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 GPT y evitar que se utilicen programas de utilidad que solo entienden el esquema de la tabla de particiones MBR. creando particiones en lo que de otro modo verían como espacio libre en el disco, borrando así accidentalmente el GPT.

Arranque del sistema

En las computadoras compatibles con IBM PC , el firmware de arranque (contenido en la ROM BIOS ) carga y ejecuta el registro de arranque maestro. [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 del dispositivo de almacenamiento en la memoria física y luego dirige el microprocesador al inicio del código de arranque. El BIOS cambiará el procesador al modo real y luego 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 registro de arranque por volumen (VBR) de la partición de destino. Luego, el control se pasa 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 códigos de arranque similares siguen siendo de uso generalizado. 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 integrada del MBR para encontrar la única que está marcada con el indicador activo . [24] Luego carga y ejecuta el registro de inicio de volumen (VBR) de la partición activa.

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

En máquinas que no usan procesadores x86 , o en máquinas x86 con firmware que no es BIOS, como firmware abierto o firmware de interfaz de firmware extensible (EFI), este diseño no es adecuado y el MBR no se usa 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 contenidos como archivos en la partición del sistema EFI . [26] El MBR participará sólo en la medida en que pueda contener una tabla de particiones por motivos 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 hace que las máquinas que no son EFI sean capaces de arrancar desde discos utilizando el esquema de partición GPT. Detecta un GPT, coloca el procesador en el modo de funcionamiento 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 cuyo objetivo es identificar de forma exclusiva el medio del disco (a diferencia de la unidad de disco; los dos no son necesariamente iguales para los discos duros extraíbles).

La firma del disco fue introducida por Windows NT versión 3.5, pero ahora la utilizan varios sistemas operativos, incluido el kernel de Linux versión 2.6 y posteriores. Las herramientas de Linux pueden usar la firma del disco NT para determinar desde qué disco arrancó la máquina. [27]

Windows NT (y los sistemas operativos posteriores de Microsoft) utiliza la firma del disco como índice de todas las particiones de cualquier disco conectado a la computadora con ese sistema operativo; Estas firmas se guardan en las 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 las particiones de arranque de Windows NT (o posteriores). [28] Una clave (entre muchas), donde aparecen firmas de discos NT en un registro de Windows 2000/XP, es:

HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices\

Si la firma de un disco almacenada en el MBR fuera A8 E1 B9 D2 (en ese orden) y su primera partición correspondiera 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 se denominan firma del disco. (En otras claves, estos bytes pueden aparecer en orden inverso al que se encuentra en el sector MBR). Les siguen ocho bytes más, que forman un entero de 64 bits, en notación little-endian , que se utilizan para ubicar 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, dividir este byte desplazado 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 los sectores de las tuplas CHS, que cuenta desde uno , el valor absoluto del sector 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 (bajo, por ejemplo, el valor clave ), comenzaría en el desplazamiento de bytes 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 ello. [29] Si la firma del disco cambia, no se puede encontrar o tiene un conflicto, Windows no puede iniciar. [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 firma de pseudodisco, el uso de Windows entra en conflicto con la función 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 la 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, primero el byte menos significativo . El formato del MBR en medios refleja esta convención. Por lo tanto, la firma MBR aparecerá en un editor de disco 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 0x0000 : 0x7C00 . [31] La última instrucción ejecutada en el código 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 fijos son esencialmente lo mismo. Para cualquiera de los dos, 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 se encuentra la firma correcta, transfiere el control al primer byte de el sector con una instrucción de salto (JMP). La única distinción real que hace el BIOS es que (de forma predeterminada, o si el orden de inicio no es configurable) intenta iniciar desde el primer disco extraíble antes de intentar iniciar desde el primer disco fijo. Desde la perspectiva del BIOS, la acción del MBR al cargar un registro de inicio de volumen en la RAM es exactamente la misma que la acción de un registro de inicio de volumen de un disquete al cargar el código objeto de un cargador de sistema operativo en la RAM. En cualquier caso, el programa que cargó el BIOS realiza el trabajo de cargar en cadena un sistema operativo.

Mientras que el código del sector de arranque MBR espera cargarse 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] luego se relajó 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 forma predeterminada, simplemente lee el tamaño de la memoria base en KB del segmento :ubicación de desplazamiento 0x0040 : 0x0013 , pero puede estar enganchado por otros pre-residentes). software de arranque como superposiciones de BIOS, código RPL o virus para reducir la cantidad reportada 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 como 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 del MBR carga y ejecuta (un cargador de arranque o dependiente del sistema operativo) un código de registro de arranque de volumen que se encuentra al principio de la partición "activa". El registro de arranque del volumen cabe dentro de un sector de 512 bytes, pero es seguro que el código MBR cargue sectores adicionales para acomodar cargadores de arranque de más de 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 un sector de 1 KB podría usarse sin problemas. Al igual que el MBR, normalmente se espera que un registro de inicio de volumen se cargue en la dirección 0x0000 : 0x7C00 . Esto se debe al hecho de que el diseño del registro de inicio del volumen se originó en medios no particionados, donde el procedimiento de inicio del BIOS cargaría directamente un registro de inicio del volumen; Como se mencionó anteriormente, el BIOS trata los MBR y los registros de arranque por volumen (VBR) [l] exactamente igual. 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 normalmente es 0x0000 : 0x0600 (para código MBR de MS-DOS/PC DOS, OS/2 y 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 se refiere erróneamente a ella a través de 0x0000 :SI solamente [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 sistema de arranque. archivo.

El campo Estado en un registro de la tabla de particiones se utiliza para indicar una partición activa. Los MBR que cumplen con el estándar permitirán solo una partición marcada como activa y la usarán como parte de una verificación de idoneidad para determinar la existencia de una tabla de particiones válida. Mostrarán un mensaje de error si más de una partición se ha marcado como activa. Algunos MBR no estándar no tratarán esto como una condición de error y simplemente usará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 pudieran iniciarse desde 1994. [32] [34] En consecuencia, con la introducción de MS-DOS 7.10 (Windows 95B) y superior, el MBR comenzó a tratar un bit 7 establecido como indicador activo y mostró un mensaje de error solo para los valores 0x01 ... 0x7F . Continuó tratando la entrada como una unidad de disco física que se usará al cargar el VBR de la partición correspondiente más adelante, por lo que ahora también acepta como válidas otras unidades de arranque distintas de 0x80 ; sin embargo, MS-DOS no hizo uso de esta extensión por sí solo. 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 a la primera (que de todos modos no han sido arrancables antes). Sin embargo, incluso con sistemas habilitados para arrancar desde otras unidades, es posible que la extensión aún no funcione universalmente, por ejemplo, después de que la asignación del BIOS de las unidades físicas haya cambiado cuando se extraen, 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 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 la 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 en modo real, no es estándar y debe evitarse, 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.
DL es compatible con BIOS de IBM, así como con la mayoría de los demás BIOS. Se sabe que el BIOS Toshiba T1000 no admite esto correctamente, y algunos BIOS Wyse 286 antiguos usan 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 normalmente obtienen una asignación de DL = 0x80 , 0x81 , etc. Sin embargo, algunos BIOS raros los presentaban erróneamente bajo DL = 0x01 , como si estuvieran configurados como superfloppies.
Un BIOS compatible con el estándar asigna números mayores o iguales a 0x80 exclusivamente a unidades de disco fijo/extraíbles y, tradicionalmente, solo los valores 0x80 y 0x00 se pasaban como unidades de disco físicas durante el arranque. Por convención, sólo se particionan los discos fijos/unidades extraíbles, 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 de BIOS Plug and Play y la especificación de arranque de BIOS (BBS) permiten que otros dispositivos también sean arrancables desde 1994. [32] [34] Este último recomienda que el código MBR y VBR utilice DL en lugar de los valores predeterminados cableados internamente. [32] Esto también garantizará la compatibilidad con varias asignaciones no estándar (ver ejemplos anteriores), en lo que respecta al código MBR.
Los CD-ROM de arranque que siguen la especificación de 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 Confiable para acceder a particiones PARTIES y archivos de imagen de disco que de otro modo serían invisibles y se encuentran a través del Registro de extensión de ingeniería de arranque. (CERVEZA) 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 compatibilidad Plug-and-Play BIOS o BBS proporcionarán un puntero a los datos PnP además de DL: [32] [34]

Esta información permite que el cargador de arranque en el MBR (o VBR, si se transmite) 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, esta información se ignora. por la mayoría de los MBR y VBR estándar. Idealmente, ES:DI se pasa al VBR para su uso posterior por parte del sistema operativo cargado, pero los sistemas operativos habilitados para PnP generalmente 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 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 transmiten el valor DL ​​recibido al ingresar, sino que utilizan la entrada de estado de inicio en la entrada de la tabla de particiones de la partición primaria seleccionada como unidad de unidad de inicio física. 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 que no sea el 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 actualmente asignada ( 0x81 , 0x82 ). permitiendo así el arranque desde otras unidades, al menos en teoría. De hecho, esto funcionará con muchos códigos MBR, que toman un bit establecido 7 de la entrada de estado de inicio como indicador activo en lugar de insistir en 0x80 ; sin embargo, los MBR de MS-DOS/PC DOS están programados para aceptar el valor fijo de 0x80 solamente. Almacenar el número de unidad física real en la tabla de particiones también causará problemas cuando cambie la asignación del BIOS de las unidades físicas, por ejemplo, cuando se extraigan, agreguen o intercambien unidades. Por lo tanto, para un MBR normal que acepta el bit 7 como indicador activo y, de lo contrario, simplemente usa y pasa al VBR, el valor DL ​​proporcionado originalmente por el BIOS permite la 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 no válido, pero aún toman la unidad de disco 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 indicador activo y usan y pasan el valor DL ​​del BIOS de forma predeterminada (incluidos los valores no estándar 0x00 .. 0x01 utilizados por algunos BIOS también para medios particionados), pero también proporcionan un NEWLDR especial. bloque de configuración 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 Desplazamiento NEWLDR ), traduce unidades de unidad no estándar Wyse 0x02 ... 0x7F a 0x80 ... 0xFD y, opcionalmente, corrige el valor de la unidad (almacenado en el desplazamiento en el bloque de parámetros extendido del BIOS (EBPB) o en el desplazamiento del sector).0x000C0x0190x01FD) en los VBR cargados antes de pasarles la ejecución (consulte Desplazamiento de NEWLDR 0x0014). Esto también permite que otros cargadores de arranque utilicen NEWLDR como cargador de cadena, configuren su imagen en memoria sobre la marcha y "canalicen" 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, el MBR extendido puede proporcionar opcionalmente una interfaz extendida y junto con LOADER:

Junto con GPT, una propuesta de MBR híbrido de especificación de unidad de disco mejorada (EDD) 4 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 los 2 TiB, un cargador de arranque híbrido habilitado para GPT aún debería emular la entrada de la tabla de particiones MBR ficticia de 16 bytes si la partición de arranque se encuentra dentro de los primeros 2 TiB. [norte]

Editar y reemplazar contenidos

Aunque es posible manipular los bytes en el sector MBR directamente usando 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 usar para escribir nuevo código MBR en un dispositivo de almacenamiento usando su fixmbrcomando. En Windows Vista y Windows 7 , el entorno de recuperación se puede utilizar para escribir nuevo código MBR mediante el BOOTREC /FIXMBRcomando. También se pueden utilizar algunas utilidades de terceros para editar directamente el contenido de las tablas de particiones (sin necesidad de conocimientos de editores hexadecimales o de disco/sector), como MBRWizard . [o]

ddes un comando POSIX comúnmente utilizado para leer o escribir cualquier ubicación en un dispositivo de almacenamiento, incluido MBR. En Linux , se puede utilizar ms-sys para instalar un MBR de Windows. Los proyectos GRUB y LILO tienen herramientas para escribir código en el sector MBR, concretamente grub-instally lilo -mbr. La consola interactiva GRUB Legacy puede escribir en el MBR mediante los comandos setupy embed, pero actualmente GRUB2 requiere grub-installejecutarse desde 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 comando de ejemplo para hacer una copia de seguridad de la tabla de particiones es sfdisk -d /dev/hda > hda.outy restaurar es sfdisk /dev/hda < hda.out. Es posible copiar la tabla de particiones de un disco a otro de esta manera, lo cual es útil para configurar la duplicación, pero sfdisk ejecuta el comando sin solicitar ni advertir usando sfdisk -d /dev/sda | sfdisk /dev/sdb. [39]

Ver también

Notas

  1. ^ abcdefg La firma en el desplazamiento 0x01FE en los sectores de arranque es 0x55 en el desplazamiento 0x01FE y en el desplazamiento 0x01FF . Dado que se debe asumir la representación little-endian en el contexto de máquinas compatibles con IBM PC , esto se puede escribir como palabra de 16 bits en programas para procesadores x86 (tenga en cuenta el orden intercambiado), mientras que tendría que escribirse como en programas para otros 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 de bytes basada en desplazamiento para evitar cualquier posible mala interpretación.55hex AAhexAAhexAA55hex55AAhex
  2. ^ Para garantizar la integridad del código del cargador de arranque MBR, es importante que los bytes en 0x00DA a 0x00DF nunca se cambien, a menos que los seis bytes representen un valor de 0 o todo el código del cargador de arranque MBR (excepto ( extendida) tabla de particiones) también se reemplaza 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 indicador activo y usan 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 cabezas y 63 sectores; Los campos del sector final tienen las mismas limitaciones.
  5. ^ abcde El rango del sector es del 1 al 63; el rango para el cilindro es de 0 a 1023; el rango de head 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 usarse en entradas de partición normales. Esta entrada la utilizan los sistemas operativos en determinadas circunstancias; en tales casos se ignoran las direcciones CHS. [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 como máximo 255 ( FEh) cabezas." RBIL [40] [41]
  9. ^ La dirección : es el primer byte del 32.º KB de RAM. Históricamente, la carga del programa de arranque en esta dirección era la razón por la que, mientras que el tamaño mínimo de RAM de un PC IBM original (tipo 5150) era de 16 KB, para la opción de disco en el IBM XT se necesitaban 32 KB.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, sólo se garantiza la existencia de 32 KB (hasta : ) o 64 KB (hasta : ); este sería el caso en una máquina IBM clase XT equipada con sólo la cantidad mínima de memoria requerida para un sistema de disco.A0000hex0000hex7FFFhex0000hexFFFFhex
  12. ^ Esto se aplica cuando el BIOS maneja un VBR, que es cuando se encuentra en el primer sector físico de un medio no particionado. De lo contrario, la BIOS no tiene nada que ver con la VBR. El diseño de los VBR es tal como es porque los VBR se originaron únicamente en disquetes sin particiones (la PC IBM tipo 5150 originalmente no tenía opción de disco duro) y el sistema de partición 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 ya definido, en un único disco fijo. Con este diseño, esencialmente el MBR emula la rutina de arranque del BIOS, haciendo las mismas cosas que haría el BIOS para procesar este VBR y configurar el entorno operativo inicial para él, como si el BIOS hubiera encontrado ese VBR en un medio no particionado.
  13. ^ La IP se establece como resultado del salto. CS se puede establecer en 0 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 saltado detecte si se utilizó un salto cercano o lejano para alcanzarlo [a menos que el código que realizó el salto por separado pase esta información de alguna manera].)
  14. ^ Esto no es parte de la propuesta mencionada anteriormente, sino una consecuencia natural de 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 27 de abril de 2017 . Consultado el 28 de agosto de 2013 .
  2. ^ abc Sedory, Daniel B. (2004). "Los bytes misteriosos (o los bytes de 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 los paranoicos prácticos. pag. 73.ISBN 9781886411999. Consultado el 9 de abril de 2011 . Cada sistema operativo incluye herramientas para administrar particiones MBR. Desafortunadamente, cada sistema operativo maneja las particiones MBR de una manera ligeramente diferente.
  4. ^ Norton, Pedro ; Clark, Scott (2002). Lo nuevo de Peter Norton dentro de la PC. Editorial Sams . págs. 360–361. ISBN 0-672-32289-7.
  5. ^ Tumbas, Michael W. (2004). Guía A+ para mantenimiento y reparación de hardware de PC . Thomson Delmar. pag. 276.ISBN 1-4018-5230-0.
  6. ^ Andrews, Jean (2003). Actualización y reparación con Jean Andrews. Tecnología del curso Thomson. pag. 646.ISBN 1-59200-112-2.
  7. ^ Boswell, William (2003). Dentro de Windows Server 2003 . Profesional de Addison-Wesley . pag. 13.ISBN 0-7357-1158-5.
  8. ^ Smith, Roderick W. (2000). El manual de configuración de arranque múltiple. Que Editorial . págs. 260–261. ISBN 0-7897-2283-6.
  9. ^ Brouwer, Andries Evert (22 de abril de 2004) [2000]. "Propiedades de las tablas de particiones". Tipos de partición . Archivado desde el original el 24 de agosto de 2017 . Consultado el 24 de agosto de 2017 . 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 correspondiente código de arranque del MBR compatible con AAP. […]"
  10. ^ Brouwer, Andries Evert (22 de abril de 2004) [2000]. "Propiedades de las tablas de particiones". Tipos de partición . Archivado desde el original el 24 de agosto de 2017 . Consultado el 24 de agosto de 2017 . 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. (Matías R. Pablo).14hex24hex(NB. Las tablas de particiones 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 de DOS 3.30 MBR". 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. Por lo tanto, las entradas se insertan y enumeran al revés de las de una tabla normal. Por lo tanto, al observar dicha tabla con un editor de disco o una utilidad de listado de particiones, mostraría la primera entrada en una tabla de ocho entradas de NEC 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 inicio difiere de MS-DOS 3.30).
  12. ^ "Tabla de particiones". osdev.org. 2017-03-18 [2007-03-06]. Archivado desde el original el 24 de agosto de 2017 . Consultado el 24 de agosto de 2017 .
  13. ^ BIOS del sistema abc 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 partición . Archivado desde el original el 24 de agosto de 2017 . Consultado el 24 de agosto de 2017 .
  15. ^ ab Madera, Sybil (2002). Guía de operaciones de Microsoft Windows 2000 Server. Prensa de Microsoft . pag. 18.ISBN 978-0-73561796-4.
  16. ^ "Introducción a la geometría del disco duro". Jugo tecnológico . 06/12/2012 [08/08/2011]. Archivado desde el original el 4 de febrero de 2013.
  17. ^ Kozierok, Charles M. (17 de abril de 2001). "BIOS y el disco duro". La guía de PC . 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). "Solucionar las limitaciones de MBR". Tutorial de disco fdisk 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". superusuario.com. 2013-03-07. Archivado desde el original el 24 de agosto de 2017 . Consultado el 22 de octubre de 2013 .
  20. ^ "Transición a discos duros sectoriales 4K de formato avanzado". Conocimiento tecnológico . Tecnología Seagate . 2012. Archivado desde el original el 24 de agosto de 2017 . Consultado el 19 de abril de 2013 .
  21. ^ Calvert, Kelvin (16 de marzo de 2011). "Discos duros de gran capacidad WD AV-GP" (PDF) . Occidente digital . Consultado el 20 de abril de 2013 .
  22. ^ Smith, Roderick W. (27 de abril de 2010). "Linux en discos de sector 4KB: consejos prácticos". DesarrolladorWorks . IBM . Archivado desde el original el 24 de agosto de 2017 . Consultado el 19 de abril de 2013 .
  23. ^ ab "MBR (x86)". Wiki OSDev . OSDev.org. 2012-03-05. 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). "Registro de arranque maestro de IBM DOS 2.00". El reino del hombre estrella. 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]. "Arranque de Mac OS X". Componentes internos 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 de 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 (22 de marzo de 2005) [19 de diciembre de 2003]. "Re: mejoras en RFC 2.6.0 EDD". Lista de correo del kernel de Linux . Archivado desde el original el 24 de agosto de 2017 . Consultado el 24 de agosto de 2017 .
  28. ^ "Windows puede usar la sintaxis Signature() en el archivo BOOT.INI". Base de conocimientos . Microsoft .
  29. ^ McTavish (febrero de 2014). "Firma del disco MBR de Vista". Arrancadores múltiples: arranque dual y 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 discos". 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é BIOS carga 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 .; Corporación Intel (11 de enero de 1996). "Especificación de arranque del BIOS 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. ^ a b C Compaq Computer Corporation ; Phoenix Technologies Ltd .; Corporación Intel (5 de mayo de 1994). "Especificación de BIOS Plug and Play 1.0A" (PDF) . 1.0A. Intel . Archivado desde el original (PDF) el 24 de agosto de 2017 . Consultado el 20 de abril de 2013 .
  35. ^ Paul, Matías R. (2 de octubre de 1997) [29 de septiembre de 1997]. "Caldera OpenDOS 7.01/7.02 Actualización Alpha 3 IBMBIO.COM - README.TXT y BOOT.TXT - Una breve descripción de cómo se inicia OpenDOS". Archivado desde el original el 4 de octubre de 2003 . Consultado el 29 de marzo de 2009 .[2]
  36. ^ Paul, Matías R. (14 de agosto de 2017) [7 de agosto de 2017]. "La continuación de la saga 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 unidad de arranque informada por IPL (n=0..126, 128..254). […] Preparando el disco de destino... Eligiendo el sector de inicio FAT12 CHS (requiere IPL para informar la unidad de inicio). Tratar el destino como un disquete o un medio superfloppy (unidad de disco de arranque 0). Escribiendo un nuevo sector de arranque... […](NB. SYS escribe registros de inicio de volumen en lugar de registros de inicio maestros, pero su interfaz de registro entrante es similar (con extensiones) ya que ambos pueden cargarse inicialmente mediante 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". Apoyo . 1.Microsoft .23 de septiembre de 2011. 69013. Archivado desde el original el 8 de febrero de 2017 . Consultado el 19 de abril de 2013 .
  39. ^ "sfdisk(8) - página de 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. ^ Marrón, Ralf D. (16 de julio de 2000). "Lista de interrupciones de Ralf Browns (v61 html)". Software Delorie . Consultado el 3 de noviembre de 2016 .
  41. ^ Marrón, Ralf D. (16 de julio de 2000). "B-1302: INT 13 - DISCO - LEER SECTOR(ES) EN LA 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.)

Otras lecturas

enlaces externos