alc*_*emy 3 partition gparted gdisk
我正在尝试将 4TB(4,000,225,165,312 字节)驱动器切成 1TB 的偶数分区。
我希望这些分区可以进一步划分为至少 1^3 字节 (~1GB) (1000000000) 的分区。
好吧,经过几个小时的提炼,我发现了几个相互矛盾的结论:
这是可以接受的,必须使用 Gdisk 创建带有扇区的分区,然后使用 Gparted 移动它们。然而,当我删除一个 1000^4 B 分区并使用 Gparted 创建一个新分区以填充可用空间时,它会提供额外的字节 1,000,000,716,800(143 个扇区)。
这可能与 Gdisk 警告“分区将在 2048 扇区边界上对齐”有关,但我认为我正在最大化 Gdisk 的空间。现在看来我必须先使用 Gdisk,然后再使用 Gparted,然后再次使用 Gdisk..?有没有更优化的方法来解决这个问题?
一个重要的部分是了解哪种对齐(字节、柱面、MiB)最好,这篇文章有所帮助:“因此,许多现代分区工具只是沿着 1M[i]B 边界对齐整个驱动器,这巧妙地消除了需要检测您是否拥有多种类型的驱动器,无论是 512 字节扇区、4KB 扇区还是具有任意块大小的 SSD。” https://superuser.com/questions/393914/what-is-partition-alignment-and-why-whould-i-need-it
显然,选择 1 MiB 是因为最近的驱动器使用 4096 字节大小的扇区、SSD 512 删除要求以及 OG 512 扇区大小。让我困惑的是 MiB(1,048,576 字节)比 4096 字节大多少。我还是不明白为什么,但 MiB 似乎是主导阵营。到目前为止正在工作。“2048 扇区边界”实际上意味着 2048*512= 1MiB,而不仅仅是从 2048 字节开始(“MiB 对齐”会更清楚)。此链接也很有帮助:https ://www.rodsbooks.com/gdisk/advice.html
我需要用二进制思考。我不能只乘以 10.. 它不会加起来 ~1TB。那么,当 MiB 比 4K 4096B 扇区大小大得多时,为什么要使用 MiB 对齐呢?这是面向未来的尝试吗?
不可能以字节分辨率进行分区。即使你可以,它也会给你带来无穷无尽的对齐问题。
\n扇区大小为 512 或 4096,所有分区大小必须是该大小的倍数。按照惯例,您甚至应该坚持 MiB 对齐(1048576 字节的倍数),除非您有充分的理由不这样做。
\n另一个复杂之处是分区表本身需要一些空间,因此任何分区都不能从扇区 0 开始。同样,您不能使用驱动器的最后扇区(由 GPT 备份标头使用)。
\n因此,如果您希望所有分区具有相同的大小,并且不超过字节边界,您将无法帮助近似一些事情。
\n以下是 4TB 磁盘上 1TB 分区的示例:
\n(parted) unit b\n(parted) print\nModel: Loopback device (loopback)\nDisk /dev/loop0: 4000225165312B\nSector size (logical/physical): 512B/512B\nPartition Table: gpt\nDisk Flags:\n\nNumber Start End Size File system Name Flags\n 1 1048576B 999999668223B 999998619648B\n 2 1000000716800B 1999999336447B 999998619648B\n 3 2000000385024B 2999999004671B 999998619648B\n 4 3000000053248B 3999998672895B 999998619648B\n\n(parted) unit mib\n(parted) print\nModel: Loopback device (loopback)\nDisk /dev/loop0: 3814912MiB\nSector size (logical/physical): 512B/512B\nPartition Table: gpt\nDisk Flags:\n\nNumber Start End Size File system Name Flags\n 1 1.00MiB 953674MiB 953673MiB\n 2 953675MiB 1907348MiB 953673MiB\n 3 1907349MiB 2861022MiB 953673MiB\n 4 2861023MiB 3814696MiB 953673MiB\n
Run Code Online (Sandbox Code Playgroud)\n这只是一个示例 \xe2\x80\x94 您可以选择其他边界。
\n如果您需要创建更多分区(您提到了 1GB),您应该自己编写一个脚本来确定这些边界。请注意,GPT 默认情况下有 128 个分区限制。
\n