我用parted对非SSD硬盘进行分区,因为我需要一个GPT分区表。
parted /dev/sda mklabel gpt现在,我正在尝试创建对齐正确的分区,因此我使用以下命令来了解第一个扇区的起始位置:
parted /dev/sda unit s p free
Disk /dev/sda: 488397168s
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
34s 488397134s 488397101s Free Space我们可以看到它在扇区34中启动(这是使用此分区表时的默认情况)。
因此,为了创建第一个分区,我尝试了:
parted /dev/sda mkpart primary 63s 127s在扇区64上对齐,因为它是8的倍数,但它显示:
我的硬盘中的逻辑扇区和物理扇区大小都是512字节:
cat /sys/block/sda/queue/physical_block_size
512
cat /sys/block/sda/queue/logical_block_size
512如何创建正确对齐的分区?我做错了什么?
发布于 2012-09-27 08:44:53
为了使分区与parted对齐,可以使用--align选项。有效的对齐类型是:
其他有用的提示是,您可以设置大小与百分比,以使它对齐。从0%开始,到100%结束。例如:
parted -a optimal /dev/sda mkpart primary 0% 4096MB
发布于 2017-10-28 18:55:40
接受@lik的答复展示了如何指定首选对齐方式。然而,parted总是使用这种对齐来检查结果分区,但并不总是使用这种对齐来创建分区。
TL;DR:当1 1MiB是最佳对齐方式时,指定0%将适用于200 1MiB和更大的磁盘。对于较小的磁盘或较大的对齐方式,指定0G可以在0%不能工作的情况下工作。请看下面的原因。
Parted在创建分区时确实尝试满足对齐约束,但它也不会过多偏离所请求的值。什么是“太多”取决于您如何指定位置。
当您为mkpart命令指定一个start (或end)位置时,它在内部会生成一系列可接受的值。这个范围以您指定的值为中心,并在两边平均扩展一半您使用的单位大小(这就是I 从代码中读取,评论说在两端的一个完整的单位大小)。
例如,当您指定"10M“时,它将尝试使用9.5M到10.5M之间的任何位置。百分比也是如此,所以如果指定0%,它将使用0%到0.5%之间的任何值(很明显,它不会变成负值)。
一个例外情况是,当使用两个单位的功率(例如,KiB为1024,而K为1000)时,分离假设您试图指定一个确切的位置,并且只考虑您指定的确切值。
由于最优对齐通常看起来是1 1MiB对齐,K和M单元通常没有足够的空间来达到最佳对齐。在G中指定位置应该有足够的空间,但是%通常也可以。
所以,这就是为什么0%通常有效的原因,尽管这也有限度。
发布于 2012-05-09 13:01:10
我的解决方案是使用gdisk,它可以在默认情况下在2048扇区(1024 the )上自动执行分区对齐,尽管它可以在“专家”菜单中更改。
https://unix.stackexchange.com/questions/38164
复制相似问题