Объём жёсткого диска
Объём жёсткого диска (также используются термины размер, ёмкость) в максимальное количество информации, которое способен вместить жёсткий магнитный диск.
[править] Ограничения ёмкости
По мере развития жёстких дисков их максимальная ёмкость стремительно увеличивалась. На пути этого увеличения время от времени возникали препятствия в ограничения широко используемых программных и аппаратных интерфейсов, используемых способов адресации, а также характеристики ПО. В этом списке приводятся ограничения (большей частью исторические) существующие или существовавшие в персональных компьютерах на размер жёстких дисков, разделов и/или файловых систем.
[править] 8 МБ
CP/M имела ограничение на 8Мб на диск (при общем числе не более 16 дисков).
[править] 10,4 МБ
PC/XT имела фиксированный размер диска: 312 цилиндров, 4 головки, 17 секторов на трек.[1]
[править] 15 MБ
Максимальный размер раздела для MS-DOS 1 и 2[2]
[править] 16 МБ
Предельный размер для FAT12[1]
[править] 32 МБ
Ограничение на размер раздела для MS-DOS 3 для файловой системы FAT16: размер кластера 2кб, не более 16384 кластеров.[1]
[править] 128 МБ
Ограничение на размер FAT16 в MS-DOS 4: число кластеров до 65526, размер кластера 2кб.[1]
[править] 504 МБ
Ограничение MS DOS на допустимое число головок в 16 (1024 цилиндра, 63 сектора на трек, 16 головок, 512 байт на сектор)[3][4]
Программное обеспечение времен начала 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 бит), что позволяет адресовать
1 032 192[5] секторов. При размере сектора в 512 байт это даёт 528 482 304 байт (504 Мб).
| Максимум | BIOS | IDE | Общее ограничение |
|---|---|---|---|
| Секторов/трек | 63 | 255 | 63 |
| Поверхностей (головок) | 256 | 16 | 16 |
| Треков | 1024 | 65536 | 1024 |
| Объём | 8064 Мбайт | 127,5 Гбайт | 504 Мбайт |
Данное ограничение стало ощутимым в 1994в1995 годах, примерно во время первых микропроцессоров Pentium. Для его обхода была придумана трансляция значений CHS в коде обработчика Int 13h в BIOS. Среди алгоритмов трансляции был и LBA (Linear Block Addressing), когда CHS-адрес преобразовывается в линейный адрес, который уже и передаётся в контроллер диска.
Теоретически, разные методы трансляции должны давать одинаковый результат, однако из-за особенностей некоторых реализаций трансляции, а также организации структур данных (разделов) на дисках, информация, записанная на диск в одной трансляции, могла быть недоступна в других трансляциях. Для смены режима трансляции диска необходимо было «переразбить» диск (пересоздать таблицу разделов), что означало потерю информации, уже записанной на диск.
[править] 2 ГБ
Максимальный размер файловой системы FAT16 при 32кб кластере. Для операционной системы NT это величина за счёт 64кб кластеров была равна 4Гб.[6]
[править] 2,1 ГБ
Некоторые материнские платы выделяли 12 бит на хранение числа цилиндров. 4095*16*63 в 2.1Гб[3]
[править] 3,2 ГБ
Ошибка некоторых биосов Phoenix (4.03 и 4.04), приводящая к зависанию в CMOS setup, если диск превышает в размере 3277 Мб.[3]
[править] 4 ГБ
- Лимит на размер FAT16 раздела в Windows NT.
- Лимит раздела, создаваемого Windows NT 3.51/4.0 Workstation при установке[7] (связано с тем, что при установке создаётся FAT16 раздел, который конвертируется потом в NTFS).
[править] 4,2 ГБ
Прямая трансляция числа секторов/головок методом последовательного уменьшения в 2 раза числа цилиндров и удвоения числа головок (т. н. 'Large' или ECHS (Extended CHS)) приводила к лимиту в 1024 головки: 1024*128*63*512 в 4.2Гб[3]
[править] 7,8 ГБ (1996)
Лимит на размер системного диска Windows NT 4.0[8]
[править] 7,9 ГБ
При уменьшении числа головок до 15, ECHS (revised ECHS) позволял методом удвоения получить конфигурацию с 15*2*2*2=240 головками, что давало предел в 7.9Гб.
[править] 8,4 ГБ
Максимально возможная величина для прерывания INT 13, 1024 цилиндра, 63 сектора, 255 головок. Ограничение многих BIOSв™ов того времени (P1-P2), при попытке определить диск с размером больше 8Гб такие биосы висли, так как число головок обязано быть меньше 256.[3]
В интерфейсе Int 13h для номера цилиндра отведено 10 бит, для номера головки в 8, для номера сектора в 6, всего 24 бита. Это позволяет адресовать
16 515 072[5] секторов, что при размере сектора в 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 году), после чего проблема перестала существовать.
[править] 32 ГБ
- Искусственное ограничение на размер FAT32-раздела в Windows 2000, XP. Разделы большего размера форматировать система отказывалась[9][10]
- Максимальный поддерживаемый размер диска Windows 95[11]
[править] 33,8 ГБ
Большие диски сообщают о себе 16 головок, 63 секторах и 16383 цилиндрах. При использовании для вычисления реального числа цилиндров (деления ёмкости на 16*63), число цилиндров получается больше, чем 65535, что приводит к зависанию некоторых биосов. Именно из-за этой проблемы на многих ЖД того времени присутствовали джамперы ограничения ёмкости до 32Гб.
[править] 128 ГБ
- Лимит в Windows XP SP1 на размер раздела NTFS (исправлено в SP2)
- Максимальный размер FAT32, создаваемый Windows 98[9]
- Максимальный размер SFS, в OS семейства Amiga.
Аппаратный интерфейс регистров IDE-контроллера стандартов с ATA-1 по ATA/ATAPI-5 использует 16 бит для номера C, 4 в для H и 8 в для S, всего 28 бит. Это позволяет адресовать
267 386 880[5] секторов, что при размере сектора в 512 байт даёт 136 902 082 560 байт (127,5 Гб).
Решение проблемы с таким ограничением возможно только на уровне аппаратуры (и обновления драйверов для использования новых возможностей аппаратуры). Оно было принято в стандарте ATA/ATAPI-6 в виде отправки адреса в контроллер дважды в определённой последовательности (48-bit LBA).[12]
В семействе Windows поддержка 48-bit LBA была добавлена в SP4 для Windows 2000 и в SP2 для Windows XP. Кроме того, в Windows 2000 также требуется явно активизировать эту поддержку с помощью редактирования реестра.[13]
[править] 137 ГБ (2001)
Максимальная величина числа цилиндров (28-бит) согласно спецификации ATA[3]. Ограничение печально известно тем, что при определённых обстоятельствах приводило к «циклической» перезаписи информации (данные, адресованные выше 137Гб записывались по адресу «адрес в 137Гб»). В ATA-6 количество битов изменено с 28 до 48 (лимит в 137 петабайт).
[править] 2 ТБ
- Максимальный размер диска (не раздела!), поддерживаемый MBR.
- Ограничения MBR: размер раздела, а также расстояние от начала раздела до контейнера (до начала диска в случае primary раздела, до начала extended partition в случае logical volume) в есть 32битное число секторов, то есть и тот, и другой параметр не может быть выше 2Тб.
- Максимальный размер файловой системы ext3 на 32-битной архитектуре
- Максимальный размер раздела для загрузки Windows XP (в силу ограничений MBR).
[править] 8 ТБ
[править] 16 ТБ
- Максимальный размер файловой системы ext3 на 64-битной архитектуре (4кб блок), на Alpha при 8кб блоке может быть до 32Тб.
- Максимальный размер NTFS при 4кб кластере
- Максимальный размер файловой системы ReiserFS 3.6[14]
- Максимальный размер файловой системы ISO 9660 (используемой на оптических дисках).
[править] 64 ТБ
Лимит на размер 'spanned' массива дисков в Windows 2003[15]
[править] 256 ТБ
Максимальный размер файловой системы NTFS (при 64 кб кластере) в существующих 32-битных реализациях[9][15]
48-bit LBA способно адресовать до
байт, что составляет 256 ТиБ. По состоянию на сентябрь 2011 на рынке присутствуют внутренние жесткие диски объёмом не более 4 Тб. Учитывая экспоненциальную тенденцию скорости роста объёмов жестких дисков это ограничение станет ощутимо после 2020 года.
[править] 512 ТБ
Рекомендуемый максимальный размер файловой системы exFAT[16]
[править] 4 ПБ
[править] 8 ПБ
[править] 137 ПБ
Лимит адресации секторов ATA-6 (48-bit LBA).
[править] 1 ЭБ
[править] 8 ЭБ
[править] 16 ЭБ
Лимит HFS+
[править] 64 ЭБ
Теоретический максимальный размер файловой системы exFAT[16]
[править] 1 ЙБ
(1024 ЭБ) Теоретический предел NTFS при 64 кб блоках и 64-битной адресации (в настоящий момент используется 32-битная)[9]
[править] Другие ограничения
Помимо ограничений интерфейсов IDE и BIOS, имелись и другие барьеры в ошибки и ограничения в программах, ОС и в коде BIOS.
Например, DOS не поддерживает работу с количеством головок больше 255, поэтому в этой операционной системе не приемлема геометрия, в которой количество головок равно 256. Это означает, что в компьютерах, где в BIOS не поддерживалась трансляция с заменой количества головок 256 на 255, доступ к дискам объёмом больше
8 257 536 секторов был под вопросом. При размере сектора в 512 байт это даёт 4 227 858 432 байт (4032 Мб, 3,94 Гб).
[править] Примечания
- в‘ 1 2 3 4 Hard Disk Size Barriers. The PC Guide
- в‘ MS-DOS Partitioning Summary. Microsoft.com
- в‘ 1 2 3 4 5 6 Properties of partition tables. Win.tue.nl
- в‘ The 1,024 Cylinder (504 MiB / 528 MB) Barrier. The PC Guide
- в‘ 1 2 3 Нумерация секторов начинается с единицы, поэтому всего секторов
, а не
для BIOS и 255, а не 256 для IDE. - в‘ Максимальный размер раздела на диске с файловой системой FAT16. Microsoft.com
- в‘ Boot Partition Created During Setup Limited to 4 Gigabytes. Microsoft.com
- в‘ Windows NT 4.0 не поддерживает системных разделов размером более 7,8 ГБ. Microsoft.com
- в‘ 1 2 3 4 http://www.ntfs.com/ntfs_vs_fat.htm NTFS vs FAT. Ntfs.com
- в‘ 1 2 Ограничения файловой системы FAT32 в Microsoft Windows XP. Microsoft.com
- в‘ Does Not Support Hard Disks Larger Than 32 GB. Microsoft.com
- в‘ 6.20. 48-bit Address feature set // AT Attachment with Packet Interface в 6 (ATA/ATAPI-6). в ANSI, T13 Commitee, 14 декабря 2001. в P. 51.
- в‘ KB305098: Поддержка 48-разрядной логической адресации блоков для дисководов ATAPI в Windows 2000 (рус.). Microsoft Knowledge Base (16 апреля 2006). Архивировано из первоисточника 23 марта 2012. Проверено 13 января 2010.
- в‘ 1 2 3 4 File system guide. File system guide. Linuxreviews.org
- в‘ 1 2 Reviewing Storage Limits. Microsoft Technet
- в‘ 1 2 Description of the exFAT file system driver update package. Microsoft
- в‘ Migrating to ext4. Ibm.com
, а не
для BIOS и 255, а не 256 для IDE.