Existe algum tipo de documento RFC completo para o formato MBR (master boot record) - melhor com explicações?

Existe algum tipo de documento RFC completo para o formato MBR (master boot record) - melhor com explicações?

Estou projetando o código enumerando as partições do sistema. Lendo vários documentos, não consigo elaborar uma lista completa e definitiva de restrições para o algoritmo e descobrir por que existem restrições.

  • O MBR raiz tem 4 entradas e, portanto, o MBR pode conter 4 partições primárias;
  • Nesta lista de MBR raiz, pode haver apenas uma partição expandida, que então se encadeia em MBRs secundários com volumes lógicos.

Questões:

  1. Por que o DOS 6.22 FDISK não permite a criação de 3 partições primárias, mas apenas uma?
  2. Por que o MBR secundário na cadeia de partição estendida deve ter apenas um volume lógico, embora possa ter 3 (salvando 2 links adicionais para a lista de partições expandida)?
  3. Quando a partição estendida foi verificada para unidades lógicas até o final da cadeia, a enumeração retorna ao MBR raiz e continua a partir da próxima entrada após a entrada da partição estendida? Por que não?
  4. O que acontece com o sistema operacional DOS ou Windows se encontrarem entradas MBR que não seguem as restrições (veja as perguntas 1 a 3 acima)? Em outras palavras, existe alguma descrição do processo do sistema operacional enumerando suas partições/unidades lógicas?

Responder1

Um registro mestre de inicialização é um tipo de setor de inicialização para uso com sistemas compatíveis com IBM PC. A versão original do MBR foi escrita por David Litton da IBM em junho de 1982 e apresentada publicamente em 1983 com o PC-DOS 2.0. No entanto, o PC-DOS implementou apenas as funções mais importantes, não todas.

O mais próximo de uma "especificação" (que eu saiba) éhttps://thestarman.pcministry.com/asm/mbr/STDMBR.htm

A estrutura do MBR é a seguinte:

endereço hexadecimal (dec) tamanho função
0x0000 (0) 440 carregador de inicialização
0x01B8 (440) 4 assinatura de disco (desde a família Windows NT)
0x01BC e 0x01BC (444 e 445) 2 zero (0x0000)
0x01BE (446) 64 tabela de partição
0x01FE e 0x01FF (510 e 511) 2 assinatura
total 512

Respostas:

  1. Por que o DOS 6.22 FDISK não permite a criação de 3 partições primárias, mas apenas uma?

O suporte para mídia particionada foi introduzido com o IBM PC DOS 2.0 em março de 1983, mas suportava apenas uma partição primária naquela época. Isso nunca mudou. O próprio DOSnuncausou mais de uma partição primária. Como consequência, FDISKnão é possível criar mais de uma partição primária.

  1. Por que o MBR secundário na cadeia de partição estendida deve ter apenas um volume lógico, embora possa ter 3 (salvando 2 links adicionais para a lista de partições expandida)?

Não tenho muita certeza do que você quer dizer exatamente com "MBR secundário", então, eventualmente, o seguinte não está respondendo à sua pergunta. (Por favor, manuseie com cuidado!)

O suporte para uma partição estendida foi adicionado com o DOS 3.2. Unidades lógicas aninhadas dentro de uma partição estendida vieram com o DOS 3.30.

Cada tabela de partição estendida define exatamente uma partição lógica e aponta para a próxima tabela de partição estendida, se necessário. Em outras palavras - as tabelas de partição estendida funcionam de acordo com o princípio da lista encadeada. Seu setor inicial é especificado em relação à posição da tabela de partição atual. A segunda entrada pode conter uma concatenação para outra tabela de partição estendida e possui sempre o tipo 5. No setor inicial desta entrada é sempre referenciado em relação ao setor da primeira partição estendida. Como é encadeado por definição, você não pode consultar todas as partições estendidas e, portanto, não pode salvar 2 links adicionais.

  1. Quando a partição estendida foi verificada para unidades lógicas até o final da cadeia, a enumeração retorna ao MBR raiz e continua a partir da próxima entrada após a entrada da partição estendida? Por que não?

Não. Como não existe "próxima entrada".

  1. O que acontece com o sistema operacional DOS ou Windows se encontrarem entradas MBR que não seguem as restrições (veja as perguntas 1 a 3 acima)? Em outras palavras, existe alguma descrição do processo do sistema operacional enumerando suas partições/unidades lógicas?

Se as partições não forem reconhecíveis, elas não serão usadas. Se a primeira partição primária não puder ser encontrada, o DOS/Windows não poderá inicializar.

observação: As versões anteriores do Windows dependiam das letras de unidade determinadas pelo MS-DOS, mas a partir do Windows 2000, esses mapeamentos são armazenados em chaves de registro, como HKLM\SYSTEM\MountedDevices. Para determinadas constelações de sistema, a assinatura do disco também é usada no arquivo boot.ini, que faz parte do carregador de inicialização do Windows NT (NTLDR). O Windows atribui a assinatura do disco quando um novo disco é inicializado.

informação relacionada