Essa geometria básica fornece um modelo para localização do setor, chamado CHS (cylinder, head, sector). O número do cilindro, juntamente com o número da cabeça, fornece a localização da trilha. Identificando-se a trilha, pode-se localizar um determinado setor. Esse esquema é tridimensional, sendo necessário conhecer sempre os três parâmetros para localização do setor.
O padrão LBA (logical block address) é mais simples. Os setores são identificados sequencialmente (linearmente), começando da trilha mais externa. Se houver mais de um prato, cada superfície é numerada (a partir de zero) -- o setor zero é o primeiro setor na trilha zero, cabeça (superfície) zero. Essa é uma identificação unidimensional. Cabe à controladora no disco transformar esse número lógico de setor com a sua localização física no disco (mapeando cilindro, cabeça e setor correspondente).
Esta seção descreve o esquema de particionamento do registro mestre de inicialização (MBR), como usado historicamente no DOS, Microsoft Windows e Linux (entre outros) em sistemas de computação compatíveis com PC. A partir de meados de 2010, a maioria dos novos computadores usa o esquema de particionamento da Tabela de Partições GUID (GPT). Para exemplos de outros esquemas de particionamento, consulte o artigo geral sobre tabelas de partições.
O espaço total de armazenamento de dados de um HDD de PC, no qual o particionamento MBR é implementado, pode conter no máximo quatro partições primárias ou, alternativamente, três partições primárias e uma partição estendida. A Tabela de Partições, localizada no registro mestre de inicialização, contém entradas de 16 bytes, cada uma descrevendo uma partição.
O tipo de partição é identificado por um código de 1 byte encontrado em sua entrada na tabela de partições. Alguns desses códigos (como 0x05 e 0x0F) podem ser usados para indicar a presença de uma partição estendida. A maioria é usado pelo carregador de inicialização de um sistema operacional (que examina tabelas de partições) para decidir se uma partição contém um sistema de arquivos que pode ser usado para montar / acessar para leitura ou gravação de dados.
Os valores usados aqui são hexadecimais, muito mais práticos que lidar diretamente com números binários. Na notação hexadecimal, cada byte é representado por dois caracteres. Por exemplo, o número decimal 63 é representado pela seqüência 0x3f (onde "0x" indica hexadecimal); o valor 255 (maior valor armazenado em um byte é representado por 0xff.
A arquitetura x86 (PC) usa um armazenamento little endian (CARRIER, 2005, p. 21). Isso significa que números grandes são lidos ou escritos a partir do dígito menos significativo (da esquerda para a direita). Por exemplo, o valor decimal 24.378, equivalente a 0x5f3a, seria armazenado em disco pela sequência "3a 5f".
Uma partição primária contém um sistema de arquivos. No DOS e em todas as versões anteriores dos sistemas Microsoft Windows, a Microsoft exigia que a partição do sistema fosse a primeira partição. Todos os sistemas operacionais Windows a partir do Windows 95 podem estar localizados em (quase) qualquer partição, mas os arquivos de inicialização (io.sys, bootmgr, ntldr etc.) devem residir em uma partição primária. No entanto, outros fatores, como o BIOS de um PC (consulte a sequência de inicialização em um PC padrão) também podem impor requisitos específicos quanto à qual partição deve conter o sistema operacional primário.
O código de tipo de partição para uma partição primária pode corresponder a um sistema de arquivos contido (por exemplo, 0x07 significa um sistema de arquivos NTFS ou HPFS do OS/2) ou indicar que a partição tem um uso especial (por exemplo, código 0x82 geralmente indica uma partição swap do Linux). Os sistemas de arquivos FAT16 e FAT32 fizeram uso de vários códigos de tipo de partição devido aos limites de várias versões do DOS e do Windows. Embora um sistema operacional Linux possa reconhecer vários sistemas de arquivos diferentes (ext4, ext3, ext2, ReiserFS, etc.), eles usaram consistentemente o mesmo código de tipo de partição: 0x83 (sistema de arquivos nativo do Linux).