Mængden af en harddisk (begreberne størrelse og kapacitet bruges også) er den maksimale mængde information, som en harddisk kan indeholde .
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] |
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.
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.
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]
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).