我想创建具有指定大小的分区 2,而分区 1 占用磁盘的其余部分:
echo -en 'g\nw' | fdisk "$2" #create gpt table
echo -en ',1331200\n,,U' | sudo sfdisk "/dev/sda" -W always
最后一个命令创建了 650MB 的左侧分区,右侧的分区占据了磁盘的其余部分,但正如我已经指定的,这不是我需要的。要创建 650MB 的右侧分区和占用磁盘其余部分的左侧分区,我想我会这样做:
echo -en ',-1331200\n,,U' | sudo sfdisk "/dev/sda" -W always
认为负值从右边开始,但-
符号被完全忽略,该命令与没有符号的命令具有相同的效果-
。
如何使用从右侧开始创建分区sfdisk
?
我在文档中没有看到任何
sfdisk
表明它支持负相对值的内容。计算分区起始位置有用吗?我将演示使用模拟 2GB 磁盘的稀疏环回文件
可以通过从磁盘末尾减去 650MB 来找到 650MB 分区的起始位置。
$(blockdev --getsize64 /dev/loop6) / 1024
以 KiB 为单位提供磁盘的大小。650 * 1024
在 KiB 中是 650MiB。把它放在一起找出第一个分区要使用多少 KiB。该值可以在创建分区时直接使用
sfdisk
您还可以即时计算价值
前面的示例首先创建了 650MB 分区。这可能有点令人困惑,因为分区不是典型的顺序。您可以先创建“剩余磁盘”分区以避免混淆。