O que define a assinatura de um setor de inicialização?

0

Eu tentei simplificar a pergunta, encontrando a essência do problema:

O que exatamente faz do "primeiro setor" de um dispositivo o "setor de inicialização"?

  • O setor de inicialização é um setor lógico, um setor físico ou ambos?
  • Se o setor lógico e os tamanhos do setor físico podem diferir entre os dispositivos, isso influencia o tamanho do setor de inicialização?

Partes da antiga pergunta abaixo: Parte I: Quais são as diferenças entre LEITURA do setor de inicialização de dispositivos de setores de 512 bytes e não de 512 bytes?

Para os seguintes dispositivos, qual setor é considerado o "primeiro setor" ou "setor de inicialização"? Como os bootsectors são identificados em dispositivos de setores de 512 bytes e dispositivos de setores que não são de 512 bytes? Quais são as assinaturas deles?

  • Disquete (setor de 512 bytes)
  • HDD tradicional (setor de 512 bytes)
  • CD-ROM (setor de 2048 bytes)
  • DVD-ROM (setor de bytes
  • )
  • BD-ROM (setor de bytes
  • )
  • Dispositivo de memória flash (os "setores" são aplicáveis aqui?)
  • SSDs (os "setores" são aplicáveis aqui?)
  • HDD de formato avançado com emulação de 512 bytes (setor de 4096 bytes)
  • HDD de formato avançado sem emulação (setor de 4096 bytes)

Para CDs, DVDs e BDs, qual é o tamanho do setor físico e lógico? CDs são setores de tamanho de 2048 bytes; Não tenho certeza sobre os DVDs e BDs. Para CDs, você segue o padrão El-Torito para ler e escrever bootsectors. Para DVDs e BDs, não sei qual padrão seguir. O padrão El-Torito permite que você emule setores de 512 bytes (como um disquete ou HDD) ou pode inicializar no tamanho nativo.

Parte II: Quais são as diferenças entre WRITING para o setor de inicialização de dispositivos de setores de 512 bytes e não de 512 bytes?

  • Especificamente, como você escreve para o setor de inicialização dos dispositivos acima, de modo que você possa ler a partir deles na Parte I?
  • Eu vejo que dd pode ser usado, mas também vejo que é possível escrever um programa C simples para open() do dispositivo, lseek() para um deslocamento de byte especificado e write() diretamente para os primeiros 512 bytes do dispositivo. (por exemplo, escrever a partir do índice 0 )
  • Para dispositivos com tamanho não de 512 bytes e para SOs que não conhecem dispositivos de setor com tamanho não de 512 bytes, isso é possível? Ou isso é completamente irrelevante?
  • Quais partes do setor físico devem ser gravadas para dispositivos que suportam: (1) emulação de 512 bytes e (2) sem emulação?
por wazzy 31.08.2013 / 01:06

1 resposta

0

Isso é um pouco demais para uma pergunta. Depende do computador de qual mídia ele pode ser inicializado e qual o layout físico / interfaces / endereçamento suportado para essa mídia.

Em geral, interfaces mais antigas e modos de endereçamento são emulados / traduzidos para suportar dispositivos mais recentes para manter uma grande janela de compatibilidade (novas unidades funcionam em computadores mais antigos, um novo tipo de dispositivo funciona em uma interface existente). O tamanho do setor físico real realmente importa apenas para o desempenho - alinhar dados e dimensionar estruturas para tais limites pode ser mais rápido do que não fazê-lo.

Um padrão de CD-ROM, El Tortio, por exemplo, suporta colocar uma imagem de disquete no CD que é então lida pelo BIOS de um computador e emulada como um disquete. Isso significa que um disquete inicializável pode ser usado para inicializar um CD-ROM inicializável.

    
por 31.08.2013 / 01:47