article

EaseUS Data Recovery Wizard

  • Software de recuperação de dados tudo-em-um.
  • Recuperar e reparar fotos e vídeos perdidos e danificados.
EaseUS Data Recovery Wizard

Informações da Estrutura FAT32 - MBR, Introdução do Setor de Inicialização FAT32

imagem

Rita atualizou em 26/09/2023 para Recuperação de Dados | Mais Artigos

O que é registro mestre de inicialização(MBR)?

O Master Boot Record é o mesmo para praticamente todos os sistemas operacionais. Ele está localizado no primeiro Setor do Disco Rígido, no Cilindro 0, Cabeça 0, Setor 1. É o primeiro código que seu computador executa depois de verificar todo o seu hardware (POST) e ativar o controle de carregamento do software sobre o disco rígido. Ele também contém a tabela de partições, que define as diferentes seções do seu disco rígido. Basicamente, se algo acontecer a esta pequena seção de 512 bytes, seu disco rígido terá morte cerebral.

Desvio Descrição Tamanho
000h Código Executável (Iniciar o PC) 446 bytes
1BEh Entrada da 1ª partição (consulte a próxima tabela) 16 bytes
1CEh Entrada da 2ª Partição 16 bytes
1DEh Entrada da 3ª Partição 16 bytes
1EEh Entrada da 4ª Partição 16 bytes
1FEh Assinatura do registro de inicialização (55hAAh) 2 bytes
  • Entrada de partição (parte do MBR)
Desvio Descrição Tamanho
00h Estado Atual da Partição (00h=Inativo, 80h=Ativo) 1 Byte
01h Início da Partição - Cabeça 1 Byte
02h Início da Partição - Cilindro/Setor (Veja Abaixo) 1 Word
04h Tipo de partição (veja a lista abaixo) 1 Byte
05h Fim da Partição - Cabeçalho 1 Byte
06h Fim da Partição - Cilindro/Setor 1 Word
08h Número de setores entre o MBR e o primeiro setor na partição 1 Double Word
0Ch Número de Setores na Partição 1 Double Word
  • Codificação de Cilindro/Setor

Acho que na época dos discos rígidos de 10 MB e 8086, o código era caro. Então eles fizeram tudo o que podiam para preservar o espaço. Infelizmente agora temos que conviver com isso, mas felizmente eles criaram novas maneiras de traduzir o sistema para que o limite de 1024 cilindros (2 ^ 10) não seja um problema muito grande, pelo menos para computadores mais novos. Os mais antigos geralmente precisam de algum tipo de programa de sobreposição de disco para fazê-los ver todo o disco rígido.

De qualquer forma, para tirar o setor disso, você precisa aplicar uma máscara AND ($ 3F) a ele. Para obter o Cilindro, você pega o byte alto e OR com o byte baixo que foi E mascarado com ($C0) e depois deslocado para a esquerda dois. Não é muito fácil de explicar, então vou apenas mostrar como fiz com duas rotinas que fiz (em Pascal) para Codificar e Decodificar o Cilindro/Setor. Esperançosamente, mesmo que você não conheça Pascal, você será capaz de lê-lo.

Function CylSecEncode(Cylinder, Sector: Word): Word;
Begin
   CylSecEncode: = (Lo(Cylinder) shl 8) or (Hi(Cylinder) shl 6) or Sector;
End;

Procedure CylSecDecode(Var Cylinder, Sector: Word; CylSec : Word);
Begin
   Cylinder: = Hi(CylSec) or ((Lo(CylSec) and $C0) shl 2);
   Sector: = (CylSec and $3F);
End;

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Bits do Cilindro 7 a 0 Bits de Cilindro 9+8 Bits de setor 5 a 0

Listagem de tipos de partição

Há mais do que apenas estes mostrados, mas incluí apenas aqueles relevantes para os sistemas operacionais MS.

Valor Descrição
00h Desconhecido ou nada
01h FAT de 12 bits
04h FAT de 16 bits (partição menor que 32 MB)
05h Partição estendida do MS-DOS
06h FAT de 16 bits (partição maior que 32 MB)
0Bh FAT de 32 bits (partição até 2048 GB)
0Ch O mesmo que 0BH, mas usa LBA 1 13h Extensões
0Eh O mesmo que 06H, mas usa LBA 1 13h Extensões
0Fh O mesmo que 05H, mas usa LBA 1 13h Extensões

Ler Múltiplas Partições

