Обсяг жорсткого диска

  1. 504 Мб [ правити | правити код ]
  2. 8,4 Гб [ правити | правити код ]
  3. 128 Гб [ правити | правити код ]
  4. Інші обмеження [ правити | правити код ]

Обсяг жорсткого диска (також використовуються терміни розмір, ємність) - максимальна кількість інформації, яку здатний вмістити жорсткий магнітний диск .

У міру розвитку жорстких дисків їх максимальна ємність стрімко збільшувалася. На шляху цього збільшення час від часу виникали перешкоди - обмеження широко використовуваних програмних і апаратних інтерфейсів, використовуваних способів адресації, а також характеристики ПО . У цьому списку наводяться обмеження (здебільшого історичні) існують або існували в персональних комп'ютерах на розмір жорстких дисків, розділів і / або файлових систем .

Обмеження Опис 8 Мб

Обмеження на диск в ОС CP / M (При загальній кількості не більше 16 дисків).

10,4 Мб

Фіксований розмір диска в PC / XT : 306 циліндрів, 4 головки, 17 секторів на трек.

15 Mб

Максимальний розмір розділу для MS-DOS 1 і 2 при стандартному розмірі сектора. [1]

16 Мб

Граничний розмір для FAT12. [2]

32 Мб

Обмеження на розмір розділу для MS-DOS 3 для файлової системи FAT16 : Розмір кластера 2 кб, не більше 16 384 кластерів. [2]

128 Мб

Обмеження на розмір FAT16 в MS-DOS 4: число кластерів до 65 526, розмір кластера 2 кб. [2]

504 Мб Обмеження схеми адресації CHS (див. нижче ). 2 Гб

Максимальний розмір файлової системи FAT16 при 32-кб кластері. для Windows NT це величина за рахунок 64-кб кластерів дорівнює 4 Гб. [3]

2,1 Гб

Деякі материнські плати виділяли 12 біт на зберігання числа циліндрів (4095 * 16 * 63 - 2,1 Гб). [4]

3,2 Гб

Помилка деяких биосов Phoenix (4.03 і 4.04), що призводить до зависання в CMOS setup, якщо диск перевищує в розмірі 3277 Мб. [4]

