Hårddiskkapacitet

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 22 maj 2019; kontroller kräver 11 redigeringar .

Volymen på en hårddisk (begreppen storlek och kapacitet används också) är den maximala mängd information som en hårddisk kan innehålla .

Kapacitetsbegränsningar

I takt med att hårddiskar har utvecklats har deras maximala kapacitet skjutit i höjden. Det har funnits hinder för denna tillväxt från tid till annan - begränsningar av allmänt använda mjukvaru- och hårdvarugränssnitt, använda adresseringsmetoder, såväl som mjukvaruegenskaper . Den här listan ger gränser (mest historiska) som finns eller har funnits i persondatorer för storleken på hårddiskar, partitioner och/eller filsystem .

Begränsning Beskrivning
8 MB Diskgräns i CP/M OS (när det totala antalet inte är mer än 16 diskar).
10,4 MB Fast skivstorlek i PC/XT : 306 cylindrar, 4 huvuden, 17 sektorer per spår.
15 MB Maximal partitionsstorlek för MS-DOS 1 och 2 vid standardsektorstorlek. [ett]
16 MB Storleksgräns för FAT12 . [2]
32 MB Gräns ​​för partitionsstorlek för MS-DOS 3 för FAT16 -filsystem : 2 KB klusterstorlek, högst 16 384 kluster. [2]
128 MB FAT16 storleksgräns i MS-DOS 4: upp till 65 526 kluster, 2 KB klusterstorlek. [2]
504 MB CHS-adresseringsschemabegränsning (se nedan ).
2 GB Den maximala storleken på ett FAT16-filsystem för ett 32-KB-kluster. För Windows NT är detta värde på grund av 64-KB-kluster 4 GB. [3]
2,1 GB Vissa moderkort tilldelade 12 bitar för att lagra antalet cylindrar (4095 × 16b × 63 → 2,1 GB). [fyra]
3,2 GB En bugg i vissa Phoenix-bios (4.03 och 4.04) som orsakar stopp i CMOS-installationen om disken är större än 3277 MB. [fyra]
4 GB FAT16-partitionsstorleksgräns i Windows NT.
Partitionsgräns skapad av Windows NT 3.51/4.0 Workstation under installationen [5] (beroende på att under installationen skapas en FAT16-partition, som sedan konverteras till NTFS ).
4,2 GB Direktöverföring av antalet sektorer/huvuden genom att successivt minska antalet cylindrar med 2 gånger och fördubbla antalet huvuden (den så kallade Large eller ECHS (Extended CHS)) ledde till en gräns på 1024 huvuden: 1024 × 128 × 63 × 512 → 4,2 GB . [fyra]
7,8 GB Windows NT 4.0 systemdiskstorleksgräns . [6]
7,9 GB När antalet huvuden reducerades till 15 tillät ECHS-läget (reviderad ECHS) dubbleringsmetoden att erhålla en konfiguration med 15 × 2 × 2 × 2 = 240 huvuden, vilket gav en gräns på 7,9 GB.
8,4 GB BIOS-begränsning (se nedan ).
32 GB Artificiell begränsning av FAT32-partitionsstorlek i Windows 2000 , XP . Systemet vägrade att formatera större partitioner. [7] [8] Anledningen är den rationella användningen av resurser: FAT32 med en större partitionsstorlek förlorar prestanda, och NTFS, tvärtom, med en liten partitionsstorlek (~10 GiB) är för slösaktigt.
Maximal diskstorlek som stöds Windows 95 . [9]
33,8 GB Stora skivor rapporterar 16 huvuden, 63 sektorer och 16 383 cylindrar. När det används för att beräkna det verkliga antalet cylindrar (kapacitet dividerat med 16 × 63), är antalet cylindrar större än 65 535, vilket gör att vissa BIOS fryser. Det var på grund av detta problem som många enheter på den tiden hade byglar för att begränsa kapaciteten till 32 GB.
128 GB
137 GB [4]
Begränsning av standarder från ATA-1 till ATA/ATAPI-5 (se nedan ).
Begränsa storleken på en NTFS-partition i Windows XP SP1 (fast i SP2).
Maximal FAT32-storlek skapad av Windows 98. [7]
Den maximala storleken på SFS i Amiga-familjen OS.
2 TB Den maximala storleken på hela disken (exklusive partitioner) som stöds av MBR . MBR-gränser: partitionsstorlek, såväl som avståndet från början av partitionen till behållaren (till början av disken i fallet med en primär partition, till början av en utökad partition i fallet med logiska volymer) - ett 32-bitars antal sektorer, det vill säga båda parametrarna får inte vara mer än 2 TB.
Den maximala storleken på ett ext3 - filsystem på en 32-bitars arkitektur.
Maximal partitionsstorlek för uppstart av Windows XP, Windows Vista, Windows 7 (på grund av MBR-begränsningar).
4 TB maximal storlek på mdraid-arrayelementet vid användning av metadataformat 0.9 (2^32-1 sektorer)
8 TB FAT32- gräns . [åtta]
16 TB Den maximala storleken på ext3 på en 64-bitars arkitektur (4-KB-block), på Alpha med ett 8-KB-block kan vara upp till 32 TB.
Maximal NTFS-storlek för ett 4-KB-kluster.
Den maximala storleken på ett ReiserFS -filsystem är 3.6. [tio]
Den maximala storleken på ett ISO 9660 -filsystem (används på optiska skivor).
64 TB Begränsning av storleken på en spänd diskarray i Windows 2003 . [elva]
256 TB Den maximala storleken på NTFS-filsystemet (för ett 64-KB-kluster) i befintliga 32-bitars implementeringar. [7] [11]

