A merevlemez kötete (a méret és a kapacitás kifejezés is használatos) az a maximális információmennyiség, amelyet a merevlemez tárolhat .
A merevlemezek fejlődésével a maximális kapacitásuk az egekbe szökött. Ennek a növekedésnek időről időre akadályai voltak – a széles körben használt szoftver- és hardverfelületek korlátai, az alkalmazott címzési módszerek, valamint a szoftver jellemzői . Ez a lista a merevlemezek, partíciók és/vagy fájlrendszerek méretére vonatkozó (többnyire történeti) korlátozásokat tartalmaz, amelyek a személyi számítógépekben léteznek vagy léteztek .
Korlátozás | Leírás |
---|---|
8 MB | Lemezkorlát CP/M OS- ben (ha a teljes szám nem haladja meg a 16 lemezt). |
10,4 MB | Rögzített lemezméret PC/XT -ben : 306 henger, 4 fej, sávonként 17 szektor. |
15 MB | Maximális partícióméret MS-DOS 1 és 2 esetén szabványos szektorméret mellett. [egy] |
16 MB | Méretkorlát a FAT12 számára . [2] |
32 MB | Az MS-DOS 3 partícióméret-korlátja FAT16 fájlrendszerhez : 2 KB fürtméret, legfeljebb 16 384 fürt. [2] |
128 MB | FAT16 méretkorlát MS-DOS 4 rendszerben: legfeljebb 65 526 fürt, 2 KB fürtméret. [2] |
504 MB | CHS címzési séma korlátozás (lásd lent ). |
2 GB | A FAT16 fájlrendszer maximális mérete 32 KB-os fürthöz. Windows NT esetén ez az érték a 64 KB-os fürtök miatt 4 GB. [3] |
2,1 GB | Egyes alaplapok 12 bitet osztottak ki a hengerek számának tárolására (4095 × 16b × 63 → 2,1 GB). [négy] |
3,2 GB | Egy hiba néhány Phoenix biosban (4.03 és 4.04), amely lefagy a CMOS-beállításban, ha a lemez nagyobb, mint 3277 MB. [négy] |
4GB | FAT16 partíció méretkorlátja a Windows NT rendszerben. |
A Windows NT 3.51/4.0 Workstation által a telepítés során létrehozott partíciókorlát [5] (annak oka, hogy a telepítés során létrejön egy FAT16 partíció, amely aztán NTFS -re konvertálódik ). | |
4,2 GB | A szektorok/fejek számának élő közvetítése a hengerek számának kétszeres csökkentésével és a fejek számának megduplázásával (az úgynevezett Large vagy ECHS (Extended CHS)) 1024 fejes korláthoz vezetett: 1024 × 128 × 63 × 512 → 4,2 GB . [négy] |
7,8 GB | Windows NT 4.0 rendszerlemez méretkorlátja . [6] |
7,9 GB | Amikor a fejek számát 15-re csökkentették, az ECHS (revised ECHS) mód lehetővé tette a megkettőzési módszerrel, hogy 15 × 2 × 2 × 2 = 240 fej konfigurációt kapjon, ami 7,9 GB-os korlátot adott. |
8,4 GB | BIOS korlátozás (lásd alább ). |
32 GB | Mesterséges korlátozás a FAT32 partíció méretére Windows 2000 , XP rendszerben . A rendszer megtagadta a nagyobb partíciók formázását. [7] [8] Az ok az erőforrások ésszerű felhasználása: a FAT32 nagyobb partícióval veszít teljesítményéből, az NTFS pedig éppen ellenkezőleg, kis partíciómérettel (~10 GiB) túl pazarló. |
Maximális támogatott lemezméret Windows 95 . [9] | |
33,8 GB | A nagy tárcsák 16 fejet, 63 szektort és 16 383 hengert tartalmaznak. A hengerek valós számának kiszámításához (a kapacitás osztva 16 × 63-mal), a hengerek száma meghaladja a 65 535-öt, ami egyes BIOS-ok lefagyását okozza. Emiatt a probléma miatt sok akkori meghajtón volt jumper , amely 32 GB-ra korlátozta a kapacitást. |
128 GB 137 GB [4] |
A szabványok korlátozása az ATA-1-ről az ATA/ATAPI-5-re (lásd alább ). |
Korlátozza a Windows XP SP1 rendszerben az NTFS-partíció méretét (az SP2-ben javítva). | |
A Windows 98 által létrehozott maximális FAT32 méret. [7] | |
Az SFS maximális mérete az Amiga család operációs rendszerében. | |
2 TB | Az MBR által támogatott teljes lemez maximális mérete (a partíciók kivételével) . MBR korlátok: partíció mérete, valamint a partíció kezdetétől a konténerig (elsődleges partíció esetén a lemez elejéig, logikai kötetek esetén kiterjesztett partíció elejéig) terjedő távolság - 32 bites szektorszám, azaz mindkét paraméter nem lehet több 2 TB-nál. |
Az ext3 fájlrendszer maximális mérete 32 bites architektúrán. | |
Maximális partícióméret a Windows XP, Windows Vista, Windows 7 rendszerindításhoz (az MBR korlátozások miatt). | |
4 TB | az mdraid tömbelem maximális mérete 0.9 metaadatformátum használata esetén (2^32-1 szektor) |
8 TB | FAT32 korlát . [nyolc] |
16 TB | Az ext3 maximális mérete 64 bites architektúrán (4 KB-os blokk), Alpha esetén 8 KB-os blokk esetén legfeljebb 32 TB lehet. |
Maximális NTFS-méret 4 KB-os fürthöz. | |
A ReiserFS fájlrendszer maximális mérete 3.6. [tíz] | |
Az ISO 9660 fájlrendszer maximális mérete (optikai lemezeken használatos). | |
64 TB | A kiterjesztett lemeztömb méretének korlátozása a Windows 2003 rendszerben . [tizenegy] |
256 TB | Az NTFS fájlrendszer maximális mérete (64 KB-os fürt esetén) a meglévő 32 bites megvalósításokban. [7] [11]
A 48 bites LBA legfeljebb bájt címezésére képes, ami 256 TiB. 2011 végére legfeljebb 4 TB-os belső merevlemezek voltak a piacon. |
512 TB | ExFAT fájlrendszerhez ajánlott maximális méret . [12] |
4 PB | JFS - korlát 4 KB-os blokkban. [tíz] |
8 PB | NFS- korlát . [tíz] |
137 PB | ATA-6 szektorcímzési korlát (48 bites LBA). |
1 EB | Az ext4 maximális mérete . [13] |
8 EB | XFS korlát . [tíz] |
16 EB | HFS+ határérték . |
64 EB | Az exFAT fájlrendszer elméleti maximális mérete . [12] |
256 ZiB | A ZFS fájlrendszer maximális mérete . |
1 IB | Elméleti NTFS -korlát 64 KB-os blokkoknál és 64 bites címzésnél (jelenleg 32 bites). [7] |
Az MS-DOS korlátja a fejek megengedett számának 16 (1024 cilinder, sávonként 63 szektor, 16 fej, 512 bájt szektoronként). [4] [14]
Az 1990-es évek elejétől származó szoftverek , mint például az MS-DOS, az Int 13h hívást használták a merevlemezzel való munkához .
A lemezblokkok címzése az Int 13h hívásban úgy néz ki, mint a cilinder ( angol cilinder ), a fej ( fej ) és a szektor ( szektor ) száma - C/H/S. Ugyanakkor 10 bit van hozzárendelve a C -hez , 8-at a H-hez és 6-ot az S-hez.
A BIOS Int 13h kezelője beírja ezeket a számokat az IDE vezérlő vezérlőregisztereibe . Ezekben a regiszterekben 16 bit van hozzárendelve a C-hez, 4 a H-hez és 8 az S-hez.
A kettő kombinációja a C/H/S = 10/4/6 bit (összesen 20 bit) általános korlátozásához vezet, ami lehetővé teszi a szektorok címzését [15] . 512 bájt szektormérettel ez 528 482 304 bájtot (504 MB) ad.
Maximális | BIOS | IDE | Általános korlátozás |
---|---|---|---|
Szektorok pályánként | 63 | 255 | 63 |
Felületek (fejek) | 256 | 16 | 16 |
Pályák | 1024 | 65536 | 1024 |
Hangerő | 8 064 MB | 127,5 GB | 504 MB |
Ez a korlátozás 1994-1995-ben vált észrevehetővé, az első Pentium mikroprocesszorok idején . Ennek megkerülésére feltalálták a CHS értékek fordítását az Int 13h kezelőkódban a BIOS -ban . A fordítási algoritmusok között szerepelt az LBA ( English Linear Block Addressing ), amikor a CHS-címet lineáris címmé alakítják át, ami már továbbításra kerül a lemezvezérlőnek.
Elméletileg a különböző fordítási módszereknek ugyanazt az eredményt kellene adniuk, azonban egyes fordítási megvalósítások sajátosságai, valamint az adatstruktúrák ( partíciók ) lemezeken való elrendezése miatt az egy fordításban lemezre írt információ más fordításokban nem elérhető. . A lemezfordítási mód megváltoztatásához szükség volt a lemez „újraparticionálására” ( a partíciós tábla újbóli létrehozására ), ami a lemezre már írt információk elvesztését jelentette.
Az INT 13 megszakításának maximális lehetséges értéke 1024 henger, 63 szektor, 255 fej. A sok korabeli BIOS korlátozása (P1-P2), amikor egy 8 GB-nál nagyobb meghajtót próbáltak észlelni, az ilyen BIOS-ok lefagytak, mert a fejek számának 256-nál kevesebbnek kell lennie. [4]
Az Int 13h interfészen 10 bit van lefoglalva a hengerszámhoz , 8 a fej számához és 6 a szektorszámhoz , összesen 24 bit. Ez lehetővé teszi a szektorok címzését [15] , ami 512 bájtos szektorméret esetén 8 455 716 864 bájtot (8064 MB, 7,875 GB) ad.
Mire ez problémát jelentett - 1997-1998 körül - a teljes értékű többfeladatos operációs rendszereket , mint például a GNU/Linux, a FreeBSD és a Windows NT széles körben használták. Mivel a BIOS-ban található Int 13h kódot soha nem a többfeladatos működésre tervezték (főleg, hogy a processzort egy végtelen ciklussal terheli, miközben a vezérlő megszakítására vár), ezek az operációs rendszerek nem tudták használni az Int 13h-t a munkájuk során. Ehelyett – mint korábban a Novell NetWare – tartalmaztak egy IDE - illesztőprogramot , amely közvetlenül hozzáfér a vezérlő hardveréhez. Ez megszüntette az Int 13h-hoz kapcsolódó korlátozásokat a már betöltött operációs rendszer futtatásakor, de a rendszerindítási probléma (a rendszerindító betöltő indítása a BIOS által elérhető határon túl található lemezpartícióról ) megmaradt.
A probléma megoldására a BIOS fejlesztői az Int 13h-t új alfüggvényekkel bővítették, amelyek a szektorszámot 64 bites egész számként ( LBA ) fogadták el anélkül, hogy C/H/S-vel osztanák. Az operációs rendszer fejlesztői bevezették ennek az újításnak a támogatását a rendszertöltőkben (Windowsban ez a Windows NT 4.0 egyik szervizcsomagja 1997 - ben ), ami után a probléma megszűnt.
Az ATA-1-től az ATA/ATAPI-5-ig terjedő IDE -vezérlő hardveres regiszter interfésze 16 bitet használ a C-számhoz, 4-et a H-hoz és 8-at az S-hez, azaz összesen 28 bitet. Ez lehetővé teszi a szektorok megcímzését [15] , ami 512 bájtos szektormérettel 136 902 082 560 bájtot (127,5 GB) ad.
A probléma megoldása ilyen korlátozással csak hardver szinten lehetséges (és az illesztőprogramok frissítése az új hardverfunkciók használatához). Az ATA/ATAPI-6 szabványban került átvételre úgy, hogy egy bizonyos sorrendben (48 bites LBA) kétszer elküldi a címet a vezérlőnek. [16]
A Windows családban a 48 bites LBA támogatást a Windows 2000 SP4-ben és a Windows XP SP2 -ben adták hozzá . Ezenkívül a Windows 2000 rendszer megköveteli, hogy ezt a támogatást kifejezetten engedélyezze a rendszerleíró adatbázis szerkesztésével . [17]
Az IDE és BIOS interfészek korlátain kívül más akadályok is voltak - hibák és korlátozások a programokban, az operációs rendszerben és a BIOS kódban.
Például a DOS nem támogat 255 fejnél többet, ezért ezen az operációs rendszeren nem fogadható el a 256 fejű geometria, ami azt jelenti, hogy azokon a számítógépeken, ahol a BIOS nem támogatta a 256-ról 255-re fordítást a szektoroknál nagyobb lemezekre, kérdéses volt. 512 bájtos szektormérettel ez 4 227 858 432 bájtot ad (4032 MB, 3,94 GB).