Объём жёсткого диска (также используются термины «размер», «ёмкость») — максимальное количество информации, которое способен вместить жёсткий магнитный диск.

Ограничения ёмкости По мере развития жёстких дисков их максимальная ёмкость стремительно увеличивалась. На пути этого увеличения время от времени возникали препятствия — ограничения широко используемых программных и аппаратных интерфейсов, используемых способов адресации, а также характеристики ПО. В этом списке приводятся существующие или существовавшие лимиты (большей частью исторические) в персональных компьютерах на размер жёстких дисков, разделов и/или файловых систем. Ограничение Описание 8 Мбайт Ограничение на диск в ОС CP/M (при общем числе не более 16 дисков) 10,4 Мбайта Фиксированный размер диска в PC/XT: 306 цилиндров, 4 головки, 17 секторов на дорожку 15 Mбайт Максимальный размер раздела для MS-DOS 1 и 2 при стандартном размере сектораMS-DOS Partitioning Summary . Microsoft. 16 Мбайт Предельный размер для FAT12Hard Disk Size Barriers . The PC Guide. 32 Мбайт Ограничение на размер раздела для MS-DOS 3 для файловой системы FAT16: размер кластера 2 Кбайта, не более 16 384 кластеров 128 Мбайт Ограничение на размер FAT16 в MS-DOS 4: число кластеров до 65 526, размер кластера 2 Кбайта 504 Мбайта Ограничение схемы адресации CHS (см. ниже) 2 Гбайт Максимальный размер файловой системы FAT16 при 32-килобайтном кластере. Для Windows NT это величина за счёт 64-килобайтных кластеров равна 4 ГбайтамМаксимальный размер раздела на диске с файловой системой FAT16 . Microsoft. 2,1 Гбайта Некоторые материнские платы выделяли 12 бит на хранение числа цилиндров (4095 × 16б × 63 → 2,1 Гбайт) 3,2 Гбайт Ошибка некоторых Phoenix BIOS (4.03 и 4.04), приводящая к зависанию CMOS Setup, если диск превышает в размере 3277 Мбайт 4 Гбайт Лимит на размер раздела FAT16 в Windows NT Лимит раздела, создаваемого Windows NT 3.51/4.0 Workstation при установкеBoot Partition Created During Setup Limited to 4 Gigabytes. Microsoft. (связано с тем, что при установке создаётся раздел FAT16, который затем конвертируется в NTFS) 4,2 Гбайт Прямая трансляция числа секторов/головок методом последовательного уменьшения числа цилиндров в 2 раза и удвоения числа головок (т. н. Large или ECHS (Extended CHS)) приводила к лимиту в 1024 головки: 1024 × 128 × 63 × 512 → 4,2 ГБ 7,8 Гбайт Лимит на размер системного диска Windows NT 4.0Windows NT 4.0 не поддерживает системных разделов размером более 7,8 Гбайт . Microsoft 7,9 Гбайт При уменьшении числа головок до 15 режим ECHS (revised ECHS) позволял получить конфигурацию методом удвоения с 15 × 2 × 2 × 2 = 240 головками, что давало предел в 7,9 Гбайт 8,4 Гбайта Ограничение BIOS (см. ниже) 32 Гбайта Искусственное ограничение на размер раздела FAT32 в Windows 2000, XP. Разделы большего размера система отказывалась форматироватьОграничения файловой системы FAT32 в Windows XP . Microsoft.. Причиной является рациональное использование ресурсов: FAT32 при большем размере раздела теряет производительность, а NTFS, напротив, при малом размере раздела (~10 GiB) слишком расточительна. Максимальный поддерживаемый размер диска Windows 95Does Not Support Hard Disks Larger Than 32 GB. Microsoft. 33,8 Гбайт Большие диски содержат информацию о 16 головках, 63 секторах и 16 383 цилиндрах. При использовании реального числа цилиндров для вычисления (деления ёмкости на 16 × 63) оно получается больше, чем 65 535, что приводит к зависанию некоторых BIOS. Именно из-за этой проблемы на многих дисках того времени присутствовали джамперы, ограничивающие ёмкость до 32 Гбайт. 128 Гбайт137 ГбайтProperties of partition tables . Win.tue.nl. Ограничение стандартов с ATA-1 по ATA/ATAPI-5 (см. ниже) Лимит в Windows XP SP1 на размер раздела NTFS (исправлено в SP2) Максимальный размер FAT32, создаваемый Windows 98NTFS.com NTFS vs FAT32 FAT64 exFAT FAT. Comparing. Performance . Максимальный размер SFS в ОС семейства Amiga 2 Тбайта Максимальный размер всего диска (без учёта разделов), поддерживаемый MBR. Ограничения MBR: размер раздела, а также расстояние от начала раздела до контейнера (до начала диска в случае первичного раздела; до начала расширенного раздела в случае логических томов) — 32-битное число секторов, то есть оба параметра не могут быть больше 2 Тбайт Максимальный размер файловой системы ext3 на 32-битной архитектуре Максимальный размер раздела для загрузки Windows XP, Windows Vista, Windows 7 (в силу ограничений MBR)4 Тбайта Максимальный размер элемента массива mdraid при использовании формата метаданных 0.9 (2^32-1 сектора) 8 Тбайт Предел FAT32 16 Тбайт Максимальный размер ext3 на 64-битной архитектуре (4-КБ блок), на Alpha при 8-КБ блоке может быть до 32 ТБ Максимальный размер NTFS при 4-килобайтном кластере Максимальный размер файловой системы ReiserFS 3.6File system guide. File system guide. . Linuxreviews.org. Максимальный размер файловой системы ISO 9660, используемой на оптических дисках 64 Тбайта Лимит на размер spanned-массива дисков в Windows 2003Reviewing Storage Limits . Microsoft Technet. 256 Тбайт Максимальный размер файловой системы NTFS (при 64-килобайтном кластере) в существующих 32-битных реализациях. 48-битное LBA способно адресовать до байт, что составляет 256 ТиБ. К концу 2011 года на рынке имелись внутренние жёсткие диски объёмом не более 4 Тбайт 512 Тбайт Рекомендуемый максимальный размер файловой системы exFATDescription of the exFAT file system driver update package . Microsoft. 4 Пбайта Лимит JFS при 4-килобайтном блоке 8 Пбайт Лимит NFS 137 Пбайт Лимит адресации секторов ATA-6 (48-битное LBA) 1 Эбайт Максимальный размер ext4Migrating to ext4 . IBM. 8 Эбайт Лимит XFS 16 Эбайт Лимит HFS+ 64 Эбайта Теоретический максимальный размер файловой системы exFAT 256 ЗиБ Максимальный размер файловой системы ZFS 1 Йбайт Теоретический предел NTFS при 64-КБ блоках и 64-битной адресации (в настоящий момент используется 32-битная)