En 48-bitars LBA kan adressera upp till byte, vilket är 256 TiB. I slutet av 2011 fanns det inte mer än 4 TB interna hårddiskar på marknaden.

512 TB Den rekommenderade maximala storleken för ett exFAT -filsystem . [12]
4 PB JFS - gräns vid 4-KB-block. [tio]
8 PB NFS- gräns . [tio]
137 PB ATA-6-sektoradresseringsgräns (48-bitars LBA).
1 EB Den maximala storleken på ext4 . [13]
8 EB XFS- gräns . [tio]
16 EB HFS+ -gräns .
64 EB Den teoretiska maximala storleken för ett exFAT -filsystem . [12]
256 ZiB Den maximala storleken på ett ZFS -filsystem .
1 IB Teoretisk NTFS -gräns vid 64-KB-block och 64-bitars adressering (för närvarande används 32-bitars). [7]

504 MB

MS-DOS- gränsen för det tillåtna antalet huvuden är 16 (1024 cylindrar, 63 sektorer per spår, 16 huvuden, 512 byte per sektor). [4] [14]

Programvara från tidigt 1990 -tal , som MS-DOS, använde Int 13h -anropet för att arbeta med hårddisken .

Adresseringen av diskblock i Int 13h-anropet ser ut som numren på cylindern ( engelsk  cylinder ), huvud ( huvud ) och sektor ( sektor ) - C/H/S. Samtidigt tilldelas 10 bitar till C , 8 till H och 6 till S.

Int 13h-hanteraren i BIOS skriver dessa siffror i IDE -styrenhetens kontrollregister . I dessa register tilldelas 16 bitar till C, 4 till H och 8 till S.

Kombinationen av båda leder till en allmän begränsning på C/H/S = 10/4/6 bitar (totalt 20 bitar), vilket tillåter adresseringssektorer [ 15] . Med en sektorstorlek på 512 byte ger detta 528 482 304 byte (504 MB).

Maximal BIOS ID Allmän begränsning
Sektorer per spår 63 255 63
Ytor (huvuden) 256 16 16
Spår 1024 65536 1024
Volym 8 064 MB 127,5 GB 504 MB

Denna begränsning blev märkbar 1994-1995, runt tiden för de första Pentium- mikroprocessorerna . För att kringgå det uppfanns översättningen av CHS -värden i Int 13h-hanterarkoden i BIOS . Bland översättningsalgoritmerna fanns LBA ( English  Linear Block Addressing ), när CHS-adressen konverteras till en linjär adress, som redan har överförts till diskkontrollern.

Teoretiskt sett borde olika översättningsmetoder ge samma resultat, men på grund av särdragen hos vissa översättningsimplementeringar, såväl som organisationen av datastrukturer ( partitioner ) på diskar, kunde information skriven till disken i en översättning inte vara tillgänglig i andra översättningar . För att ändra disköversättningsläget var det nödvändigt att "partitionera om" disken (återskapa partitionstabellen ), vilket innebar förlust av information som redan skrivits till disken.

8,4 GB

Maximalt möjliga värde för att avbryta INT 13 är 1024 cylindrar, 63 sektorer, 255 huvuden. En begränsning av många dåtidens BIOS (P1-P2), när man försöker detektera en enhet större än 8 GB, skulle sådana BIOS:er hänga sig eftersom antalet huvuden måste vara mindre än 256. [4]

I Int 13h-gränssnittet tilldelas 10 bitar för cylindernumret , 8 för huvudnumret och 6 för sektornumret  , totalt 24 bitar. Detta tillåter adressering av sektorer [15] , vilket för en sektorstorlek på 512 byte ger 8 455 716 864 byte (8064 MB, 7,875 GB).

När detta blev ett problem - runt 1997-1998 - var fullfjädrade multitasking- operativsystem som GNU/Linux, FreeBSD och Windows NT i utbredd användning. Eftersom Int 13h-koden i BIOS aldrig designades med multitasking i åtanke (särskilt laddar den processorn med en ändlös loop medan den väntar på ett avbrott från styrenheten), kunde dessa OS inte använda Int 13h i sitt arbete. Istället inkluderade de - som Novell NetWare tidigare  - en IDE- drivrutin som direkt kommer åt styrenhetens hårdvara. Detta tog bort begränsningarna förknippade med Int 13h när man körde ett redan laddat OS, men problemet med uppstart (att starta systemstarthanteraren från en diskpartition utanför BIOS-tillgänglig gräns) kvarstod.

