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

1

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 é exaclt 2TB long ( 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 / 01:09

2 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:30
1

As versões recentes de fdisk iniciam a primeira partição no setor 2048 por padrão. Se você está vendo algum outro comportamento, então você está usando uma versão bastante antiga de fdisk ou há um bug na versão de fdisk que você está usando.

Você também pode usar parted ou GParted para essa tarefa. Ambos trabalham com discos MBR, bem como com discos GPT, portanto, usar uma dessas ferramentas não requer a mudança para GPT. Dito isso, a GPT tem certas vantagens, mesmo em discos menores. Eles são pequenos, mas você pode querer considerar o uso da GPT para obter essas vantagens. (Isso inclui ter CRCs de estruturas de dados importantes para identificar problemas, ter um backup de estruturas de dados importantes para ajudar na recuperação de alguns tipos de problemas, ter rótulos de partições, eliminar o atordoamento primário / extenso / lógico e, claro, suportar mais de 2TiB discos.)

    
por 14.03.2013 / 22:37