504 Мбайта Ограничение MS-DOS на допустимое число головок — 16 (1024 цилиндра, 63 сектора на дорожку, 16 головок, 512 байт на сектор)The 1,024 Cylinder (504 MiB / 528 MB) Barrier . The PC Guide..

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

Адресация блоков диска в вызове Int 13h выглядит как номера цилиндра (), головки () и сектора () — 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 бит), что позволяет адресовать секторовНумерация секторов начинается с единицы, поэтому всего секторов , а не для BIOS и 255, а не 256 для IDE.. При размере сектора в 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 (), когда CHS-адрес преобразовывается в линейный адрес, который передаётся контроллеру диска.

Теоретически разные методы трансляции должны давать одинаковый результат, однако из-за особенностей некоторых её реализаций, а также организации структур данных (разделов) на дисках, информация, записанная на диск в одной трансляции, могла быть недоступна в других. Для смены режима трансляции диска необходимо было «переразбить» диск (пересоздать таблицу разделов), что приводило к потере всей записанной на него информации.

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

В интерфейсе Int 13h для номера цилиндра отведено 10 бит, для номера головки — 8, для номера сектора — 6, всего 24 бита. Это позволяет адресовать секторов, что при размере сектора в 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 бит. Это позволяет адресовать секторов, что при размере сектора в 512 байт даёт 136 902 082 560 байт (127,5 Гбайт).

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

В семействе Windows поддержка 48-битного LBA была добавлена в SP4 для Windows 2000 и в SP2 для Windows XP. Кроме того, в Windows 2000 также требуется явно активизировать эту поддержку с помощью редактирования реестра.

Другие ограничения Помимо ограничений интерфейсов IDE и BIOS, имелись и другие барьеры — ошибки и лимиты в программах, ОС и коде BIOS.

Например, DOS не поддерживает работу с количеством головок больше 255, поэтому в этой операционной системе не приемлема разметка диска, в которой количество головок равно 256. Это означает, что в компьютерах, где в BIOS не поддерживалась трансляция с заменой количества головок 256 на 255, доступ к дискам объёмом больше секторов был под вопросом. При размере сектора в 512 байт это даёт 4 227 858 432 байт (4032 Мбайт, 3,94 Гбайт).

Примечания

Категория:Запоминающие устройства Категория:Носители информации