Qual é o propósito da partição ativa MBR?

Qual é o propósito da partição ativa MBR?

O conceito de inicializar os bootloaders no UEFI é direto e simples, como colocar os .efibootloaders na partição do sistema EFI. O .efiarquivo então carrega os sistemas operacionais correspondentes. No entanto, ainda não consigo entender por que o MBR precisa de uma partição ativa para inicializar o sistema operacional.

Do meu estudo até agora, o código de bootstrap do MBR reside nos primeiros 446 bytes do disco, que será executado automaticamente pelo BIOS após o POST (como padrão de fator). Ele pode carregar o sistema operacional diretamente, mas na maioria das vezes o código é tão pequeno que sua principal tarefa é carregar o gerenciador de inicialização real que está em algum lugar de outra partição.

Por que precisamos definir uma partição como ativa para inicializar a partir dela? Teoricamente, o código de bootstrap do MBR pode executar o que quiser, de onde quiser.

Responder1

Por que precisamos definir uma partição como ativa para inicializar a partir dela? Teoricamente, o código de bootstrap do MBR pode executar o que quiser, de onde quiser.

Sim, e na prática, o código de bootstrap do MBR geralmente faz exatamente isso.

Mas o código bootstrap precisaalgunsmétodo para descobrir onde o próximo estágio do bootloader está armazenado. (O bootloader inteiro nunca tem apenas 446 bytes; o MBR é apenas o estágio 1.)

Ter um setor de inicialização que analisa a tabela de partição MBR e procura o sinalizador 'ativo' é uma solução muito versátil para esse problema - permite um setor de inicialização completamente estático (nenhuma ferramenta especial necessária para gerá-lo) e qualquer setor de inicialização fazendo isso então funciona igualmente bem com qualquer sistema operacional.

Por exemplo, osyslinuxO setor de inicialização MBR parece ser totalmente intercambiável com o setor de inicialização MBR do Windows. Se você inicializar duas vezes o Linux e o Windows, não importa qual setor de inicialização você possui, ambos fazem a mesma coisa, então você sempre pode trocar o bit 'ativo' para trocar os sistemas operacionais. (E instalar o setor de inicialização é apenas copiar mbr.bin para o disco bruto.)

Mas diferentes bootloaders certamente têm abordagens diferentes: por exemplo, o popular Linux GRUB2 armazena seu segundo estágio na “lacuna pós-MBR” e gera dinamicamente o código de bootstrap de acordo com sua localização; ou seja, o setor de inicialização do MBR sabe em qual LBA o segundo estágio começa (ignorando completamente a tabela de partição e o sinalizador 'ativo'), e isso pode variar entre os discos, portanto o setor de inicializaçãodeveser gravado pelo grub-installprograma individualmente para cada disco.

(GRUB2 normalmente também não usa VBRs de partição; emborapode"carregar em cadeia" esses, sua configuração típica acessa diretamente o sistema de arquivos real e carrega os arquivos do kernel do sistema operacional.)

Responder2

Ver Registro mestre de inicialização da Wikipedia para obter informações sobre a história do formato MBR.

Basicamente, a necessidade de uma partição ativa é uma escolha de design desde o início do bootloader IBM/DOS, e permanece assim desde então.

Esses primeiros bootloaders examinaram a lista de partições na tabela de partições incorporada do MBR para encontrar a única que está marcada com o sinalizador ativo e, em seguida, carregaram e executaram o registro de inicialização de volume (VBR) dessa partição ativa.

Esta é apenas mais uma decisão de design inicial na vida do IBM PC que sobreviveu para sempre, sem outra razão senão uma decisão de alguma equipe inicial de desenvolvedores (talvez até tomada por apenas uma pessoa).

informação relacionada