如何创建一个精确大小而不是特定距离的分区?
我试过了:
parted -a optimal /dev/sdd mkpart primary 0% 0%+1GB
# and...
parted -a optimal /dev/sdd mkpart primary 0% +1GB
Run Code Online (Sandbox Code Playgroud)
无济于事。
我如何让它接受大小而不是结束距离?
我认为parted
只接受绝对值,而不是x+y
.
你可以这样做:(+
由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
Run Code Online (Sandbox Code Playgroud)
...如果你想追加更多,那么
# 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
Run Code Online (Sandbox Code Playgroud)
这+1
完全是可选的,出于某种原因,我只是喜欢在分区之间留下 1MiB 的免费“缓冲器”。
如果你想处理百分比,你也可以从 shell 获取设备大小,使用blockdev --getsize64 /dev/device
,这样你就可以将所有数学运算从 parted 移到 shell 脚本中。我这样做是为了保证MIB对齐分区,因为我从来没有太肯定什么parted
确切的意思-a optimal
。
归档时间: |
|
查看次数: |
12675 次 |
最近记录: |