web-dev-qa-db-ja.com

特定の距離ではなく正確なサイズでパーティションを作成する

特定の距離ではなく正確なサイズのパーティションを作成するにはどうすればよいですか?

私が試してみました:

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

無駄に。

終了距離の代わりにサイズを受け入れるようにするにはどうすればよいですか?

11
joltmode

partedx+yではなく、絶対のみを受け入れます。

次のようにすることができます:(シェルによって解釈される+

# 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

...さらに追加したい場合は、

# 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

+1は完全にオプションです。何らかの理由で、パーティション間で1MiBの空き「バンパー」を残すのが好きです。

パーセンテージを扱いたい場合は、blockdev --getsize64 /dev/deviceを使用してシェルからデバイスサイズを取得することもできるので、すべての計算を分割してシェルスクリプトに移動できます。 parted-a optimalによって正確に何を意味するのかわからないので、MiBにアラインされたパーティションを保証するためにこれを行います。

7
frostschutz