Particionamento alinhado do disco de 2TB com o fdisk do Linux

3

Existe uma maneira de criar uma única partição de 2TB, que é de 4096 bytes no setor, em um disco usando o fdisk padrão do Linux (eu tentei a versão 2.17.2)?

Eu tentei as seguintes coisas e corri para o erro descrito:

  • Se eu simplesmente usar o sinalizador -u , ele definirá o tamanho do cluster como um setor de 512 bytes. Em seguida, a partição teria que ser 3.906.250.000 clusters longo e fdisk trunca esse número para 2.147.483.647 (2 ^ 31-1).
  • Se eu usar -b 4096 , isso me permite criar a partição muito bem (com comprimento 488,281,506 setores), mas se eu verificar o tamanho da partição resultante usando blockdev --getsize64 , isso mostra que a partição é apenas 250GB grande , ou seja, ainda está usando um tamanho de setor de 512.
  • Se eu tentar definir o setor e a contagem usando -S 64 -H 32 , por exemplo, ele sempre define a contagem do setor de volta para 63, que não se divide uniformemente em 4096 (eu sei, 32 dividindo igualmente por 8 é tecnicamente, mas - me chame de perfeccionista - eu realmente gostaria que a partição começasse no setor 2048 (alinhado de 1 MB), como eu li é a configuração recomendada atualmente.

Existe alguma combinação de parâmetros que eu posso passar para o fdisk, que me permitirá criar uma partição que começa em 1MB (setor 2048 [256] para setores de 512- [4096-] bytes) e tem exatamente 2TB de comprimento ( 3.906.250.000 [488.281.506] setores para setores de 512- [4096-] bytes)?

(Eu li que posso usar o gparted e alterar o drive para o particionamento GPT, mas eu realmente gostaria de saber se existe uma maneira de fazer isso com o fdisk padrão e uma partição MBR. veja uma razão pela qual as partições do MBR não devem permitir isso ...)

    
por Markus A. 14.03.2013 / 00:59

3 respostas

1

ATUALIZAÇÃO:

Versões mais recentes do fdisk (por exemplo, v2.20.1) não têm mais o problema de truncar o número do cluster conforme descrito na pergunta. Portanto, pode-se agora simplesmente usar

fdisk -c /dev/sdX

para criar uma partição a partir de 2048 e terminar em 3906252047 para criar o layout desejado.

RESPOSTA ORIGINAL:

Eu encontrei uma maneira de fazer isso:

fdisk -S 16 -H 1 -c /dev/sdX

Depois, posso criar uma partição que começa em 129 e termina em 244,140,753.

Agora, se eu fizer fdisk -l -u /dev/sdX , receberei:

Disk /dev/sdX: 2000.4 GB, 2000365289472 bytes
1 heads, 16 sectors/track, 244185216 cylinders, total 3906963456 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xee3e796d

   Device Boot      Start         End      Blocks   Id  System
/dev/sdX1            2048  3906252047  1953125000   fd  Linux raid autodetect

e blockdev --getsize64 /dev/sdX1 me dão exatamente 2.000.000.000.000.

Agora, a grande questão: alguém vê um problema com o -S 16 -H 1? :)

    
por 14.03.2013 / 01:28
5

Use parted em vez de fdisk . Ele cuidará do alinhamento automaticamente e não terá esse bug que parece ter descoberto em fdisk . Além disso, não existe clusters. Ou são setores, ou cilindros, que são resíduos depreciados que sobraram do início dos anos 90.

    
por 14.03.2013 / 02:15
1

Existe uma razão pela qual a GPT existe e você parece ter descoberto isso. Não há nenhum valor em empurrar um pino quadrado através de um buraco redondo.

    
por 14.03.2013 / 01:13