| Adreça | Descripció |
|---|---|
| 0x0000 | Àrea de Codi |
| 0x01B8 | 4 bytes signa del disc (opcional) |
| 0x01BE | Per a entrades en la taula de particions primàries de 16 bytes (esquema estàndard de la Taula de Particions del MBR) |
| 0x01FE | 2 bytes signa del MBR (0xAA55) |
Un master boot record (MBR) és el primer sector ("sector zero") d'un dispositiu d'emmagatzematge de dades, com un disc dur. De vegades, s'empra per a l'arrencada del sistema operatiu amb bootstrap, altres vegades és usat per emmagatzemar una taula de particions i, en ocasions, s'usa només per identificar un dispositiu de disc individual, encara que en algunes màquines això últim no s'usa i és ignorat.
Algunes vegades s'empra per a l'arrencada del sistema operatiu amb bootstrap, altres vegades és usat per emmagatzemar una taula de particions i, en ocasions, s'usa només per identificar un dispositiu de disc individual, encara que en algunes màquines això últim no s'usa i és ignorat.
Contingut |
| 512 Bytes | 0x01BE | Per a entrades en la taula de particions primàries de 16 bytes (esquema estàndard de la Taula de Particions del MBR) | |
| 0x01FE | 2 bytes signa del MBR (0xAA55) |
En la pràctica, el MBR gairebé sempre es refereix al sector d'arrencada de 512 bytes, o el partition sector d'una partició per a ordinadors compatibles amb IBM (International Business Machines). A causa de l'àmplia implantació d'ordinadors PC clònics, aquest tipus de MBR s'usa molt, fins al punt de ser incorporat en altres tipus d'ordinador i en nous estàndards multi-plataforma pel particionado i l'arrencada.
| 446 Bytes | Codi màquina (gestor d'arrencada) |
| 64 Bytes | Taula de particions |
| 2 Bytes | Signa d'unitat arrancable ("55h AAh" en hexadecimal) |
|}
== El MBR i endida els usa el codi del gestor d'arrencada inclosa en el MBR per determinar des de quines particions es pot arrencar (tenen la marca bootable). (En nomenclatura IBM, aquestes particions es marquen com startable. En altres nomenclatures se'ls crida activi).
Els camps d'estat en els registres de la taula d'una partició estesa tenen el mateix ús que en el cas anterior, (en nomenclatura IBM, aquestes particions són marcades com bootable). En general, les particions marcades amb "bootable" contenen un gestor d'arrencada, que mostra una llista de les particions des de les quals es pot arrencar.</ref> (0x80 = bootable, 0x00 = senar-bootablel particionado de discos ==
| Offset | Descripció |
|---|---|
| 0x00 | Estat[1] |
| 0x01 | Capçal, Sector i Cilindre del primer sector en la partició[2] |
| 0x04 | Tipus de partició |
| 0x05 | Capçal, Sector i Cilindre de l'últim sector de la partició[2] |
| 0x08 | (4 bytes) Logical block address del primer sector de la partició |
| 0x0C | (4 bytes) Longitud de la partició, en sectors |
| Offset | Descripció |
|---|---|
| 0x00 | Bits d'estat[1] (bit 0 = llista del menú del Gestor d'Arrencada, la resta són bits reservats) |
| 0x01 | Signatura de la partició |
Quan un dispositiu d'emmagatzematge de dades s'ha particionado amb un esquema de taula de particions del MBR (per exemple l'esquema convencional de particionado de IBM PC), el MBR conté les entrades primàries en la taula de particions. Les entrades de particions secundàries s'emmagatzemen en registres de particions esteses, etiquetes de disc BSD, i particions de metadatos del Logical Disk Manager que són descrites per aquestes entrades de particions primàries.
Per convenció, hi ha exactament quatre entrades de particions primàries en l'esquema de la Taula de Particions, encara que en alguns sistemes (pocs) s'ha estès aquest nombre a cinc o vuit.[3]
Quan un dispositiu d'emmagatzematge de dades s'ha particionado amb Taula de Particions GUID, el Master Boot Record no conté la taula de particions (encara que conté models d'estructures de dades, una protecció del MBR enfront de programes que només entenen l'esquema de la Taula de Particions del MBR perquè no creuen particions en el disc) i s'usa poc a causa del que pot afectar al particionado de disc.
En els ordinadors compatibles IBM IA-32 que usen l'esquema de la Taula de Particions del MBR, el firmware per a l'arrencada (bootstrapping) que es troba en la ROM del BIOS (actualment usen memòries flaix) càrrega i executa el master boot record. Com els processadors de la família i386 arrenquen en manera real, el codi del MBR està compost d'instruccions de llenguatge màquina en manera real. Aquest codi passa, normalment, el control mitjançant chain loading al Volume Boot Record de la partició (primària) activa, encara que alguns gestors d'arrencada reemplacen aquest codi convencional pel seu.
El codi convencional del MBR espera que s'usi l'esquema de la Taula de Particions del MBR, i escaneja la llista d'entrades de particions (primàries) en la taula de particions buscant una que estigui marcada amb activi flag. Després carrega i executa el Volume Boot Record per a aquesta partició (així que el Master Boot Record, com altres sectors d'arrencada, és un blanc per als virus que infecten el sector d'arrencada).
El codi del MBR, modificat per alguns gestors d'arrencada, pot realitzar una sèrie de tasques que són diferents segons el gestor d'arrencada. Per exemple, en alguns gestors, aquest codi carrega la resta del codi del gestor d'arrencada des de la primera pista del disc (que és espai lliure no assignat a cap partició de disc) i ho executa. En uns altres, usa una taula de posicions de disc, que es troba en el mateix espai que el codi, per localitzar el codi de la resta del gestor d'arrencada i poder carregar-ho i executar-ho. Ambdues formes tenen problemes. La primera confia en el comportament (que no és el mateix en totes) de les utilitats de particionado de disc i la segona requereix que la taula de posicions de disc s'actualitzi una vegada s'hagin fet els canvis per localitzar la resta del codi.
En els ordinadors que no usen processadors IA-32, o en ordinadors que usen l'esquema de la Taula de Particions GUID, aquest esquema no és correcte, i el MBR no s'utilitza en l'arrencada del sistema. En el seu lloc el firmware és capaç d'entendre directament l'esquema de particionado GPT i el format de sistema de fitxers FAT, de manera que carrega i executa programes guardats com a fitxers en la Partició del Sistema. El MBR, per tant, no intervé en absolut en l'arrencada del sistema (excepte indirectament, en la mesura en què podria contenir la taula de particions si s'ha usat l'esquema de la Taula de Particions del MBR).
A més del codi de l'arrencada i la taula de particions, hi ha un tercer camp que pot estar contingut en un MBR: la signatura del disc (de Windows NT). Té 32 bits per identificar unívocament el maquinari de disc (no confondre amb la unitat de disc — no tenen per què ser el mateix en discos durs extraíbles).
La signatura del disc va ser introduïda per Windows NT 3.5, però actualment la usen diversos sistemes operatius, inclosa les versions de la 2.6 d'ara endavant del kernel de Linux. Windows NT usa la signatura del disc com un índex en el seu registre, on guarda la relació entre particions i lletres de disc. També ho usa en el fitxer boot.ini per indicar les particions amb marca bootable en Windows NT.[4] Linux usa la signatura del disc en arrencar per determinar la posició del volum d'arrencada
S'assumeix que el sistema que s'està programant usa un esquema MBR per BIOS, com s'ha indicat abans, i la BIOS del sistema localitza un MBR vàlid en un disc particionado durant la seqüència d'arrencada (boot sequence). Com s'ha vist abans, el codi convencional del MBR carrega i executa el codi del Volume Boot Record del sistema operatiu (o bootloader) que es troba al principi de la partició activa. El MBR pot assumir simplement que la partició activa del disc actual és des de la qual s'arrenca o, alternativament, pot programar-se com un MBR de Arrencada dual. Un MBR d'arrencada dual ha d'interactuar amb l'usuari per determinar des de quina partició de disc s'arrenca i ha de passar-li el control al MBR d'un altre disc dur.
La BIOS carregarà el primer MBR vàlid que trobi cap a l'adreça física hexadecimal 0x7C00, i salta a aquesta adreça. Part dels 512 bytes del sector es reserva per a la taula de particions i una altra informació (veure la taula), així que el codi del programa ha de ser tan petit com per cabre en poc més de 400 bytes de memòria. El codi ha de comunicar-se amb l'usuari, examinar la taula de particions, o realitzar tasques de gestió com activar la línia A20, o canviar a manera irreal des de manera real. Eventualment, el MBR necessitarà realitzar la seva tasca i carregar el programa que farà la següent fase de l'arrencada, usant la trucada de la BIOS INT 13.
Normalment, el codi del sector d'arrencada també espera ser carregat de l'adreça física 0x7C00, fins i tot quan tota la memòria de les adreces físiques entre la 0x500 i la 0x9ffff està disponible en manera real (637 Kb i mitjà). Quan el MBR ja s'està executant des de la posició 0x7C00, una de les seves primeres tasques normalment és resituar-se en un altre lloc de la memòria -- sovint en la 0x7A00. Un Volume Boot Record té solament la grandària d'un sector, la qual cosa no és un problema doncs és fàcil que el MBR carregui bastant més que només un sector. Alguns gestors d'arrencada són més grans que un sector, així que carregar més d'un sector pot accelerar el procés d'arrencada.
En UNIX/Linux es pot usar el comando dd per fer un backup i restaurar el MBR des d'una consola.
Per fer la còpia de seguretat (backup):
dd if=/dev/xxx of=mbr.backup bs=512 count=1
Per restaurar-ho:
dd if=mbr.backup of=/dev/xxx bs=512 count=1
On xxx és el dispositiu, que pot ser hda, sda, o qualsevol un altre.
Si es vol fer una còpia de seguretat del MBR, seria recomanable copiar els primers 63 sectors del disc (que equivaldrien al primer cilindre del disc) i no només el primer, ja que el nostre sistema podria tenir implementat el sistema GUID, el qual utilitza més sectors per guardar la informació sobre les particions del disc dur. La instrucció seria:
dd if=/dev/xxx of=mbr_63.backup bs=512 count=63
Per esborrar-ho, si no tenim una còpia de seguretat però necessitem eliminar la informació d'aquest sector, hem de posar els 512 bytes a zero:
dd if=/dev/zero of=/dev/xxx bs=512 count=1
En els sistemes operatius de Microsoft no hi ha accés directe al MBR. En DOS o Windows 9x, el programa de DOS fdisk juntament amb fdisk /mbr (del que no hi ha documentació) reescriurà el codi del MBR. En Windows 2000 i posteriors, la consola de recuperació pot usar-se per escriure el nou codi del MBR al disc dur. Existeixen altres utilitats per editar la taula de particions del MBR directament.
Si s'està fent un backup del disc dur (el que en anglès es coneix com ghosting) i dóna avisos que no es troba el fitxer de paginació, segurament es pugui solucionar amb fdisk /fixmbr (executat des d'un disquet, ja que no es podrà entrar en Windows).
En DR DOS 6 (i possiblement altres versions), el programa FDISK té una opció per reescriure el MBR ("Re-write Master Boot Record"). Quan s'executa amb aquesta opció es guarda l'antic MBR en OLDMBR.BIN, que pot ser copiat en un disquet perquè FDISK intenti restaurar el MBR original des d'ell, en cas de necessitat.