Harddisk kapacitet

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 22. maj 2019; checks kræver 11 redigeringer .

Mængden af ​​en harddisk (begreberne størrelse og kapacitet bruges også) er den maksimale mængde information, som en harddisk kan indeholde .

Kapacitetsgrænser

Efterhånden som harddiske har udviklet sig, er deres maksimale kapacitet steget i vejret. Der har fra tid til anden været forhindringer for denne vækst - begrænsninger af udbredte software- og hardwaregrænseflader, brugte adresseringsmetoder samt softwarekarakteristika . Denne liste angiver grænser (for det meste historiske), der findes eller har eksisteret i personlige computere på størrelsen af ​​harddiske, partitioner og/eller filsystemer .

Begrænsning Beskrivelse
8 MB Diskgrænse i CP/M OS (når det samlede antal ikke er mere end 16 diske).
10,4 MB Fast diskstørrelse i PC/XT : 306 cylindre, 4 hoveder, 17 sektorer pr. spor.
15 MB Maksimal partitionsstørrelse for MS-DOS 1 og 2 ved standard sektorstørrelse. [en]
16 MB Størrelsesgrænse for FAT12 . [2]
32 MB Partitionsstørrelsesgrænse for MS-DOS 3 til FAT16 -filsystem : 2 KB klyngestørrelse, ikke mere end 16.384 klynger. [2]
128 MB FAT16-størrelsesgrænse i MS-DOS 4: op til 65.526 klynger, 2 KB klyngestørrelse. [2]
504 MB CHS-adresseringsordningsbegrænsning (se nedenfor ).
2 GB Den maksimale størrelse af et FAT16-filsystem for en 32-KB klynge. For Windows NT er denne værdi på grund af 64-KB-klynger 4 GB. [3]
2,1 GB Nogle bundkort tildelte 12 bits til at gemme antallet af cylindre (4095 × 16b × 63 → 2,1 GB). [fire]
3,2 GB En fejl i nogle Phoenix-bios (4.03 og 4.04), der forårsager et hænge i CMOS-opsætningen, hvis disken er større end 3277 MB. [fire]
4 GB FAT16 partitionsstørrelsesgrænse i Windows NT.
Partitionsgrænse oprettet af Windows NT 3.51/4.0 Workstation under installationen [5] (på grund af det faktum, at der under installationen oprettes en FAT16-partition, som derefter konverteres til NTFS ).
4,2 GB Direkte transmission af antallet af sektorer/hoveder ved successivt at reducere antallet af cylindere med 2 gange og fordoble antallet af hoveder (den såkaldte Large eller ECHS (Extended CHS)) førte til en grænse på 1024 hoveder: 1024 × 128 × 63 × 512 → 4,2 GB. [fire]
7,8 GB Windows NT 4.0 systemdiskstørrelsesgrænse . [6]
7,9 GB Da antallet af hoveder blev reduceret til 15, tillod ECHS-tilstanden (revideret ECHS) fordoblingsmetoden at opnå en konfiguration med 15 × 2 × 2 × 2 = 240 hoveder, hvilket gav en grænse på 7,9 GB.
8,4 GB BIOS-begrænsning (se nedenfor ).
32 GB Kunstig begrænsning af FAT32-partitionsstørrelse i Windows 2000 , XP . Systemet nægtede at formatere større partitioner. [7] [8] Årsagen er den rationelle brug af ressourcer: FAT32 med en større partitionsstørrelse mister ydeevne, og NTFS, tværtimod, med en lille partitionsstørrelse (~10 GiB) er for spild.
Maksimal understøttet diskstørrelse Windows 95 . [9]
33,8 GB Store skiver rapporterer 16 hoveder, 63 sektorer og 16.383 cylindre. Når det bruges til at beregne det reelle antal cylindre (kapacitet divideret med 16 × 63), er antallet af cylindre større end 65.535, hvilket får nogle BIOS'er til at fryse. Det var på grund af dette problem, at mange drev på den tid havde jumpere for at begrænse kapaciteten til 32 GB.
128 GB
137 GB [4]
Begrænsning af standarder fra ATA-1 til ATA/ATAPI-5 (se nedenfor ).
Begræns i Windows XP SP1 på størrelsen af ​​en NTFS-partition (fast i SP2).
Maksimal FAT32-størrelse oprettet af Windows 98. [7]
Den maksimale størrelse af SFS i Amiga-familiens OS.
2 TB Den maksimale størrelse på hele disken (undtagen partitioner), der understøttes af MBR . MBR-grænser: partitionsstørrelse, såvel som afstanden fra begyndelsen af ​​partitionen til containeren (til begyndelsen af ​​disken i tilfælde af en primær partition, til begyndelsen af ​​en udvidet partition i tilfælde af logiske volumener) - et 32-bit antal sektorer, dvs. begge parametre må ikke være mere end 2 TB.
Den maksimale størrelse af et ext3 - filsystem på en 32-bit arkitektur.
Maksimal partitionsstørrelse til opstart af Windows XP, Windows Vista, Windows 7 (på grund af MBR-begrænsninger).
4 TB maksimal størrelse af mdraid array element ved brug af metadata format 0.9 (2^32-1 sektorer)
8 TB FAT32 grænse . [otte]
16 TB Den maksimale størrelse af ext3 på en 64-bit arkitektur (4-KB blok), på Alpha med en 8-KB blok kan være op til 32 TB.
Maksimal NTFS-størrelse for en 4-KB klynge.
Den maksimale størrelse af et ReiserFS -filsystem er 3.6. [ti]
Den maksimale størrelse af et ISO 9660 -filsystem (bruges på optiske diske).
64 TB Begrænsning af størrelsen af ​​et overspændt diskarray i Windows 2003 . [elleve]
256 TB Den maksimale størrelse af NTFS-filsystemet (for en 64-KB klynge) i eksisterende 32-bit implementeringer. [7] [11]

