有没有办法使用标准的Linux fdisk(我试过版本2.17.2)在磁盘上创build一个单一的2TB分区,它是4096字节扇区alignment的?
我已经尝试了以下的事情,并遇到了描述错误:
-u标志,它将簇大小设置为一个512字节的扇区。 然后,分区将不得不是3,906,250,000个簇,而fdisk会将这个数字截断为2,147,483,647(2 ^ 31-1)。 -b 4096 ,它可以让我创build分区(长度为488,281,506个扇区),但是如果使用blockdev --getsize64检查生成的分区的大小,则表明分区只有250GB大,即它仍然使用512的扇区大小。 -S 64 -H 32来设置扇区和磁头数量,那么它总是将扇区数量设置回63,这不会均匀分配到4096(我知道,32被8均分技术上足够了,但是 – 叫我完美主义者 – 我真的希望分区从扇区2048(1MBalignment)开始,因为我现在阅读的是推荐的设置。 是否有我可以传递给fdisk的参数的一些组合,这将允许我创build一个从1MB开始的分区(扇区2048 [256]为512- [4096-]字节的扇区),正好是2TB长(3,906,250,000 [488,281,506 ]扇区为512- [4096-]字节扇区)?
(我读过,我可以使用gparted,并改变了GPT分区的驱动器,但我真的很想知道是否有办法用标准fdisk和MBR分区来做到这一点,我没有看到一个理由为什么MBR分区不应该允许这个…)
使用parted而不是fdisk 。 它会自动照顾alignment,并没有这个错误,你似乎已经在fdisk发现。 而且,集群也不存在。 它是要么是行业,要么是汽缸,这是从90年代初期剩下的贬值垃圾。
GPT存在是有原因的,你似乎已经发现了它。 通过一个圆孔推一个方形的钉子是没有价值的。
更新:
更新版本的fdisk(例如v2.20.1)不存在如问题中所述的截断群集号的问题。 因此,现在可以简单地使用
fdisk -c /dev/sdX
创build一个从2048开始到3906252047结束的分区来创build所需的布局。
原文答案:
我find了一个办法:
fdisk -S 16 -H 1 -c /dev/sdX
然后,我可以创build一个分区,开始于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给了我正好blockdev --getsize64 /dev/sdX1 。
现在有个大问题:有没有人看到-S 16 -H 1有问题? 🙂