Crie partição com tamanho exato e não a distância específica

11

Como se cria uma partição de tamanho exato, não a uma distância específica?

Eu tentei:

parted -a optimal /dev/sdd mkpart primary 0% 0%+1GB
# and...
parted -a optimal /dev/sdd mkpart primary 0% +1GB

Para nenhum proveito.

Como faço para aceitar o tamanho em vez da distância final?

joltmode
fonte
Que mensagens de erro você recebe? Funciona parted -a optimal /dev/sdd mkpart primary 0GB 10GB?
terdon

Respostas:

7

Eu acho que partedsó aceita absolutos, não x+y.

Você poderia fazer assim: ( +interpretado pelo shell)

# start=1
# size=512
# parted /dev/loop0 unit mib mkpart primary $start $(($start+$size))
# parted /dev/loop0 unit mib print free
Model: Loopback device (loopback)
Disk /dev/loop0: 1000MiB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start    End      Size     File system  Name     Flags
        0.02MiB  1.00MiB  0.98MiB  Free Space
 1      1.00MiB  513MiB   512MiB                primary
        513MiB   1000MiB  487MiB   Free Space

... e se você quiser acrescentar mais,

# start=$(($start+$size+1))
# size=128
# parted /dev/loop0 unit mib mkpart primary $start $(($start+$size))
# parted /dev/loop0 unit mib print free                           
Model: Loopback device (loopback)
Disk /dev/loop0: 1000MiB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start    End      Size     File system  Name     Flags
        0.02MiB  1.00MiB  0.98MiB  Free Space
 1      1.00MiB  513MiB   512MiB                primary
        513MiB   514MiB   1.00MiB  Free Space
 2      514MiB   642MiB   128MiB                primary
        642MiB   1000MiB  358MiB   Free Space

O +1é totalmente opcional, eu apenas gosto de deixar os "pára-choques" livres de 1MiB entre as partições, por algum motivo.

Se você deseja lidar com porcentagens, também pode obter o tamanho do dispositivo no shell, usando blockdev --getsize64 /dev/device, para que você possa mover toda a matemática da parte para um script de shell. Faço isso para garantir partições alinhadas ao MiB, pois nunca tenho muita certeza do que partedsignifica exatamente isso -a optimal.

frostschutz
fonte