O master boot record (MBR), ou registro mestre de inicialização, é um tipo de setor de inicialização localizado no primeiro bloco de dispositivos de armazenamento em massa de computadores particionados, como discos fixos ou unidades removíveis, destinado ao uso em sistemas compatíveis com IBM PC e posteriores. O conceito de MBR foi introduzido publicamente em 1983 com o PC DOS 2.0.

O MBR contém as informações sobre como os setores do disco (também conhecidos como "blocos") estão divididos em partições, com cada partição contendo teoricamente um sistema de arquivos. O MBR também contém código executável para funcionar como um carregador para o sistema operacional instalado — geralmente passando o controle para a segunda etapa do carregador ou em conjunto com o registro de inicialização do volume (VBR) de cada partição. Esse código do MBR é comumente chamado de carregador de inicialização (boot loader).

A organização da tabela de partições no MBR limita o espaço máximo de armazenamento endereçável de um disco particionado a 2 TiB . Abordagens para elevar ligeiramente esse limite utilizando aritmética de 32 bits ou setores de 4096 bytes não são suportadas oficialmente, pois quebram fatalmente a compatibilidade com os carregadores de inicialização existentes, com a maioria dos sistemas operacionais compatíveis com MBR e ferramentas de sistema associadas, além de poderem causar corrupção grave de dados quando usadas fora de ambientes de sistema rigidamente controlados. Portanto, o esquema de particionamento baseado em MBR foi substituído pelo esquema de Tabela de Partições GUID (GPT) em quase todos os computadores novos. Uma GPT pode coexistir com um MBR a fim de fornecer alguma forma limitada de compatibilidade retroativa para sistemas mais antigos.

Os MBRs não estão presentes em mídias não particionadas, como disquetes, superdisquetes ou outros dispositivos de armazenamento configurados para se comportarem como tal, e também não estão necessariamente presentes em unidades usadas em plataformas que não sejam PC.

Visão geral O suporte a mídias particionadas e, consequentemente, ao registro mestre de inicialização (MBR), foi introduzido com o IBM PC DOS 2.0 em março de 1983 para suportar o disco rígido de 10 MB do então novo IBM Personal Computer XT, ainda utilizando o sistema de arquivos FAT12. A versão original do MBR foi escrita por David Litton da IBM em junho de 1982. A tabela de partições suportava até quatro partições primárias. Isso não mudou quando o FAT16 foi introduzido como um novo sistema de arquivos com o DOS 3.0. O suporte a uma partição estendida, um tipo especial de partição primária usada como contêiner para abrigar outras partições, foi adicionado com o DOS 3.2, e as unidades lógicas aninhadas dentro de uma partição estendida surgiram com o DOS 3.30. Como o MS-DOS, o PC DOS, o OS/2 e o Windows nunca foram habilitados para inicializar a partir delas, o formato do MBR e o código de inicialização permaneceram quase inalterados em termos de funcionalidade (exceto por algumas implementações de terceiros) ao longo das eras do DOS e OS/2 até 1996.

Em 1996, o suporte ao endereçamento de bloco lógico (LBA) foi introduzido no Windows 95B e no MS-DOS 7.10 (não confundir com o IBM PC-DOS 7.1) para suportar discos maiores que 8 GB. Os carimbos de data/hora do disco (disk timestamps) também foram introduzidos. Isso também refletia a ideia de que o MBR deve ser independente de sistema operacional e de sistema de arquivos. No entanto, essa regra de design foi parcialmente comprometida em implementações mais recentes do MBR da Microsoft, que forçam o acesso CHS para os tipos de partição FAT16B e FAT32 /, enquanto o LBA é usado para /.

Apesar da documentação às vezes escassa de certos detalhes intrínsecos do formato MBR (o que ocasionalmente causava problemas de compatibilidade), ele foi amplamente adotado como um padrão da indústria de fato, devido à grande popularidade dos computadores compatíveis com PC e à sua natureza semiestática ao longo de décadas. Isso ocorreu a ponto de ser suportado por sistemas operacionais de computador para outras plataformas. Às vezes, isso ocorria em adição a outros padrões preexistentes ou multiplataforma para inicialização (bootstrapping) e particionamento.

As entradas de partição do MBR e o código de inicialização do MBR usados em sistemas operacionais comerciais, no entanto, são limitados a 32 bits. Portanto, o tamanho máximo de disco suportado em discos que utilizam setores de 512 bytes (sejam reais ou emulados) pelo esquema de particionamento MBR (sem aritmética de 32 bits) é limitado a 2 TiB. Consequentemente, um esquema de particionamento diferente deve ser usado para discos maiores, já que estes se tornaram amplamente disponíveis desde 2010. O esquema de particionamento MBR está, por isso, em processo de substituição pela Tabela de Partições GUID (GPT). A abordagem oficial faz pouco mais do que garantir a integridade dos dados empregando um MBR de proteção (protective MBR). Especificamente, ela não fornece compatibilidade retroativa com sistemas operacionais que também não suportam o esquema GPT. Enquanto isso, múltiplas formas de MBRs híbridos foram projetadas e implementadas por terceiros para manter partições localizadas nos primeiros 2 TiB físicos de um disco em ambos os esquemas de particionamento "em paralelo" e/ou para permitir que sistemas operacionais mais antigos inicializem a partir de partições GPT também. A atual natureza não padronizada dessas soluções causa vários problemas de compatibilidade em certos cenários.

O MBR consiste em 512 ou mais bytes localizados no primeiro setor da unidade.