Embora ter várias partições no FAT32 não seja tão provável quanto no FAT16, ainda funciona da mesma maneira. A primeira partição é a partição primária e todo o resto é armazenado na partição estendida. É um pouco complicado quando se trata de ler essas partições extras (não muito, apenas um pouco).

O primeiro registro na tabela de partições mostra onde está a partição Primária (qual é o seu tamanho, onde começa e onde termina). A segunda entrada na tabela de partição mostra onde está toda a partição estendida (que pode incluir mais do que apenas uma partição).

Para ler mais partições, vá para onde diz que a partição estendida começa e leia o primeiro setor. Ele age exatamente como o MBR. Ficará em branco onde deveria estar o código, e na tabela de partições terá como primeira entrada a próxima Partição do Drive, e se houver mais, haverá outra partição Estendida, como antes.

No entanto, todas as referências a números de setor são feitas usando o novo ponto MBR como referência, tornando-o uma unidade virtual. Caso isso não faça muito sentido (e, a propósito, explico coisas que posso entender se não fizer), deixe-me mostrar como uma unidade com três partições é configurada.

MBR de Toda a Unidade

Entrada nº 1 - aponta para a partição nº 1
Entrada nº 2 - aponta para toda a partição estendida

Você leria o primeiro setor dessa partição estendida e veria outra estrutura MBR.

MBR de Partição Estendida

Entrada nº 1 - aponta para a partição nº 2
Entrada nº 2 - aponta para o restante da partição estendida após a partição nº 2

Agora, todas as referências a números de setor (mais especificamente a entrada em Offset 08h) nessas entradas não seriam referenciadas a partir do início da unidade, mas a partir do início da partição estendida. No entanto, os números CHS (cilindro, cabeçote, setor) ainda estariam corretos.

Mais uma vez, você leria o primeiro setor dessa partição estendida e veria o próximo MBR.

MBR do Resto da Partição Estendida

Entrada nº 1 - aponta para a partição nº 3
Nenhuma entrada #2, já que esta foi a última partição

Se houvesse outra partição, o padrão continuaria como antes, até que a última fosse alcançada.

Informações do registro de inicialização FAT32

Esta informação está localizada no primeiro setor de cada partição.

Desvio Descrição Tamanho
00h Código de salto + NOP 3 Bytes
03h Nome do OEM (provavelmente MSWIN4.1) 8 Bytes
0Bh Bytes por setor 1 Word
0Dh Setores por cluster 1 Byte
0Eh Setores Reservados 1 Word
10h Número de cópias de FAT 1 Byte
11h Máximo de entradas de diretório raiz (N/A para FAT32) 1 Word
13h Número de setores na partição menor que 32 MB (N/A para FAT32) 1 Word
15h Descritor de mídia (F8h para discos rígidos) 1 Byte
16h Setores por FAT em FATSystems mais antigos (N/A para FAT32) 1 Word
18h Setores por trilha 1 Word
1Ah Número de cabeças 1 Word
1ch Número de setores ocultos na partição 1 Double Word
20h Número de setores na partição 1 Double Word
24h Número de setores por FAT 1 Double Word
28h Flags (Bits 0-4 Indicam Cópia FAT Ativa) (Bit 7 Indica se FAT Mirroring está Habilitado ou Desabilitado) (Se FAT Mirroring está Desabilitado, a Informação FAT é somente escrita na cópia indicada pelos bits 0-4) 1 Word
2Ah Versão da unidade FAT32 (HighByte = versão principal, byte baixo = versão secundária) 1 Word
2Ch Número do cluster do início do diretório raiz 1 Double Word
30h Número do setor do setor de informações do sistema de arquivos (consulte a estrutura abaixo) (referenciado desde o início da partição) 1 Word
32h Número do setor do setor BackupBoot (referenciado desde o início da partição) 1 Word
34h Reservado 12 Bytes
40h Número da partição da unidade lógica 1 Byte
41h Não utilizado (pode ser byte alto da entrada anterior) 1 Byte
42h Assinatura Estendida (29h) 1 Byte
43h Número de série da partição 1 Double Word
47h Nome do volume da partição 11 Bytes
52h Nome FAT (FAT32) 8 Bytes
5Ah Código executável 420 Bytes
1FEh Assinatura do registro de inicialização (55hAAh) 2 Bytes

Instrução do setor de informações do sistema de arquivos

Normalmente, este existe um segundo setor da partição, embora haja uma referência no setor de inicialização a ele. Estou assumindo que pode ser movido. Nunca consegui uma imagem completa deste. Embora eu saiba onde estão os campos importantes.