En 48-bit LBA er i stand til at adressere op til bytes, hvilket er 256 TiB. Ved udgangen af ​​2011 var der ikke mere end 4 TB interne harddiske på markedet.

512 TB Den anbefalede maksimale størrelse for et exFAT -filsystem . [12]
4 PB JFS - grænse ved 4-KB blok. [ti]
8 PB NFS grænse . [ti]
137 PB ATA-6 sektoradresseringsgrænse (48-bit LBA).
1 EB Den maksimale størrelse på ext4 . [13]
8 EB XFS grænse . [ti]
16 EB HFS+ grænse .
64 EB Den teoretiske maksimale størrelse af et exFAT -filsystem . [12]
256 ZiB Den maksimale størrelse af et ZFS -filsystem .
1 IB Teoretisk NTFS -grænse ved 64-KB blokke og 64-bit adressering (i øjeblikket bruges 32-bit). [7]

504 MB

MS-DOS- grænsen for det tilladte antal hoveder er 16 (1024 cylindre, 63 sektorer pr. spor, 16 hoveder, 512 bytes pr. sektor). [4] [14]

Software fra begyndelsen af ​​1990'erne , såsom MS-DOS, brugte Int 13h -kaldet til at arbejde med harddisken .

Adresseringen af ​​diskblokke i Int 13h-kaldet ligner numrene på cylinderen ( engelsk  cylinder ), hoved ( hoved ) og sektor ( sektor ) - C/H/S. Samtidig tildeles 10 bits til C , 8 til H og 6 til S.

Int 13h-handleren i BIOS skriver disse numre ind i IDE -controllerens kontrolregistre . I disse registre er 16 bit tildelt til C, 4 til H og 8 til S.

Kombinationen af ​​begge fører til en generel begrænsning på C/H/S = 10/4/6 bit (20 bit i alt), hvilket tillader adressering af sektorer [15] . Med en sektorstørrelse på 512 bytes giver dette 528.482.304 bytes (504 MB).

Maksimum BIOS IDE Generel begrænsning
Sektorer pr. spor 63 255 63
Overflader (hoveder) 256 16 16
Spor 1024 65536 1024
Bind 8.064 MB 127,5 GB 504 MB

Denne begrænsning blev mærkbar i 1994-1995, omkring tidspunktet for de første Pentium- mikroprocessorer . For at omgå det blev oversættelsen af ​​CHS -værdier i Int 13h-handlerkoden i BIOS opfundet . Blandt oversættelsesalgoritmerne var LBA ( English  Linear Block Addressing ), når CHS-adressen konverteres til en lineær adresse, som allerede er transmitteret til diskcontrolleren.

Teoretisk set burde forskellige oversættelsesmetoder give det samme resultat, men på grund af de særlige forhold ved nogle oversættelsesimplementeringer, såvel som organiseringen af ​​datastrukturer ( partitioner ) på diske, kunne information skrevet til disk i én oversættelse ikke være tilgængelig i andre oversættelser . For at ændre diskoversættelsestilstanden var det nødvendigt at "repartitionere" disken (genskabe partitionstabellen ), hvilket betød tab af information, der allerede var skrevet til disken.

8,4 GB

Den maksimalt mulige værdi for at afbryde INT 13 er 1024 cylindre, 63 sektorer, 255 hoveder. En begrænsning af mange datidens BIOS'er (P1-P2), når man forsøger at detektere et drev større end 8 GB, ville sådanne BIOS'er hænge, ​​fordi antallet af hoveder skal være mindre end 256. [4]

I Int 13h-grænsefladen tildeles 10 bits til cylindernummeret , 8 til hovednummeret og 6 til sektornummeret  , i alt 24 bits. Dette tillader adressering af sektorer [15] , som for en sektorstørrelse på 512 bytes giver 8.455.716.864 bytes (8064 MB, 7.875 GB).

Da dette blev et problem - omkring 1997-1998 - var fuldgyldige multitasking- operativsystemer såsom GNU/Linux, FreeBSD og Windows NT i udbredt brug. Da Int 13h-koden i BIOS aldrig blev designet med multitasking i tankerne (især indlæser den processoren med en endeløs loop, mens den venter på en afbrydelse fra controlleren), kunne disse OS'er ikke bruge Int 13h i deres arbejde. I stedet inkluderede de - ligesom Novell NetWare tidligere  - en IDE -driver , der direkte får adgang til controllerens hardware. Dette fjernede begrænsningerne forbundet med Int 13h, når man kører et allerede indlæst OS, men problemet med opstart (start af systemstartindlæseren fra en diskpartition placeret uden for BIOS-tilgængelig grænse) forblev.