4 Гб Ліміт на розмір FAT16 розділу в Windows NT. Ліміт розділу, створюваного Windows NT 3.51 / 4.0 Workstation при установці [5] (Пов'язано з тим, що при установці створюється розділ FAT16, який конвертується потім у NTFS ). 4,2 Гб

Пряма трансляція числа секторів / головок методом послідовного зменшення в 2 рази числа циліндрів і подвоєння числа головок (т. Н. Large або ECHS (Extended CHS)) приводила до ліміту в 1024 головки: 1024 * 128 * 63 * 512 - 4,2 Гб . [4]

7,8 Гб

Ліміт на розмір системного диска Windows NT 4.0 . [6]

7,9 Гб

При зменшенні числа головок до 15, ECHS (revised ECHS) дозволяв методом подвоєння отримати конфігурацію з 15 * 2 * 2 * 2 = 240 головками, що давало межа в 7,9 Гб.

8,4 Гб Обмеження BIOS (див. нижче ). 32 Гб Штучне обмеження на розмір FAT32-розділу в Windows 2000 , XP . Розділи більшого розміру форматувати система відмовлялася. [7] [8] Причиною є раціональне використання ресурсів: FAT32 при більшому розмірі розділу втрачає продуктивність, а NTFS, навпаки, при малому розмірі розділу (~ 10 GiB) занадто марнотратний. Максимальний підтримуваний розмір диска Windows 95 . [9] 33,8 Гб

Великі диски повідомляють про себе 16 головок, 63 секторах і 16 383 циліндрах. При використанні для обчислення реального числа циліндрів (ділення ємності на 16 * 63) число циліндрів виходить більше, ніж 65535, що призводить до зависання деяких биосов. Саме через цю проблему на багатьох дисках того часу були присутні джампери обмеження ємності до 32 Гб.

128 Гб
137 Гб [4] Обмеження стандартів з ATA-1 по ATA / ATAPI-5 (див. нижче ). Ліміт в Windows XP SP1 на розмір розділу NTFS (виправлено в SP2). Максимальний розмір FAT32, створюваний Windows 98. [7] Максимальний розмір SFS в ОС сімейства Amiga. 2 Тб Максимальний розмір всього диска (без урахування розділів), підтримуваний MBR . Обмеження MBR: розмір розділу, а також відстань від початку розділу до контейнера (до початку диска в разі первинного розділу, до початку розширеного розділу в разі логічних томів) - 32-бітове число секторів, тобто і той, і інший параметр не може бути більше 2 Тб. Максимальний розмір файлової системи ext3 на 32-бітної архітектури. Максимальний розмір розділу для завантаження Windows XP (в силу обмежень MBR). 8 Тб

межа FAT32 . [8]

16 Тб Максимальний розмір ext3 на 64-бітної архітектури (4-кб блок), на Alpha при 8-кб блоці може бути до 32 Тб. Максимальний розмір NTFS при 4-кб кластері. Максимальний розмір файлової системи ReiserFS 3.6. [10] Максимальний розмір файлової системи ISO 9660 (Використовуваної на оптичних дисках). 64 Тб

Ліміт на розмір spanned-масиву дисків в Windows 2003 . [11]

256 Тб

Максимальний розмір файлової системи NTFS (при 64-кБ кластері) в існуючих 32-бітних реалізаціях. [7] [11]

48-bit LBA здатне адресувати до 2 48 = 256 * 2 40 {\ displaystyle 2 ^ {48} = 256 * 2 ^ {40}} 48-bit LBA здатне адресувати до 2 48 = 256 * 2 40 {\ displaystyle 2 ^ {48} = 256 * 2 ^ {40}}   байт, що складає 256 Тіб байт, що складає 256 Тіб. До кінця 2011 року на ринку були внутрішні жорсткі диски об'ємом не більше 4 Тб.

512 Тб

Рекомендований максимальний розмір файлової системи exFAT . [12]

4 Пб

ліміт JFS при 4-кб блоці. [10]

8 Пб

ліміт NFS . [10]

137 Пб

Ліміт адресації секторів ATA-6 (48-bit LBA).

1 Еб

Максимальний розмір ext4 . [13]

8 Еб

ліміт XFS . [10]

16 Еб

ліміт HFS + .

64 Еб

Теоретичний максимальний розмір файлової системи exFAT . [12]

256 ЗіБ

Максимальний розмір файлової системи ZFS

1 Йб

теоретична межа NTFS при 64-кб блоках і 64-бітної адресації (зараз використовується 32-бітна). [7]

504 Мб [ правити | правити код ]

обмеження MS-DOS на допустиму кількість головок - 16 (1024 циліндри, 63 сектори на трек, 16 головок, 512 байт на сектор). [4] [14]

Програмне забезпечення часів початку 1990-х , Таке як MS-DOS, для роботи з жорстким диском використовувало виклик Int 13h .

Адресація блоків диска у виклику Int 13h виглядає як номери циліндра (Cylinder), головки (head) і сектора (Sector) - C / H / S. При цьому на C відводиться 10 біт , На H - 8, на S - 6.

Оброблювач Int 13h в BIOS вписує ці номери в керуючі регістри контролера IDE . У цих регістрах на C відводиться 16 біт, на H - 4, на S - 8.

Сукупність того і іншого призводить до загального обмеження C / H / S = 10/4/6 біт (всього 20 біт), що дозволяє адресувати 2 10 * 2 4 * (2 6 - 1) = 1024 * 16 * 63 = {\ displaystyle 2 ^ {10} * 2 ^ {4} * (2 ^ {6} -1) = 1024 * 16 * 63 =} Сукупність того і іншого призводить до загального обмеження C / H / S = 10/4/6 біт (всього 20 біт), що дозволяє адресувати 2 10 * 2 4 * (2 6 - 1) = 1024 * 16 * 63 = {\ displaystyle 2 ^ {10} * 2 ^ {4} * (2 ^ {6} -1) = 1024 * 16 * 63 =}   1 032 192   [15]   секторів 1 032 192 [15] секторів. При розмірі сектора в 512 байт це дає 528 482 304 байт (504 МБ).

Максимум BIOS IDE Загальне обмеження Секторів / трек 63 255 63 Поверхонь (головок) 256 16 16 Треків 1024 65536 1024 Обсяг 8 064 Мбайт 127,5 Гбайт 504 Мбайт

Дане обмеження стало відчутним в 1994-1995 роках, приблизно під час перших мікропроцесорів Pentium . Для його обходу була придумана трансляція значень CHS в коді обробника Int 13h в BIOS . Серед алгоритмів трансляції був і LBA (Linear Block Addressing), коли CHS-адреса перетворюється в лінійний адресу, який вже і передається в контролер диска.

Теоретично різні методи трансляції повинні давати однаковий результат, однак через особливості деяких реалізацій трансляції, а також організації структур даних ( розділів ) На дисках, інформація, записана на диск в одній трансляції, могла бути недоступна в інших трансляціях. Для зміни режиму трансляції диска необхідно було «перерозбити» диск (перестворити таблицю розділів ), Що означало втрату інформації, вже записаною на диск.

8,4 Гб [ правити | правити код ]

Максимально можлива величина для переривання INT 13, 1024 циліндри, 63 сектори, 255 головок. Обмеження багатьох BIOS того часу (P1-P2), при спробі визначити диск з розміром більше 8 Гб такі BIOS зависали, так як число головок має бути менше 256. [4]

В інтерфейсі Int 13h для номера циліндра відведено 10 біт, для номера головки - 8, для номера сектора - 6, всього 24 біта. Це дозволяє адресувати 2 10 * 2 8 * (2 6 - 1) = 1024 * 256 * 63 = {\ displaystyle 2 ^ {10} * 2 ^ {8} * (2 ^ {6} -1) = 1024 * 256 * 63 =} В інтерфейсі Int 13h для номера   циліндра   відведено 10 біт, для номера головки - 8, для номера   сектора   - 6, всього 24 біта 16 515 072 [15] секторів, що при розмірі сектора в 512 байт дає 8 455 716 864 байт (8064 Мб, 7,875 Гб).

На той час, коли це стало проблемою - близько 1997-1998 років - стали масово використовуватися повноцінні багатозадачні ОС , Такі, як GNU / Linux, FreeBSD і Windows NT. Так як код Int 13h в BIOS ніколи не розроблявся з урахуванням багатозадачності (зокрема, він навантажує процесор нескінченним циклом в очікуванні переривання від контролера), ці ОС не могли користуватися Int 13h в своїй роботі. Замість цього вони - як раніше Novell NetWare - включали драйвер IDE , Безпосередньо звертається до апаратури контролера. Це знімало пов'язані з Int 13h обмеження при роботі вже завантаженої ОС, але проблема із завантаженням (запуском завантажувача системи з розділу диска , Розташованого за доступною для BIOS кордоном) залишалася.

Для вирішення проблеми розробники BIOS розширили Int 13h новими Подфункция, які брали номер сектора як 64-бітове ціле число ( LBA ) Без поділу на C / H / S. Розробники ОС впровадили підтримку цього нововведення в завантажувачі (в Windows - це один з пакетів оновлення для Windows NT 4.0 в 1997 році ), Після чого проблема перестала існувати.

128 Гб [ правити | правити код ]

апаратний інтерфейс регістрів IDE -контролера стандартів з ATA-1 по ATA / ATAPI-5 використовує 16 біт для номера C, 4 - для H і 8 - для S, всього 28 біт. Це дозволяє адресувати 2 16 * 2 4 * (2 8 - 1) = 65536 * 16 * 255 = {\ displaystyle 2 ^ {16} * 2 ^ {4} * (2 ^ {8} -1) = 65536 * 16 * 255 =} апаратний інтерфейс   регістрів   IDE   -контролера стандартів з ATA-1 по ATA / ATAPI-5 використовує 16 біт для номера C, 4 - для H і 8 - для S, всього 28 біт 267 386 880 [15] секторів, що при розмірі сектора в 512 байт дає 136 902 082 560 байт (127,5 Гб).

Рішення проблеми з таким обмеженням можливо тільки на рівні апаратури (і поновлення драйверів для використання нових можливостей апаратури). Воно було прийнято в стандарті ATA / ATAPI-6 у вигляді відправки адреси в контролер двічі в певній послідовності (48-bit LBA). [16]

У сімействі Windows підтримка 48-bit LBA була додана в SP4 для Windows 2000 і в SP2 для Windows XP . Крім того, в Windows 2000 також потрібно явно активізувати цю підтримку за допомогою редагування реєстру . [17]

Інші обмеження [ правити | правити код ]

Крім обмежень інтерфейсів IDE і BIOS, були й інші бар'єри - помилки і обмеження в програмах, ОС і в коді BIOS.

наприклад, DOS не підтримує роботу з кількістю головок більше 255, тому в цій операційній системі не прийнятна геометрія, в якій кількість головок одно 256. Це означає, що в комп'ютерах, де в BIOS не знайшла підтримки трансляція з заміною кількості головок 256 на 255, доступ до дисків об'ємом більше 2 10 * 2 7 * (2 6 - 1) = 1024 * 128 * 63 = {\ displaystyle 2 ^ {10} * 2 ^ {7} * (2 ^ {6} -1) = 1024 * 128 * 63 =} наприклад,   DOS   не підтримує роботу з кількістю головок більше 255, тому в цій операційній системі не прийнятна геометрія, в якій кількість головок одно 256 8 257 536 секторів був під питанням. При розмірі сектора в 512 байт це дає 4 227 858 432 байт (4032 МБ, 3,94 ГБ).