Ele pode conter um ou mais dos seguintes itens: Uma tabela de partições que descreve as partições de um dispositivo de armazenamento. Neste contexto, o setor de inicialização também pode ser chamado de setor de partição. Código de inicialização: Instruções para identificar a partição configurada como inicializável, e então carregar e executar seu registro de inicialização do volume (VBR) como um carregador em cadeia (chain loader). Um carimbo de data/hora do disco (disk timestamp) opcional de 32 bits. Uma assinatura de disco (disk signature) opcional de 32 bits.

Particionamento de disco O IBM PC DOS 2.0 introduziu o utilitário FDISK para configurar e manter partições MBR. Quando um dispositivo de armazenamento foi particionado de acordo com esse esquema, seu MBR contém uma tabela de partições que descreve as localizações, tamanhos e outros atributos de regiões lineares chamadas partições.

As próprias partições também podem conter dados para descrever esquemas de particionamento mais complexos, como registros de inicialização estendidos (EBRs), rótulos de disco BSD (disklabels) ou partições de metadados do Logical Disk Manager.

O MBR não está localizado dentro de uma partição; ele fica no primeiro setor do dispositivo (deslocamento físico 0), precedendo a primeira partição. (O setor de inicialização presente em um dispositivo não particionado ou dentro de uma partição individual é chamado, em vez disso, de registro de inicialização do volume.) Nos casos em que o computador está executando uma sobreposição de BIOS DDO (Dynamic Drive Overlay) ou um gerenciador de inicialização, a tabela de partições pode ser movida para alguma outra localização física no dispositivo; por exemplo, o Ontrack Disk Manager frequentemente colocava uma cópia do conteúdo original do MBR no segundo setor e depois se ocultava de qualquer sistema operacional ou aplicativo inicializado subsequentemente, de modo que a cópia do MBR era tratada como se ainda residisse no primeiro setor.

Layout do setor Por convenção, existem exatamente quatro entradas na tabela de partições primárias no esquema de tabela de partições MBR, embora alguns sistemas operacionais e ferramentas de sistema tenham estendido isso para cinco (Partições Ativas Avançadas (AAP) com o PTS-DOS 6.60 e DR-DOS 7.07), oito (AST e NEC MS-DOS 3.x bem como o Storage Dimensions SpeedStor) ou até dezesseis entradas (com o Ontrack Disk Manager).

+ Estrutura de um MBR genérico clássico Endereço Descrição Tamanho(bytes) 0x0000 (0) Área do código de inicialização (bootstrap) 446 0x01BE (446) Entrada de partição №1 Tabela de partições(para partições primárias) 16 0x01CE (462) Entrada de partição №2 16 0x01DE (478) Entrada de partição №3 16 0x01EE (494) Entrada de partição №4 16 0x01FE (510) 0x55 Assinatura de inicialização 2 0x01FF (511) 0xAA Tamanho total: 446 + 4×16 + 2 512

+ Estrutura de um MBR padrão moderno Endereço Descrição Tamanho(bytes) 0x0000 (0) Área do código de inicialização (parte 1) 218 0x00DA (218) 0x0000 Carimbo de data/hora do disco (opcional; Windows 95B/98/98SE/ME (MS-DOS 7.1–8.0). Alternativamente, pode servir como assinatura do carregador OEM com NEWLDR) 2 0x00DC (220) 1 0x00DD (221) Segundos (0–59) 1 0x00DE (222) Minutos (0–59) 1 0x00DF (223) Horas (0–23) 1 0x00E0 (224) Área do código de inicialização (parte 2, entrada do código em 0x0000) 216 (ou 222) 0x01B8 (440) Assinatura de disco de 32 bits Assinatura de disco (opcional; UEFI, Linux, família Windows NT e outros SOs) 4 0x01BC (444) 0x0000 (0x5A5A se for protegido contra cópia) 2 0x01BE (446) Entrada de partição №1 Tabela de partições(para partições primárias) 16 0x01CE (462) Entrada de partição №2 16 0x01DE (478) Entrada de partição №3 16 0x01EE (494) Entrada de partição №4 16 0x01FE (510) 0x55 Assinatura de inicialização 2 0x01FF (511) 0xAA Tamanho total: 218 + 6 + 216 + 6 + 4×16 + 2 512

+ Estrutura de um MBR AAP Endereço Descrição Tamanho(bytes) 0x0000 (0) Área do código de inicialização 428 0x01AC (428) 0x78 Assinatura AAP (opcional) 2 0x01AD (429) 0x56 0x01AE (430) Unidade física AAP (0x80–0xFE; 0x00: não usada; 0x01–0x7F, 0xFF: reservadas) Registro AAP (opcional) (entrada de partição AAP #0 com semântica especial) 1 0x01AF (431) Endereço CHS (inicial) da partição AAP/arquivo de imagem ou VBR/EBR 3 0x01B2 (434) Reservado para tipo de partição AAP (0x00 se não usado) (opcional) 1 0x01B3 (435) Reservado para endereço CHS final no AAP (opcional; o byte no deslocamento 0x01B5 também é usado para a soma de verificação do MBR (PTS DE, BootWizard); 0x000000 se não usado) 3 0x01B6 (438) LBA inicial do arquivo de imagem AAP ou VBR/EBR ou setores relativos da partição AAP (copiado para o deslocamento +01Chex no setor carregado sobre a entrada de "setores ocultos" de um BPB DOS 3.31 (ou emulação dele) para também suportar a inicialização por EBR) 4 0x01BA (442) Reservado para setores no AAP (opcional; 0x00000000 se não usado) 4 0x01BE (446) Entrada de partição №1 Tabela de partições(para partições primárias) 16 0x01CE (462) Entrada de partição №2 16 0x01DE (478) Entrada de partição №3 16 0x01EE (494) Entrada de partição №4 16 0x01FE (510) 0x55 Assinatura de inicialização 2 0x01FF (511) 0xAA Tamanho total: 428 + 2 + 16 + 4×16 + 2 512