4TB(4,000,225,165,312바이트) 드라이브를 1TB 짝수 파티션으로 자르려고 합니다.
이 파티션을 최소 1^3바이트(~1GB)(1000000000)의 파티션으로 더 분할하고 싶습니다.
글쎄요, 몇 시간 동안 검토한 끝에 저는 몇 가지 상충되는 결론을 발견했습니다.
- Gparted를 사용하여 1000000000바이트(953.67431640625MB) 파티션을 생성할 수 없습니다.
- KDEparted를 사용하여 1000000000바이트 파티션을 선택할 수 있었고 결국 1000341504가 되었습니다.
- 954MB의 결과는 1000341504바이트입니다.
- 1000341504*1000*4(~4TB)가 드라이브보다 크기 때문에 4001366016000이므로 확장되지 않습니다.
- 1,000,000,000,000을 벌면 최종 결과는 1,000,000,716,800입니다.
- 따라서 전체 크기가 증가할수록 추가 오버헤드는 감소합니다.
- KDEparted는 섹터를 사용하지 않는 sfdisk 백엔드를 사용합니다.
- Gparted는 MB 정렬을 사용합니다.
- Gdisk를 사용하면 1953125000 섹터(각각 512바이트)를 사용하여 1000000000000(1000^4) B(~1TB) 파티션을 만들 수 있습니다.
이를 허용하려면 Gdisk를 사용하여 섹터가 있는 파티션을 만든 다음 Gparted를 사용하여 이동해야 합니다. 그러나 1000^4B 파티션을 삭제하고 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
분명히 최근 드라이브는 4096바이트 섹터 크기, SSD 512 제거 요구 사항 및 OG 512 섹터 크기를 사용하기 때문에 1MiB가 선택되었습니다. 나를 혼란스럽게 하는 것은 MiB(1,048,576바이트)가 4096바이트보다 얼마나 큰지입니다. 아직도 이유를 이해하지 못하지만 MiB가 지배적인 진영인 것 같습니다. 지금까지 일했습니다. "2048 섹터 경계"는 실제로 2048바이트에서 시작하는 것이 아니라 2048*512= 1MiB를 의미합니다("MiB 정렬"이 더 명확함). 다음 링크도 도움이 됩니다.https://www.rodsbooks.com/gdisk/advice.html
바이너리로 생각해야합니다. 10을 곱할 수는 없습니다. 최대 1TB까지 더할 수는 없습니다. 그렇다면 MiB가 4K 4096B 섹터 크기보다 훨씬 클 때 MiB 정렬을 사용하는 이유는 무엇입니까? 이것은 미래를 바라보려는 시도인가?
답변1
바이트 해상도로 분할하는 것은 불가능합니다. 가능하더라도 끝없는 정렬 문제가 발생할 수 있습니다.
섹터 크기는 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개의 파티션 제한이 있습니다.
답변2
그것은아니요파티션 크기는 1'000'000'000의 배수가 되는 것이 좋습니다. 이 숫자는 4096으로 나눌 수 없습니다. 이는 많은 Linux 하위 시스템의 적절한 성능에 매우 중요합니다. 내가 당신이라면 대신 1024 * 1024 * 1024(1073741824바이트 또는 정확히 1GiB) 또는 이에 가까운 것을 사용합니다(그러나 많은 Linux 디스크 유틸리티는 1MiB 경계를 선호하므로 최소한 1024*1024로 똑같이 나눌 수 있습니다).
답변3
몇 가지 파티션 구성표를 추가하고 있습니다.
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
조정당 최대 0.64MiB가 손실됩니다. 즉, 사용되지 않은 총 346030080B(330MiB)(999999668224-999653638144) 또는 총 1000^4-999653638144 = 346361856/1048576 = 330.31MiB입니다. 아마도 이것이 가장 좋은 방법 일 것입니다. 수용 가능한 손실입니다.
931MiB부터 빌드:
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 = 340MiB..도 중간 크기 조정 없이 허용 가능한 손실입니다.
893760 ~960GB
446880 ~480GB
223440 ~240GB
111720 ~120GB
55860 ~60GB
27930 ~30GB
9310 ~10GB
4655 ~5GB
931 MiB ~1GB
이러한 크기는 SSD 및 OS 크기에 적합합니다. 953334-893760 = 59574MiB는 사용되지 않았지만 ~60GB 파티션에 충분합니다(남은 3714에 20MiB를 더하면 20971520B, 일반 HDD의 추가 바이트는 ~4GB 파티션에 충분함)(최종 정렬 문제에 따라 다름).
예를 들어, 내 4TB 드라이브에는 225,165,312B의 추가 공간, 즉 53.68MiB가 있습니다. 내 2TB 드라이브에서는 2x893760, 2x55860, 2x3724, 1x931(총 1907619)을 수용할 수 있었고 256MiB가 남았습니다(109, 88로 변경, 아마도 GPT 테이블에 사용됨). 나는 처음부터 끝까지 이것을 채웠습니다. 마지막에는 0.7MiB(90113 B)가 사용되지 않았고 처음에는 1MiB가 있었습니다. 그러나 내 파티션 번호는 거꾸로 되어 있습니다(fdisk에 거꾸로 나열되어 있음에도 불구하고 아마 그대로 사용할 수 있을 것입니다). 또 다른 접근 방식은 미리 계산하는 것입니다. 먼저 MiB에서 가능한 가장 큰 파티션을 만들어 최종 정렬 수를 읽습니다. 위와 동일하게 1907728-1907619=109MiB여야 합니다.
그러나 Gparted에서 허용되는 최소 크기는 256MiB입니다. ..아하하, 기본 유형을 btrfs로 남겨두었기 때문에 256을 사용하고 ext4는 8MiB만 사용합니다. 그래서 이것은 실제로 작동합니다. 예!
편집: 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,000MiB까지 반올림할 수 있지만 그렇게 하면 11% 손실(833.3/931)이 발생하고 ~1GB 블록은 833.33MiB로 고르지 않게 됩니다. 25000에서 5를 십진수로 나누어 ~5GB를 5000MiB 크기로 만들 수 있지만 5000MiB는 5GB USB 드라이브에 맞지 않기 때문에 혼란스러울 수 있습니다. 그러나 1GB와 같은 더 작은 드라이브의 경우 "930" 또는 "900" 계획을 사용할 수 있습니다. 실제로 1GB는 953.67MiB이므로 950MiB가 적합합니다. 그러면 끝 정렬에 3.67MiB가 남고 시작 GPT 파티션 테이블에 2048개의 섹터가 남습니다(예: 1MiB).
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
또는 중간 크기를 균일하게 유지하면 최대 120GB SSD까지 대부분의 드라이브에 적합합니다. 더 작은 1GB 파티션도 일반적으로 USB 스틱에 맞도록 50MiB만큼 줄어들 수 있으므로 HDD에서 1000MiB로 유지할 수 있습니다.
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