Interested Article - Объём жёсткого диска
- 2021-12-09
- 1
Объём жёсткого диска (также используются термины «размер», «ёмкость») — максимальное количество информации, которое способен вместить жёсткий магнитный диск .
Ограничения ёмкости
По мере развития жёстких дисков их максимальная ёмкость стремительно увеличивалась. На пути этого увеличения время от времени возникали препятствия — ограничения широко используемых программных и аппаратных интерфейсов, используемых способов адресации, а также характеристики ПО . В этом списке приводятся существующие или существовавшие лимиты (большей частью исторические) в персональных компьютерах на размер жёстких дисков, разделов и/или файловых систем .
Ограничение | Описание |
---|---|
8 Мбайт | Ограничение на диск в ОС CP/M (при общем числе не более 16 дисков) |
10,4 Мбайта | Фиксированный размер диска в PC/XT : 306 цилиндров, 4 головки, 17 секторов на дорожку |
15 Mбайт | Максимальный размер раздела для MS-DOS 1 и 2 при стандартном размере сектора |
16 Мбайт | Предельный размер для FAT12 |
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 Гбайтам |
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 при установке (связано с тем, что при установке создаётся раздел FAT16, который затем конвертируется в NTFS ) | |
4,2 Гбайт | Прямая трансляция числа секторов/головок методом последовательного уменьшения числа цилиндров в 2 раза и удвоения числа головок (т. н. Large или ECHS (Extended CHS)) приводила к лимиту в 1024 головки: 1024 × 128 × 63 × 512 → 4,2 ГБ |
7,8 Гбайт | Лимит на размер системного диска Windows NT 4.0 |
7,9 Гбайт | При уменьшении числа головок до 15 режим ECHS (revised ECHS) позволял получить конфигурацию методом удвоения с 15 × 2 × 2 × 2 = 240 головками, что давало предел в 7,9 Гбайт |
8,4 Гбайта | Ограничение BIOS (см. ) |
32 Гбайта | Искусственное ограничение на размер раздела FAT32 в Windows 2000 , XP . Разделы большего размера система отказывалась форматировать . Причиной является рациональное использование ресурсов: FAT32 при большем размере раздела теряет производительность, а NTFS, напротив, при малом размере раздела (~10 GiB) слишком расточительна. |
Максимальный поддерживаемый размер диска Windows 95 | |
33,8 Гбайт | Большие диски содержат информацию о 16 головках, 63 секторах и 16 383 цилиндрах. При использовании реального числа цилиндров для вычисления (деления ёмкости на 16 × 63) оно получается больше, чем 65 535, что приводит к зависанию некоторых BIOS. Именно из-за этой проблемы на многих дисках того времени присутствовали джамперы , ограничивающие ёмкость до 32 Гбайт. |
128 Гбайт
137 Гбайт |
Ограничение стандартов с ATA-1 по ATA/ATAPI-5 (см. ) |
Лимит в Windows XP SP1 на размер раздела NTFS (исправлено в SP2) | |
Максимальный размер FAT32, создаваемый Windows 98 | |
Максимальный размер 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.6 | |
Максимальный размер файловой системы ISO 9660 , используемой на оптических дисках | |
64 Тбайта | Лимит на размер spanned-массива дисков в Windows 2003 |
256 Тбайт | Максимальный размер файловой системы NTFS (при 64-килобайтном кластере) в существующих 32-битных реализациях . 48-битное LBA способно адресовать до байт, что составляет 256 ТиБ. К концу 2011 года на рынке имелись внутренние жёсткие диски объёмом не более 4 Тбайт |
512 Тбайт | Рекомендуемый максимальный размер файловой системы exFAT |
4 Пбайта | Лимит JFS при 4-килобайтном блоке |
8 Пбайт | Лимит NFS |
137 Пбайт | Лимит адресации секторов ATA-6 (48-битное LBA) |
1 Эбайт | Максимальный размер ext4 |
8 Эбайт | Лимит XFS |
16 Эбайт | Лимит HFS+ |
64 Эбайта | Теоретический максимальный размер файловой системы exFAT |
256 ЗиБ | Максимальный размер файловой системы ZFS |
1 Йбайт | Теоретический предел NTFS при 64-КБ блоках и 64-битной адресации (в настоящий момент используется 32-битная) |
504 Мбайта
Ограничение MS-DOS на допустимое число головок — 16 (1024 цилиндра, 63 сектора на дорожку, 16 головок, 512 байт на сектор) .
Программное обеспечение времен начала 1990-х годов , такое как MS-DOS, использовало вызов для работы с жёстким диском.
Адресация блоков диска в вызове 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 бит), что позволяет адресовать секторов . При размере сектора в 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 Гбайт компьютер зависал, так как число головок обязано быть меньше 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 Гбайт).
Примечания
- от 31 января 2017 на Wayback Machine . Microsoft.
- ↑ от 30 ноября 2011 на Wayback Machine . The PC Guide.
- от 14 декабря 2011 на Wayback Machine . Microsoft.
- ↑ от 23 апреля 2019 на Wayback Machine . Win.tue.nl.
- . Microsoft.
- от 25 февраля 2012 на Wayback Machine . Microsoft
- ↑ от 9 марта 2015 на Wayback Machine .
- ↑ от 31 января 2017 на Wayback Machine . Microsoft.
- . Microsoft.
- ↑ . от 17 сентября 2011 на Wayback Machine . Linuxreviews.org.
- ↑ от 20 декабря 2011 на Wayback Machine . Microsoft Technet.
- ↑ от 24 мая 2011 на Wayback Machine . Microsoft.
- от 1 декабря 2008 на Wayback Machine . IBM.
- от 2 января 2012 на Wayback Machine . The PC Guide.
- ↑ Нумерация секторов начинается с единицы, поэтому всего секторов , а не для BIOS и 255, а не 256 для IDE.
- 6.20. 48-bit Address feature set // . — ANSI, T13 Commitee, 14 декабря 2001. — P. 51. 28 июля 2011 года. . Дата обращения: 19 июня 2009. Архивировано из 28 июля 2011 года. .
- . Microsoft Knowledge Base (13 апреля 2006). Дата обращения: 13 января 2010. 1 мая 2012 года.
- 2021-12-09
- 1