我正试图将4TB (4,000,225,165,312字节)切割到1TB的偶数分区中。
我希望将这些分区进一步划分为至少1^3 Byte (~1GB) (1000000000)分区。
好吧,经过几个小时的蒸馏,我发现了几个相互矛盾的结论:
这是可以接受的,必须使用Gdisk创建带有扇区的分区,然后再将它们移动。但是,当我删除一个1000^4B分区,并创建一个新的分区,并仅填充可用空间时,它会给出额外的字节1,000,000,716,800 (143个扇区)。
这可能与Gdisk警告有关,“分区将在2048年扇区边界上对齐”,但我认为我是在最大限度地利用Gdisk空间。现在看来,我需要使用Gdisk,然后再使用Gdisk,然后再使用Gdisk。有什么更好的方法来解决这个问题吗?
一个很大的部分是理解哪种对齐方式(字节、柱面、MiB)是最好的,这篇文章帮助了:“由于这个原因,许多现代分区工具只是沿着1MB的边界对齐整个驱动器,这就完全消除了检测是否有任意块大小的多种类型驱动器的需要,无论它们是512字节扇区、4KB扇区还是SSD。”
显然,选择1 MiB是因为最近的驱动器使用4096字节大小扇区,SSD 512删除要求,OG512扇区大小。令我困惑的是,一个MiB (1,048,576字节)有多大,是4096字节。我仍然不明白为什么,但是MiB似乎是主要的对齐方式。到目前为止还在工作。“2048年-扇区边界”实际上意味着2048*512= 1 MiB,而不仅仅是从2048字节开始("MiB对齐“应该更清楚)。这个链接也很有用:https://www.rodsbooks.com/gdisk/advice.html
我需要用二进制来思考。我不能就这样乘以10。它加起来不会达到1TB。那么,当MiB比4K4096B扇区尺寸大得多时,为什么要使用它呢?这是对未来防伪的尝试吗?
发布于 2023-02-12 20:27:36
不可能以字节解析的方式创建分区。即使您可以,它也会给您留下无休止的对齐问题。
扇区大小为512或4096,所有分区大小必须是该大小的倍数。按照惯例,您甚至应该坚持MiB对齐( 1048576字节的倍数),除非您有充分的理由不这样做。
另一个复杂的问题是分区表本身需要一些空间,所以没有分区可以从扇区0开始。同样,您不能使用驱动器的最后一个扇区(由GPT备份头使用)。
因此,如果您想要所有大小相同且不超过字节边界的分区,则无法帮助近似某些内容。
下面是4TB磁盘上1TB分区的示例:
(parted) unit b
(parted) print
Model: Loopback device (loopback)
Disk /dev/loop0: 4000225165312B
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1048576B 999999668223B 999998619648B
2 1000000716800B 1999999336447B 999998619648B
3 2000000385024B 2999999004671B 999998619648B
4 3000000053248B 3999998672895B 999998619648B
(parted) unit mib
(parted) print
Model: Loopback device (loopback)
Disk /dev/loop0: 3814912MiB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1.00MiB 953674MiB 953673MiB
2 953675MiB 1907348MiB 953673MiB
3 1907349MiB 2861022MiB 953673MiB
4 2861023MiB 3814696MiB 953673MiB这只是一个例子-你可以选择其他的边界。
如果您需要创建更多的分区(您提到了1GB的分区),您应该为自己编写一个确定这些边界的脚本。注意,默认情况下,GPT有128个分区限制。
发布于 2023-02-12 20:21:10
分区大小为1'000'000'000的倍数是不可取的- 4096是不可分割的,这对于许多Linux子系统的适当性能至关重要。如果我是您,我将使用1024*1024 * 1024 (1073741824字节或确切的1GiB)或接近它的东西(但同样可以被至少1024 * 1024可除,因为许多Linux磁盘实用程序更喜欢1MiB边界)。
发布于 2023-02-13 18:25:11
我要添加一些分区方案。
由MiB舍入:
999999668224 ~1TB /2 953674MiB
499999834112 ~500GB /2 476837
249999917056 ~250GB /2 238418.5 -> 238418 249999392768
124999958528 ~125GB /2 119209.25 119209 124999696384
62499979264 ~63GB /2 59604.625 -> 59604 62499323904
31249989632 ~32GB /2 29802 31249661952
15624994816 ~16GB /2 14901.15625 14901 15624830976
7812497408 ~8GB /2 7450.578125 7450 7811891200
3906248704 ~4GB /2 3725.28.. -> 3725 3905945600
1953124352 ~2GB /2 1862.64.. -> 1862 1952448512
976562176 ~1GB 931.32.. -> 931 976224256
1024 * 976224256 = 999653638144每次调整后损失的.64 MiB最大值为346030080 B (330 MiB)未使用(999999668224~999653638144),或总计1000^4-999653638144 = 346361856/1048576 = 330.31..MiB。这可能是最好的办法。可接受的损失。
从931 from建筑:
953334, 479672, 238336, 119168, 59584, 29792, 14896, 7448, 3724, 1862, 931 MiB
999643152384 ~1TB 953334 MiB
502972547072 ~500GB *2 479672
249913409536 ~250GB *2 238336
124956704768 ~125GB *2 119168
62478352384 ~63GB *2 59584
31239176192 ~34GB *2 29792
15619588096 ~16GB *2 14896
7809794048 ~8GB *2 7448
3904897024 ~4GB *2 3724
1952448512 ~2GB *2 1862
976224256 ~1GB *2 931953674-953334 =340 an ..also是一个可接受的损失,没有中间尺寸调整。
893760 ~960GB
446880 ~480GB
223440 ~240GB
111720 ~120GB
55860 ~60GB
27930 ~30GB
9310 ~10GB
4655 ~5GB
931 MiB ~1GB这些大小与SSD和OS大小很好地配合。953334-893760 = 59574 MiB不使用,但足够适合~60 4GB分区(剩下3714,加上20 MiB是20971520 B,并且在一个通用HDD上有足够的额外比特来适应~4GB分区)(取决于结束对齐问题)。
举个例子,我的4TB驱动器有225,165,312 B额外,也就是53.68 MiB。在我的2TB驱动器上,我能够容纳2x893760,2x55860,2x3724,1x931 (总计1907619),它留下256 fit (它更改为109个,使用88,大概用于GPT表)。我从结束到开始都做了这个填充。.7MiB (90113 B)未在终点使用,1 1MiB在开始使用。但是我的分区号是向后的(我可能可以接受,尽管它们被倒挂在fdisk中)。另一种方法是预先计算它们,可能首先在MiB中创建最大可能的分区来读取对齐数。这应该是1907728-1907619=109 This,和上面一样。
但是,G期允许的最小尺寸是256 the。..Ahah,这是因为我将默认类型保留为btrfs,它需要256个,而ext4只需要8MiB。所以,这是有用的,YAY!
编辑:我意识到,通过调整931MiB到930,它使一个更多的细分成为可能。
892800 ~960GB
426400 ~480GB
223200 ~240GB
111600 ~120GB
55800 ~60GB
27900 ~30GB
18600 ~20GB
9300 ~10GB
4650 ~5GB
930 MiB ~1GB
465然后我意识到,通过把465变成464,它可以被进一步分割,一直到"7MiB“。
890880 ~960GB
445440 ~480GB
223720 ~240GB
111360 ~120GB
55680 ~60GB
27840 ~30GB
9280 ~10GB
4640 ~5GB
928 MiB ~1GB
464
232
116
58
26
14
7 MiB我不确定以上两种我更喜欢哪一种。再加上900,也会产生一些更易读的块。
864000 ~960GB
432000 ~480GB
216000 ~240GB
108000 ~120GB
54000 ~60GB
27000 ~30GB
18000 ~20GB
9000 ~10GB
4500 ~5GB
900 MiB ~1GB
450
275这只损失了3.2%的空间(30/931),并提供了更令人难忘和可读性更大的尺寸。
或者,我可以一直到800,000 MiB,但这将是一个11%的损失(833.3/931)和~1GB块将是不平衡的,在833.33 MiB。它有可能使小数型除法5在25000,使~5GB大小为5000 MiB,但这可能是令人困惑的,因为5000 MiB不适合在一个5GB的usb驱动器。我可以使用"930“或"900”方案的小驱动器,如1GB。实际上,950 MiB应该适合,因为1GB是953.67 MiB。这留下3.67 MiB用于结束对齐和2048个扇区(即1 MiB)的乞求GPT分区表。
800000 ~960GB
400000 ~480GB
200000 ~240GB
100000 ~120GB
50000 ~60GB or 64GB drive
25000 ~30GB or 32GB drive
15000 ~15GB part or 16GB drive
5000 ~5GB part or 8GB drive
smaller drives (and backups as partitions):
950 MiB ~1GB (4750 ~5GB)
425或者,如果我保持中等尺寸,甚至断口,他们将适合大多数驱动器,直到120 on的SSD。即使是更小的1GB分区,通常也可以缩小50 MiB来安装在usb上,所以我可以把它们放在1000 MiB的HDD上。
800000 ~960GB
400000 ~480GB
200000 ~240GB
100000 ~120GB
60000 ~60GB or 64GB drive
30000 ~30GB or 32GB drive
15000 ~15GB part or 16GB drive
5000 ~5GB part or 8GB drive
1000 ~1GB part or 1GB drive
smaller drives (and backups as partitions):
950 MiB ~1GB (4750 ~5GB)
425https://unix.stackexchange.com/questions/735289
复制相似问题