%20-%20melhor%20com%20explica%C3%A7%C3%B5es%3F%20.png)
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:
- Por que o DOS 6.22 FDISK não permite a criação de 3 partições primárias, mas apenas uma?
- 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)?
- 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?
- 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:
- 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, FDISK
não é possível criar mais de uma partição primária.
- 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.
- 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".
- 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.