使用 Linux fdisk 对 2TB 磁盘进行对齐分区

使用 Linux fdisk 对 2TB 磁盘进行对齐分区

有没有办法使用标准 Linux fdisk(我试过 2.17.2 版本)在磁盘上创建一个 2TB 的分区,该分区与 4096 字节扇区对齐?

我尝试了以下操作并遇到了所描述的错误:

  • 如果我只是使用该-u标志,它会将簇大小设置为一个 512 字节的扇区。然后,分区必须有 3,906,250,000 个簇长,而 fdisk 会将该数字截断为 2,147,483,647 (2^31-1)。
  • 如果我使用-b 4096,它允许我正常创建分区(长度为 488,281,506 个扇区),但如果我使用检查生成的分区的大小blockdev --getsize64,它会显示该分区只有 250GB 大,即它仍然使用 512 的扇区大小。
  • 例如,如果我尝试使用 设置扇区和磁头数-S 64 -H 32,那么它总是将扇区数设置回 63,而这不能整除 4096(我知道,32 能被 8 整除在技术上就足够了,但是 - 你可以叫我完美主义者 - 我真的很希望分区从扇区 2048(1MB 对齐)开始,因为我读到这是目前推荐的设置。

我可以将一些参数组合传递给 fdisk 吗?这些参数组合将允许我创建一个从 1MB(扇区 2048 [256],对于 512-[4096-] 字节扇区)开始并且长度正好为 2TB(扇区 3,906,250,000 [488,281,506],对于 512-[4096-] 字节扇区)的分区?

(我读到我可以使用 gparted 并让其将驱动器更改为 GPT 分区,但我真的很想知道是否有办法使用标准 fdisk 和 MBR 分区来做到这一点。我不明白为什么 MBR 分区不允许这样做......)

答案1

使用parted而不是fdisk。它将自动处理对齐,并且不会出现您在 中发现的这个错误fdisk。此外,没有簇这样的东西。它要么是扇区,要么是柱面,它们是 90 年代初遗留下来的折旧垃圾。

答案2

GPT 存在是有原因的,而你似乎已经发现了它。把方枘圆凿毫无意义。

答案3

更新:

较新版本的 fdisk(例如 v2.20.1)不再存在问题中所述的簇号截断问题。因此,现在只需使用

fdisk -c /dev/sdX

创建一个从 2048 开始到 3906252047 结束的分区,以创建所需的布局。

原始答案:

我找到了一种方法来做到这一点:

fdisk -S 16 -H 1 -c /dev/sdX

然后,我可以创建一个从 129 开始到 244,140,​​753 结束的分区。

现在,如果我这样做fdisk -l -u /dev/sdX,我会得到:

Disk /dev/sdX: 2000.4 GB, 2000365289472 bytes
1 heads, 16 sectors/track, 244185216 cylinders, total 3906963456 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xee3e796d

   Device Boot      Start         End      Blocks   Id  System
/dev/sdX1            2048  3906252047  1953125000   fd  Linux raid autodetect

正好blockdev --getsize64 /dev/sdX1给了我 2,000,000,000,000。

现在最大的问题是:有人看到-S 16 -H 1 有问题吗?:)

相关内容