Desvio Descrição Tamanho
00h Primeira Assinatura (52h 52h 61h41h) 1 Double Word
04h Desconhecido, atualmente (pode ser nulo) 480 Bytes
1E4h Assinatura do Setor FSInfo(72h 72h 41h 61h) 1 Double Word
1E8h Número de Clusters Livres (Setto -1 se Desconhecido) 1 Double Word
1ECh Cluster Número do cluster que foi alocado mais recentemente. 1 Double Word
1F0h Reservado 12 Bytes
1FCh Desconhecido ou Null 2 Bytes
1FEh Assinatura do registro de inicialização (55hAAh) 2 Bytes

Layout da Unidade FAT32

Desvio Descrição
Início da Partição Setor de inicialização
Início + # de Setores Reservados Tabelas de gordura
Início + # de Reservados + (# de Setores Por FAT * 2) Área de dados (começa com o cluster nº 2)

Significado do Cluster

Um Cluster é um Grupo de Setores no Disco Rígido que contém informações. Um Cluster 4K possui 8 Setores (512*8=4096). Cada Cluster recebe um lugar na Tabela FAT. Quando você olha para uma entrada no FAT, o número indica se esse cluster contém ou não dados e, em caso afirmativo, se é o fim dos dados ou se há outro cluster depois dele. Todos os dados em uma partição começam com o Cluster #2. Se a entrada FAT for 0, não haverá dados nesse cluster. Se a entrada FAT for 0FFFFFFFh, será a última entrada na cadeia.

Este é um dos maiores buracos na minha informação. Não consigo encontrar nenhum lugar que mostre o que os números significam quando se trata da tabela FAT. Consegui dizer o final da cadeia apenas olhando para uma unidade FAT32, mas não sei o que significa um BAD Cluster ou qual é o número máximo válido para mostrar dados.

Por enquanto, você pode calcular o cluster válido máximo em uma partição com esta fórmula:

((# de Setores em Partição) - (# de Setores por Fat * 2) - (# de Setores Reservados) ) / (# de Setores por Cluster)

Se houver algum resto na resposta a essa fórmula, significa apenas que houve alguns clusters extras no final da partição (provavelmente não o suficiente para criar outro cluster), então você pode simplesmente se livrar de qualquer coisa após o ponto decimal.

Tabela de Diretório

Outro aspecto ao olhar para um Sistema de Arquivos em Baixo Nível é a Tabela de Diretórios. A Tabela de Diretórios é o que armazena todas as Entradas de Arquivo e Diretório. Basicamente, existe apenas uma diferença entre a Tabela de Diretórios de FAT16 e FAT32. A diferença é: o byte reservado do OS/2 (offset 20 [14h]) na estrutura do nome de arquivo curto é substituído pela palavra alta do número do cluster (já que agora são 4 bytes em vez de 2).

Tabela de Alocação de Arquivos

Notas de rodapé

1 - LBA = Endereçamento de Bloco Lógico - Usa as Extensões Int 13h incorporadas em BIOS's mais recentes para acessar dados acima da barreira de 8 GB ou para acessar estritamente no modo LBA, em vez de CHS (Cilindro, Cabeça, Setor)

Dica extra: restaure dados perdidos do hd FAT32 com o software de recuperação de hd da EaseUS

Se você acidentalmente excluiu, removeu ou formatou dados em um disco rígido FAT32, USB ou outros dispositivos de armazenamento, não entre em pânico. Sua melhor escolha é deixar o software de recuperação de dados ajudar! Aqui, gostaríamos de recomendar que você experimente o EaseUS Data Recovery Wizard, que permite recuperar, desformatar e restaurar com eficiência todos os dados perdidos em 3 etapas simples. Faça o download gratuito para recuperar todos os seus dados FAT32 perdidos agora:

Baixar Para Windows

Baixar Grátis

Baixar Para Mac

100% Seguro

Prêmios e avaliações

baixaki

"Recupere dados e arquivos já excluídos do seu Windows de maneira simples e rápida."

- Por Andrey José Aguiar

Leia mais >>

article

EaseUS Data Recovery Wizard

Poderoso software de recuperação de dados para recuperar arquivos em quase todos cenários de perda de dados no Windows e Mac.

Tamanho: 1,97MB

article

EaseUS Data Recovery Wizard

  • Software de recuperação de dados tudo-em-um.
  • Recuperar e reparar fotos e vídeos perdidos e danificados.
data recovery wizard