For at løse problemet udvidede BIOS-udviklerne Int 13h med nye underfunktioner, der accepterede sektornummeret som et 64-bit heltal ( LBA ) uden at dividere det med C/H/S. OS-udviklere introducerede understøttelse af denne innovation i boot-indlæsere (i Windows er dette en af ​​servicepakkerne til Windows NT 4.0 i 1997 ), hvorefter problemet ophørte med at eksistere.

128 GB

Hardwareregistergrænsefladen for en IDE - controller fra ATA-1 til ATA/ATAPI-5 bruger 16 bit til C-nummeret, 4 for H og 8 for S, i alt 28 bit. Dette gør det muligt at adressere sektorer [15] , hvilket med en sektorstørrelse på 512 bytes giver 136.902.082.560 bytes (127,5 GB).

Løsningen på problemet med en sådan begrænsning er kun mulig på hardwareniveau (og opdatering af drivere til at bruge nye hardwarefunktioner). Det blev vedtaget i ATA/ATAPI-6-standarden i form af at sende adressen til controlleren to gange i en bestemt rækkefølge (48-bit LBA). [16]

I Windows-familien blev 48-bit LBA-understøttelse tilføjet i SP4 til Windows 2000 og SP2 til Windows XP . Derudover kræver Windows 2000 også, at du udtrykkeligt aktiverer denne support gennem en redigering af registreringsdatabasen . [17]

Andre begrænsninger

Ud over begrænsningerne af IDE- og BIOS-grænseflader var der andre barrierer - fejl og begrænsninger i programmer, OS og BIOS-kode.

For eksempel understøtter DOS ikke mere end 255 hoveder, så en geometri med 256 hoveder er ikke acceptabel på dette operativsystem.Det betyder, at på computere, hvor BIOS ikke understøttede oversættelse fra 256 til 255 til diske større end sektorer, var tvivlsom. Med en sektorstørrelse på 512 bytes giver dette 4.227.858.432 bytes (4032 MB, 3,94 GB).

Noter

  1. MS-DOS-partitioneringsoversigt Arkiveret 31. januar 2017 på Wayback Machine . Microsoft.
  2. 1 2 3 Harddiskstørrelsesbarrierer Arkiveret 30. november 2011 på Wayback Machine . PC-guiden.
  3. Maksimal partitionsstørrelse på en FAT16-disk Arkiveret 14. december 2011 på Wayback Machine . Microsoft.
  4. 1 2 3 4 5 6 Egenskaber for partitionstabeller Arkiveret 23. april 2019 på Wayback Machine . Win.tue.nl.
  5. Boot-partition oprettet under opsætning Begrænset til 4 Gigabyte . Microsoft.
  6. Windows NT 4.0 understøtter ikke systempartitioner, der er større end 7,8 GB Arkiveret 25. februar 2012 på Wayback Machine . Microsoft
  7. 1 2 3 4 NTFS.com NTFS vs FAT32 FAT64 exFAT FAT. Sammenligner. Performance Arkiveret 9. marts 2015 på Wayback Machine .
  8. 1 2 FAT32-filsystembegrænsninger i Windows XP Arkiveret 31. januar 2017 på Wayback Machine . Microsoft.
  9. Understøtter ikke harddiske større end 32 GB . Microsoft.
  10. 1 2 3 4 Filsystemvejledning. Filsystem guide . Arkiveret 17. september 2011 på Wayback Machine . linuxreviews.org.
  11. 1 2 Gennemgang af lagergrænser Arkiveret 20. december 2011 på Wayback Machine . Microsoft teknologi.
  12. 1 2 Beskrivelse af exFAT-filsystemdriveropdateringspakken Arkiveret 24. maj 2011 på Wayback Machine . Microsoft.
  13. Migrerer til ext4 Arkiveret 1. december 2008 på Wayback Machine . IBM.
  14. The 1.024 Cylinder (504 MiB / 528 MB) Barrier Arkiveret 2. januar 2012 på Wayback Machine . PC-guiden.
  15. 1 2 3 Sektornummerering starter fra én, så alle sektorer , ikke for BIOS og 255, ikke 256 for IDE.
  16. 6.20. 48-bit adressefunktionssæt // AT-vedhæftning med pakkegrænseflade - 6 (ATA/ATAPI-6) . - ANSI, T13-udvalget, 14. december 2001. - S. 51. Arkiveret kopi (link ikke tilgængeligt) . Hentet 19. juni 2009. Arkiveret fra originalen 28. juli 2011.   .
  17. KB305098: Understøttelse af 48-bit logisk blokadressering til ATAPI-drev i Windows 2000 . Microsoft Knowledge Base (13. april 2006). Dato for adgang: 13. januar 2010. Arkiveret fra originalen 1. maj 2012.