Estou particionando um disco rígido não SSD com parted porque eu quero uma tabela de partição GPT.
parted /dev/sda mklabel gpt
Agora, estou tentando criar as partições alinhadas corretamente, então uso o seguinte comando para saber onde o primeiro setor começa:
parted /dev/sda unit s p free
Disk /dev/sda: 488397168s
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
34s 488397134s 488397101s Free Space
Podemos ver que ele começa no setor 34 (esse é o padrão quando essa tabela de partição é usada).
Então, para criar a primeira partição, tentei:
parted /dev/sda mkpart primary 63s 127s
para alinhá-lo no setor 64, pois é um múltiplo de 8, mas mostra:
Aviso: A partição resultante não está alinhada corretamente para obter o melhor desempenho.
Os tamanhos do setor lógico e físico do meu disco rígido são de 512 bytes:
cat /sys/block/sda/queue/physical_block_size
512
cat /sys/block/sda/queue/logical_block_size
512
Como crio partições alinhadas corretamente? O que estou fazendo errado?
parted /dev/sda mkpart primary 64s 128s
(no caso de começar em 1), mas ele retorna o mesmo aviso.Respostas:
Para alinhar a partição,
parted
você pode usar a--align
opção Os tipos de alinhamento válidos são:Outra dica útil é que você pode definir o tamanho com porcentagens para alinhar. Comece em 0% e termine em 100%. Por exemplo:
parted -a optimal /dev/sda mkpart primary 0% 4096MB
fonte
0% 100%
? De onde4096MB
vem?'0%'
aspas no meu shell para executar o comando corretamente.print
usa kB como 1000 bytes ...Minha solução foi usar o gdisk, que pode executar o alinhamento de partições automaticamente em 2048 setores (1024 KB) por padrão, embora possa ser alterado no menu de especialistas.
fonte
No Arch Wiki :
Ao criar uma partição, o parted pode avisar sobre o alinhamento inadequado da partição, mas não sugere o alinhamento adequado. Por exemplo:
O aviso significa que a partição
start
não está alinhada.Digite
Ignore
para prosseguir de qualquer maneira , imprima a tabela de partição em setores para ver onde é iniciada e remova / recrie a partição com o setor inicial arredondado para aumentar as potências de 2 até o aviso parar. Como exemplo, em uma unidade flash com setores de 512B, a Parted queria que as partições iniciassem em setores com um múltiplo de 2048, que é um alinhamento de 1 MB.Além disso, logo acima desta seção, eles afirmam que as unidades binárias IEC mais precisas de KiB, MiB, GiB etc. são aceitáveis para unidades e também KB, MB, GB, etc.
Pessoalmente, meu comando exato que resolveu isso foi:
Não reclamou, acho que queria alinhamentos de 1 MB.
fonte
Uma pequena correção. Pelo que entendi, os discos GPT não têm mais tipos de partição, são todos "primários". O comando 'mkpart primary' não cria uma partição primária como nos discos do msdos, apenas cria uma partição chamada primária. Você também pode usar o comando
Isso pode causar confusão se você tentar criar partições lógicas, eu sei que isso aconteceu comigo.
Você não pode criar uma partição chamada "lógica" dentro de uma partição chamada "estendida".
fonte
A resposta aceita por @lik mostra como você pode especificar o alinhamento preferido. No entanto, parted sempre usa esse alinhamento para verificar a partição resultante, mas nem sempre cria partições com esse alinhamento.
TL; DR: Quando 1MiB é o alinhamento ideal, especificar 0% funcionará para discos de 200MiB e maiores. Para discos menores ou alinhamento maior, a especificação de 0G pode funcionar onde 0% não. Veja abaixo o porquê.
O Parted tenta satisfazer as restrições de alinhamento ao criar uma partição, mas também não se desvia muito dos valores solicitados. O que conta como "demais" depende de como você especificou as posições.
Quando você especifica uma posição inicial (ou final) para o comando mkpart, ele gera internamente um intervalo de valores aceitáveis. Esse intervalo é centrado no valor que você especificar e se estende igualmente em ambos os lados pela metade do tamanho da unidade que você usou (é o que eu li no código , os comentários dizem um tamanho de unidade completo nas duas extremidades).
Por exemplo, quando você especifica "10M", ele tenta usar qualquer posição entre 9,5M e 10,5M. O mesmo vale para porcentagens, portanto, se você especificar 0%, ele usará qualquer valor entre 0% e 0,5% (não fica negativo, obviamente).
Uma exceção é que, ao usar a potência de duas unidades (como KiB para 1024, em vez de K para 1000), partimos pressupõe que você esteja tentando especificar uma posição exata e considere apenas o valor exato especificado.
Como o alinhamento ideal normalmente parece estar 1MiB, as unidades K e M geralmente não têm espaço suficiente para alcançar o alinhamento ideal. A especificação de posições em G deve ter espaço suficiente, mas% também costuma ser bom.
Portanto, é por isso que 0% geralmente funciona, embora até isso tenha limites.
fonte