För att lösa problemet utökade BIOS-utvecklarna Int 13h med nya underfunktioner som accepterade sektornumret som ett 64-bitars heltal ( LBA ) utan att dela det med C/H/S. OS-utvecklare introducerade stöd för denna innovation i starthanterare (i Windows är detta ett av servicepaketen för Windows NT 4.0 1997 ), varefter problemet upphörde att existera.

128 GB

Hårdvaruregistergränssnittet för en IDE -styrenhet från ATA-1 till ATA/ ATAPI -5 använder 16 bitar för C-numret, 4 för H och 8 för S, för totalt 28 bitar. Detta gör att sektorer kan adresseras [15] , vilket med en sektorstorlek på 512 byte ger 136 902 082 560 byte (127,5 GB).

Lösningen på problemet med en sådan begränsning är endast möjlig på hårdvarunivå (och uppdatering av drivrutiner för att använda nya hårdvarufunktioner). Det antogs i ATA/ATAPI-6-standarden i form av att adressen skickades till styrenheten två gånger i en viss sekvens (48-bitars LBA). [16]

I Windows-familjen lades 48-bitars LBA-stöd till i SP4 för Windows 2000 och SP2 för Windows XP . Windows 2000 kräver dessutom att du uttryckligen aktiverar detta stöd genom en registerredigering . [17]

Andra begränsningar

Utöver begränsningarna för IDE- och BIOS-gränssnitten fanns det andra barriärer - buggar och begränsningar i program, OS och BIOS-kod.

DOS stöder till exempel inte mer än 255 huvuden, så en geometri med 256 huvuden är inte acceptabel på detta operativsystem.Detta betyder att på datorer där BIOS inte stödde översättning från 256 till 255 till diskar större än sektorer var tveksamt. Med en sektorstorlek på 512 byte ger detta 4 227 858 432 byte (4032 MB, 3,94 GB).

Anteckningar

  1. MS-DOS-partitioneringssammanfattning Arkiverad 31 januari 2017 på Wayback Machine . Microsoft.
  2. 1 2 3 Hårddiskstorleksbarriärer Arkiverade 30 november 2011 på Wayback Machine . PC-guiden.
  3. Maximal partitionsstorlek på en FAT16-disk Arkiverad 14 december 2011 på Wayback Machine . Microsoft.
  4. 1 2 3 4 5 6 Egenskaper för partitionstabeller Arkiverad 23 april 2019 på Wayback Machine . Win.tue.nl.
  5. Startpartition skapad under installationen Begränsad till 4 Gigabyte . Microsoft.
  6. Windows NT 4.0 stöder inte systempartitioner som är större än 7,8 GB Arkiverad 25 februari 2012 på Wayback Machine . Microsoft
  7. 1 2 3 4 NTFS.com NTFS vs FAT32 FAT64 exFAT FAT. Jämförande. Performance Arkiverad 9 mars 2015 på Wayback Machine .
  8. 1 2 FAT32-filsystembegränsningar i Windows XP Arkiverad 31 januari 2017 på Wayback Machine . Microsoft.
  9. Stöder inte hårddiskar större än 32 GB . Microsoft.
  10. 1 2 3 4 Filsystemguide. Filsystem guide . Arkiverad 17 september 2011 på Wayback Machine . linuxreviews.org.
  11. 1 2 Granska lagringsgränser Arkiverad 20 december 2011 på Wayback Machine . Microsoft-teknik.
  12. 1 2 Beskrivning av uppdateringspaketet för exFAT-filsystemets drivrutiner Arkiverad 24 maj 2011 på Wayback Machine . Microsoft.
  13. Migrerar till ext4 Arkiverad 1 december 2008 på Wayback Machine . IBM.
  14. ↑ Barriären med 1 024 cylindrar (504 MiB / 528 MB) Arkiverad 2 januari 2012 på Wayback Machine . PC-guiden.
  15. 1 2 3 Sektornumrering börjar från ett, så alla sektorer , inte för BIOS och 255, inte 256 för IDE.
  16. 6.20. 48-bitars adressfunktionsuppsättning // AT-bilaga med paketgränssnitt - 6 (ATA/ATAPI-6) . - ANSI, T13-kommittén, 14 december 2001. - S. 51. Arkiverad kopia (länk ej tillgänglig) . Hämtad 19 juni 2009. Arkiverad från originalet 28 juli 2011.   .
  17. KB305098: Stöd för 48-bitars logisk blockadressering för ATAPI-enheter i Windows 2000 . Microsoft Knowledge Base (13 april 2006). Datum för åtkomst: 13 januari 2010. Arkiverad från originalet den 1 maj 2012.