O que torna uma Tabela de Partição válida?

3

PERGUNTA : O que torna uma Tabela de Partição reconhecível e válida para um sistema operacional? (Linux especificamente)?

Informações de segundo plano opcionais: Eu pensei que havia algum tipo de "assinatura" que define uma Tabela de Partição válida e se a assinatura não for encontrada, então o Linux (ou qualquer sistema operacional) simplesmente não reportaria partições?

Estou usando um editor hexadecimal para inspecionar dados aparentemente aleatórios (limpeza aleatória recente ou criptografia de uma unidade completa) e algo a respeito disso faz com que a unidade seja reconhecida como tendo partições (às vezes 2, 3 ou 4 partições de tamanho aleatório após foi apagado ou criptografado).

Eu inspecionei os bytes 446 até 509 (onde a tabela de partição deve ser armazenada; usando um índice começando de 0) e não consigo descobrir o que faria o Linux achar que as partições são válidas - é apenas dados aleatórios e teria pensado que é estatisticamente improvável que uma partição seja definida por dados randomizados gravados no MBR.

Eu também usei o software gerenciador de partições GParted para Linux para ver se ele reconhece as partições e não . No entanto, outro software e o próprio Linux reconhecem essas "partições". Nota: As partições são de tamanho inválido e não somam corretamente para igualar o tamanho da unidade física e parecem ser de tamanho aleatório.

    
por Mikeweb49 28.12.2012 / 04:51

1 resposta

3

Resposta: nada em particular.

Um MBR contém uma assinatura de inicialização no final para indicar que há (ou deve ser) código executável para um PC x86 com um BIOS. No MBR, o código lê a tabela de partições e inicializa a partição ativa. O setor de inicialização dessa partição também teria uma assinatura de inicialização. Os setores de inicialização nos disquetes possuem uma assinatura de inicialização. A idéia é impedir que algum outro tipo de máquina carregue cegamente o código de inicialização e o execute; mas, na prática, espera-se que a assinatura esteja lá. Se não estiver, isso pode indicar que todo o setor está corrompido e você não deve ir mais longe, já que não quer executar código aleatório.

Mas um SO pode ser tão difícil (ou tão pequeno) quanto tentar interpretar a tabela de partições. Suponha que você estivesse brincando com um editor hexadecimal de disco e conseguisse manipular algumas entradas na tabela de partições. Talvez algumas das outras partições ainda sejam válidas, então vale a pena tentar; nada está sendo executado - ainda. O GParted provavelmente faz uma verificação real e, quando "não adiciona", considera o disco corrompido e adequado para reparticionamento.

O novo formato GPT emprega um CRC32 para detectar a corrupção. Mesmo assim, um SO, agora sabendo com certeza que algo está errado, ainda pode fazer um esforço para ver o que pode ser lido de qualquer maneira.

    
por 28.12.2012 / 07:22