首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sgdisk:端面扇形的力对齐

sgdisk:端面扇形的力对齐
EN

Unix & Linux用户
提问于 2020-05-25 22:45:34
回答 2查看 1.3K关注 0票数 2

我试图让sgdisk创建1MB上对齐的分区。

这对于起始扇区(使用-a)和结束扇区(如果我选择大小)来说都很容易。

但是,如果我让sgdisk选择结尾区,我就会得到这样的结果:

代码语言:javascript
复制
Device                                                         Start       End   Sectors   Size Type
/dev/disk/by-id/scsi-36848f690d917dc002587bfae06302a5a-part2    2048   1046527   1044480   510M EFI System
/dev/disk/by-id/scsi-36848f690d917dc002587bfae06302a5a-part3 1048576   5242879   4194304     2G Solaris /usr & Apple Z
/dev/disk/by-id/scsi-36848f690d917dc002587bfae06302a5a-part4 5242880 467660800 462417921 220.5G Linux filesystem

462417921的大小显然与1MB块不对齐。

我本以为是这样的:

代码语言:javascript
复制
/dev/disk/by-id/scsi-36848f690d917dc002587bfae06302a5a-part4 5242880 466616319 461373440 220G Linux filesystem

-a似乎只适用于起始部门。

我如何使它对齐结束扇区,为其余的磁盘分区?

分区表由以下内容组成:

代码语言:javascript
复制
sgdisk --zap-all $DISK
sgdisk            -n2:1M:+510M    -t2:EF00 $DISK
sgdisk -a 1048576 -n3:0:+2G       -t3:BF01 $DISK
# Use the rest of the disk for the final partition
# and it is here the end sector is not aligned
sgdisk -a 1048576 -n4:0:-0        -t4:BF01 $DISK
EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2020-06-09 18:36:14

这是一个非常不寻常的需求,并不完全符合sgdisk对齐选项的预期用例:

-a, --set-alignment=value设置扇区对齐倍数。GPT fdisk将分区的开始对齐到这个值的倍数的扇区,这在刚格式化的磁盘上默认为2048。这一校准值是必要的,以获得最佳性能的西部数字先进格式和类似的驱动器较大的物理大于逻辑扇区的大小,与某些类型的RAID阵列,和SSD设备。

分区的最终扇区将不会像start扇区那样产生性能影响。这就是为什么-a交换机不影响终端部门的原因。

也许你最好的选择是使用-E选项来找出-nx:x:0会做什么,然后自己计算对齐:

man 8 sgdisk -E, --end-of-largest显示磁盘上最大可用扇区结束的扇区号。脚本可以存储此值,并将其作为-n创建分区选项的一部分传回。如果没有未分配的扇区可用,则此函数返回值0。

因此,要在脚本(例如bash脚本)中使用这一点,您可以这样做:

代码语言:javascript
复制
end_position=$(sgdisk -E $DISK)
sgdisk -a 1048576 -n4:0:$(( $end_position - ($end_position + 1) % 2048 ))   -t4:BF01 $DISK

在这里,脚本创建带有显式设置结束扇区的分区,该扇区将尽可能接近磁盘末尾,但与1048576字节(1MiB)对齐。

票数 1
EN

Unix & Linux用户

发布于 2020-06-09 14:20:33

你似乎在试图解决一个你没有或不真正理解的问题。对齐分区的要求只适用于分区启动。

下面是我的完全对齐分区表:

代码语言:javascript
复制
Disk /dev/sda: 
Disk model: 
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 

Device         Start       End   Sectors   Size Type
/dev/sda1       2048    206847    204800   100M EFI System
/dev/sda2     206848    468991    262144   128M Linux filesystem
/dev/sda3     468992  67577855  67108864    32G Linux filesystem
...

注意终端扇区是如何“不对齐”的。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/588930

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档