首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gparted和Gdisk的最优分区尺寸

Gparted和Gdisk的最优分区尺寸
EN

Unix & Linux用户
提问于 2023-02-12 20:07:38
回答 3查看 745关注 0票数 3

我正试图将4TB (4,000,225,165,312字节)切割到1TB的偶数分区中。

我希望将这些分区进一步划分为至少1^3 Byte (~1GB) (1000000000)分区。

好吧,经过几个小时的蒸馏,我发现了几个相互矛盾的结论:

  • 我不能用Gparted创建一个1000000000字节(953.67431640625 MB)的分区
  • 使用KDEparted,我可以选择字节1000000000字节分区,其结果是1000341504 。
    • 原来954 is是1000341504字节
    • 这不像1000341504*1000*4 (~4TB)是4001366016000,比驱动器大。
    • 当我赚1,000,000,000,000,000,000,800
    • 因此,额外的开销会随着总规模的增加而减少。
    • KDEparted使用不使用扇区的sfdisk后端
    • Gparted使用MBs对齐方式

  • 使用Gdisk,我可以使用1953125000个扇区(每个512个字节)创建一个1000000000000 (1000^4) B (~1TB)分区。

这是可以接受的,必须使用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扇区尺寸大得多时,为什么要使用它呢?这是对未来防伪的尝试吗?

EN

回答 3

Unix & Linux用户

发布于 2023-02-12 20:27:36

不可能以字节解析的方式创建分区。即使您可以,它也会给您留下无休止的对齐问题。

扇区大小为512或4096,所有分区大小必须是该大小的倍数。按照惯例,您甚至应该坚持MiB对齐( 1048576字节的倍数),除非您有充分的理由不这样做。

另一个复杂的问题是分区表本身需要一些空间,所以没有分区可以从扇区0开始。同样,您不能使用驱动器的最后一个扇区(由GPT备份头使用)。

因此,如果您想要所有大小相同且不超过字节边界的分区,则无法帮助近似某些内容。

下面是4TB磁盘上1TB分区的示例:

代码语言:javascript
复制
(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个分区限制。

票数 6
EN

Unix & Linux用户

发布于 2023-02-12 20:21:10

分区大小为1'000'000'000的倍数是不可取的- 4096是不可分割的,这对于许多Linux子系统的适当性能至关重要。如果我是您,我将使用1024*1024 * 1024 (1073741824字节或确切的1GiB)或接近它的东西(但同样可以被至少1024 * 1024可除,因为许多Linux磁盘实用程序更喜欢1MiB边界)。

票数 4
EN

Unix & Linux用户

发布于 2023-02-13 18:25:11

我要添加一些分区方案。

由MiB舍入:

代码语言:javascript
复制
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建筑:

代码语言:javascript
复制
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  931

953674-953334 =340 an ..also是一个可接受的损失,没有中间尺寸调整。

代码语言:javascript
复制
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,它使一个更多的细分成为可能。

代码语言:javascript
复制
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“。

代码语言:javascript
复制
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,也会产生一些更易读的块。

代码语言:javascript
复制
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分区表。

代码语言:javascript
复制
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上。

代码语言:javascript
复制
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)
425
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/735289

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档