Eu quero criar a partição 2 com um tamanho especificado, enquanto a partição 1 ocupa o resto do disco:
echo -en 'g\nw' | fdisk "$2" #create gpt table
echo -en ',1331200\n,,U' | sudo sfdisk "/dev/sda" -W always
O último comando cria a partição esquerda de 650MB e a direita ocupando o restante do disco, mas como já especifiquei, não é disso que preciso. Para criar a partição direita de 650 MB e a esquerda ocupando o restante do disco, pensei em fazer algo assim:
echo -en ',-1331200\n,,U' | sudo sfdisk "/dev/sda" -W always
com o pensamento de que os valores negativos começaram da direita, mas o -
sinal é completamente ignorado e o comando tem o mesmo efeito que aquele sem o -
sinal.
Como crio uma partição começando do lado direito usando sfdisk
?
Não vejo nada na
sfdisk
documentação que sugira que suporte um valor relativo negativo. Funcionaria para calcular a posição inicial da partição?Vou demonstrar usando um arquivo de loopback esparso simulando um disco de 2GB
A posição inicial de sua partição de 650 MB pode ser encontrada subtraindo 650 MB do final do disco.
$(blockdev --getsize64 /dev/loop6) / 1024
fornece o tamanho do disco em KiB.650 * 1024
é 650MiB em KiB. Junte-os para descobrir quantos KiB usar para a primeira partição.Este valor pode ser usado diretamente ao criar as partições com
sfdisk
Você também pode calcular o valor em tempo real
Os exemplos anteriores criaram sua partição de 650 MB primeiro. Isso pode ser um pouco confuso, pois as partições não estão na ordem típica. Você pode criar a partição "resto do disco" primeiro para evitar confusão.