Аналогичный случай был у нас в Бердичеве. Нотыбук Compaq nc6320. Снёс предустановленную Висту. Стал устанавливать Windows XP. Фиг! Не видит винчестер. Полез на ихний сайт за драйверами. Но среди драйверов к этой модели ничего не нашёл, что касалось бы винчестера.
Полез в BIOS Setup. В разделе "Device Configurations" в пункте "SATA Native Mode" установил "Disable" (было "Enable"). В пункте "HDD Translation Mode" установил "LBA-assisted" (было "Bit-shift")
После этого установщик Windows XP увидел винчестер, и всё установилось без проблем.
Там в обед можно пройти как и раньше, электронную проходную отключают. После часа, кажется.
Добавлю к слову
Если после удаления и разбивания дисков после перезагрузки появляеться откуда не возьмись "не размеченая область" то возможно (много раз встречал это в брендовых ноутбуках ) там ваш биос хранит свою копию (есть такая фишка в Биосе в ноутбуках)
Я поубивал все разделы на диске. А их было там. Один, скрытый, для хранения дистрибутива Висты. Другой, тоже скрытый, для средства создания резервных копий и аварийного восстановления. Это было какое-то фирменное средство от Хьюлета и Паккарда. А на третьем разделе, собственно, и жила эта дрёбанная Виста. После убиения этих разделов и создания вместо них только одного, конец света не наступил. А наооборот, Windows XP нормально заработала.
sprutss: появляеться откуда не возьмись "не размеченая область"
Обратите внимание, что если создавать разделы из инсталлятора винды (консольного), то он всегда оставляет неразмечеными 8Мб.
SAK: из инсталлятора винды (консольного), то он всегда оставляет неразмечеными 8Мб.
Не обязательно. Попробуйте любыми средствами на неразмеченном диске создать логический раздел, будет такой же результат.
Что значит любыми средствами? Значит вообще невозможно использовать дисковое пространство полностью? У меня почему-то любыми средствами удаётся без каких-либо затруднений задействовать всё дисковое пространство. Исключение только упомянутый выше инсталлятор.
"Любые средства", это любые средства для разбивки дисков (партишен меджик и иже с ними). Если на голом диске создать первичный раздел, а потом логический, то всё будет в шоколаде и никаких неразмеченных хвостов не останется.
Аааа, понял. Имелся ввиду расширенный раздел. Ну если его создавать единственным, то резервируется место для первичного.
Залез на сайт производителя — ура! драйверы для ХР там на эту модель есть! Кстати, отдельно там выложен драйвер SATA размером примерно 250 кб — всё, как тут рассказывали знатоки. Значит, имеет смысл не бросать это дело, а побороться за установку ХР далее.
А что если заложить этот драйвер в первый раздел заранее (ну, т.е. после разметки, но до установки)? Может, тогда удастся обойти отсутствие флоппи-дисковода?
Форум про радио — сайт, посвященный обсуждению электроники, компьютеров и смежных тем.
В далёкие 80-е года прошлого тысячелетия;), во времена уже, наверное, мало кому известного MFM и RLL, для доступа к винчестеру надо было знать (и указывать) его "геометрию". Под "геометрией" понимается "физическое" количество цилиндров (дорожек) ("C" — от Cylinders), головок ("H" — от Heads), и секторов на дорожку ("S" — от Sectors). Т.е. любой блок информации на винчестере характеризовался тремя переменными: C, H и S (отсюда — CHS-адресация). И надо отметить, что эти величины всегда были "реальными".
Все современные же винчестеры имеют принципиально другую плотность информацию и, например, даже такая, на первый взгляд, "логичная" величина как S — количество секторов на дорожку, даже близко не соответствует указанному на этикетке винчестера (и при детекте в BIOS) значению. В реальности количество секторов на дорожку — величина переменная и уменьшается по мере приближения к последней (крайней) внутренней дорожке. Поэтому для преодоления этой неоднозначности контроллер винчестера "сообщает" BIOS-у не реальные значения, а "удобоваримые" для него параметры, переводя уже поступившие от него "координаты" в "реальные".
Например, винчестер может содержать две пластины и, соответственно, четыре головки, а контроллер "скажет" биосу о 16-ти имеющихся головках. Мало того, биос, для "удобоваримости" уже операционной системы, может яростно "утверждать", что на винчестере вовсе не 16, а целых 255 головок. В свою очередь ОС к проблемам всех этих "пересчётов" будет добавлять ещё и ограничения на объём раздела из-за использования конкретной файловой системы (например, FAT16). Именно из-за такой многогранности проблемы многие люди так часто спорят, путая и смешивая различные по происхождению проблемы. Попробуем прояснить все аспекты проблемы.
Чтобы разобраться с "ограничениями" нужно достаточно чётко представлять всю структуру работы с диском: от приложения до самих головок чтения/записи. Схематически процесс записи можно представить в следующем виде:
Рассмотрим "форматы" каждого из этапов.
1. Винчестер "физически" состоит из одной или нескольких пластин, покрытых магнитным слоем. С обеих сторон пластины (иногда — только с одной) располагаются головки чтения/записи информации. Информация записывается на "дорожки", которые в случае нескольких головок образуют цилиндр. Дорожка разбита на секторы, каждый из которых и представляет тот минимум блок информации, которую можно записать на диск. Стандартный размер сектора — 512 байт.
Как уже говорилось, самые первые винчестеры имели постоянное количество секторов на дорожку на всём диске. Однако это не позволяло эффективно использовать всю поверхность диска — каждая следующая внешняя дорожка длинней внутренней, соответственно, на ней может поместиться больше информации. Поэтому современные винчестеры разбиты на "зоны", т.е. совокупности соседних дорожек с одинаковым количеством секторов на дорожку. Именно поэтому график линейного чтения винчестера (исправного) выглядит в виде нисходящих ступенек.
2. Контроллер винчестера управляет работой головок чтения/записи. Он переводит команды "интерфейса" в электрические сигналы на головках. Интерфейсы бывают разные: "доисторические" MFM и RLL, современные IDE (ATA) и SCSI, "будущие" SerialATA. Нас, естественно, интересует IDE-винчестеры, потому и рассмотрим интерфейс ATA.
Как уже, опять же, говорилось — "исторически" сложилось использование CHS-адресации. При этом в случае ATA:
- для "С" выделено два байта (16 бит)
- для "S" — один байт минус 1 сектор (8 бит — 1)
- для "H" — полбайта (4 бита)
Итого, максимальный винчестер для CHS-адресации:
2^16x(2^8-1)x2^4 = 65536x255x16 = 267 386 880 секторов. В секторе 512 байт, значит:
HDDmax(CHS) = 65536x255x16*512 = 136 902 082 560 байт = 136.9Gb (127,5ГБ) *
* — здесь и дальше примем в качестве обозначения:
"кБ" = 2^10 = 1024 byte
"МБ" = 1024 кБ = 1024*1024 byte = 1 048 576 byte
"ГБ" = 1024 МБ = 1024*1024*1024 byte = 1 073 741 824 byte
"Mb" = 1 000 000 byte, 1МБ = 1.05Mb
"Gb" = 1 000 000 000 byte, 1ГБ = 1.07Gb
Все современные винчестеры используют LBA-адресацию. В этом случае номер каждого сектора представляет собой 28-битное число и максимальным диском для LBA будет:
HDDmax(LBA) = 2^28*512 = 137 438 953 472 байт = 137.4Gb (128ГБ)
3. BIOS по вышеописанной "иерархии" находится между ОС и контроллером винчестера. В его функцию входит перевод команд запроса на работу с диском от ОС в команды контроллера винчестера.
Большинство программного обеспечения использует CHS-адресацию. Поэтому с появлением "LBA-винчестеров", чтоб не переписывать имеющееся ПО, поступили следующим образом. Биос в случае определения LBA-винчестера, переводит его параметры в CHS-версию и ОС "думает", что работает с CHS-винчестером. Т.е. 28-битное значение LBA "раскладывается" следующим образом — "цилиндрические" 16 бит + "секторные" 8 бит + "головчатые" 4 бита (итого 16+8+4=28). Или конкретно:
- биты 0-7 — сектор (+1шт., т.к. адресация CHS начинается с 1-го, а не 0-го сектора)
- биты 8-15 — цилиндр, младший байт
- биты 16-23 — цилиндр, старший байт
- биты 24-27 — головка
При получении запроса на работу с диском, биос переводит для контроллера это значение обратно в LBA:
LBA = [(цилиндр * число головок + номер головки) * количество секторов на дорожку] + (номер сектора — 1)
4. В далёкие, ещё DOS-овские времена не подозревали, что когда-то ёмкость винчестеров будет измеряться десятками и даже сотнями гигабайт. Ведь самый богатый в мире человек (и самый проклинаемый компьютерной братией в одном флаконе;) тоже как-то рассуждал "о бесконечности" 640кБ оперативной памяти. В результате для адресации CHS в DOS (Int 13h) была выбрана следующая "трёхбайтовая" система:
- один байт — для младших битов значения цилиндров (0-7 биты)
- один байт — для двух старших бит значения цилиндров (8-9 биты) и шесть битов значения сектора
- один байт — для значения головок
Итого получалось, "C" = 0-1023, "H" = 0-255, "S" = 1-63, соответственно, максимальным винчестером, с которым способен работать DOS будет:
HDDmax(DOS) = 1024x256x63*512 = 8 455 716 864 = 8.46Gb (7,88ГБ)
Или для LBA-адресации это получается 24-битное (3 байта) число:
HDDmax(DOS-LBA) = 2^24*512 = 8 589 934 592 = 8.59Gb (8ГБ)
5. Приложения используют определённую файловую систему, которая также имеет свои ограничения. Например, в случае FAT16 объём раздела зависит от величины кластера и по максимуму может быть 2^16 кластеров. Кластер — это совокупность секторов и его стандартное максимальное значение — 64 сектора ("нестандартные" 128 и больше позволяют делать лишь linux-образные утилиты), т.е. 32кБ. Т.е. максимальный раздел для FAT16:
FAT16max = 2^16*32кБ = 2 147 483 648 = 2.15Gb (2ГБ)
Теперь, зная все эти моменты, попробуем восстановить хронологию возникновения проблем "больших" дисков.
Самая старая и, наверное, уже мало кому известная проблема касается времён 100Mb (не Gb!) винчестеров и больше. Использовалась тогда FAT12, для которой максимальным был раздел:
FAT12max = 2^12*32кБ = 134 217 728 = 134Mb (128МБ)
Способ решения простой — переход на FAT16 (для этого-то он и создавался).
Самая первая, самая известная и самая серьёзная проблема, затронувшая CHS.
Дело в том, что все первые биосописатели не рассчитывали, что когда-то в их детища кто-нибудь попытается засунуть такие "гигантские" винты. Проблема была из-за того, что Int13h и IDE имели следующие ограничения на значение CHS:
Int13h: C/H/S = 1024/256/63
>
Соответственно, максимальным вариантом, удовлетворяющем оба случая было 1024/16/63, а значит наибольший установленный винчестер мог быть:
HDDmax(oldBIOS) = 1024x16x63 *512 = 528 482 304 = 528Mb (504МБ)
Решение проблемы имело три пути. Первый — это форматирование "слишком большого" винчестера с помощью встроенной в биос утилиты на 528Mb. Такой способ был достаточно "распространённым" в своё время (из-за неопытности пользователей;).
Второй — использование специального ПО — disk managers (типа OnTrack, EZ-Drive и др.), заменяющие подпрограммы BIOS для работы с дисками своими собственными. Как правило, для работы такие программы модифицировали MBR диска. Однако это не позволяло корректно работать с диском при загрузке с другого винчестера (или даже дискеты), а также возникали большие проблемы с установкой нескольких ОС на такой диск.
Ну, и третий — обновление биос. Однако флэш-память для микросхем биоса не была тогда распространена, да и интернет не был развит, соответственно и прошивок никто не делал и не выкладывал. Поэтому из-за практической малоэффективности всех этих способов, плату нужно (было) просто заменить на "поддерживающую LBA".
Многие биосописатели не учли предыдущего опыта и добавили в биосе всего 2 бита на цилиндры. Итого получалось:
HDDmax(1996) = 2^12x16x63*512 = 2 113 929 216 = 2.11Gb (1.97ГБ)
При чём некоторые версии определяли только "часть" винчестера (например, 2.5Gb определялся как 425Mb), а некоторые просто зависали при автоопределении винчестера из-за неправильного перерасчёта головок.
Решение проблемы — обновление биос (либо использование disk managers).
Только появившаяся Windows95 ("A", не OSR) использовала DOS-овские FAT16 и потому наследовала все его проблемы — вышеописанное ограничение в 2.15Gb на один раздел.
Решение проблемы — установка Windows95B (OSR2), которая позволяла использовать FAT32. У FAT32 максимальный раздел:
FAT32max = 2^32*32кБ = 17 042 430 230 528 = 17042Gb (15872ГБ)
В старых версиях Phoenix BIOS (v. 4.03 и 4.04) была ошибка с определением винчестеров более 3.277Mb.
Решение проблемы — обновление до версии 4.05 и позже.
Не всем известное ограничение, оно вытекает из способов решения "проблемы 528Mb". Так вот, чтоб преодолеть барьер 528Mb биосы могли использовать один из двух способов: "LBA assist translation" и "Bit shift translation ("Large" Mode)".
Метод "LBA-трансляции" при наличии в системе LBA-винчестера для совместимости со старым ПО (Int 13h) высчитывал значение CHS по следующему алгоритму:
Однако до появления LBA-винчестеров появилось много не поддерживающих LBA винчестеров ёмкостью больше 528Mb. Для работы с такими винчестерами использовался следующий пересчёт цилиндров:
В результате биосы, использующие такую трансляцию для винчестеров 4.23Gb (и больше) и имеющие 16 головок "переводили" их количество в 256. Однако старое ПО (DOS, Windows95) "понимали" только значения 0-255 и 256 головок воспринималось как 0.
Решение проблемы — обновление биос.
В тех же "некоторых" биосах (что и в предыдущем случае), только более продвинутых, описанная выше проблема обходилась приравниванием числа головок к 15. В результате получалось не 256, а 240 дорожек и максимальный диск:
HDDmax(Large-15) = 1024x240x63*512 = 7 927 234 560 = 7.93Gb (7.38ГБ)
Решение проблемы — обновление биос.
Вышеописанное ограничение Int 13h. Правда, конфигурации с 256-ю головками не встречались, потому реальное ограничение:
HDDmax(Int13h/DOS) = 1024x255x63*512 = 8 422 686 720 = 8.42Gb (7.84ГБ)
Решение — обновление биос.
Самая актуальная проблема. После исправления в биосе "проблемы Int 13h", ограничивающей диски до 8.4Gb, схема адресации стала аналогичной ATA-интерфейсу:
- С — два байта (16 бит), максимум — 2^16 = 65536
- H — один байт (4 бит), максимум — 2^4 = 16
- S — один байт (8 бит), максимум — 2^8 = 255
- или в режиме LBA — 16+4+8=28 бит
Т.е. теоретически можно было работать с самыми большими дисками 137.4Gb. Однако опять биосописатели ошиблись. Они не учли, что при пересчёте цилиндров по старой схеме им просто "не хватит" даже 16bit на цилиндры. Например, диск на 41.2Gb с конфигурацией 19710/16/255, получал от винчестера LBA-значение количества секторов 80 416 800 шт. и при пересчёте по "стандартному" алгоритму с 16-ю головками и 63-мя секторами получалось:
80416800 / (16*63) = 79778 цилиндра.
79778 > 65536 (2^16) и поэтому не помещалось в 16 бит.
Соответственно использующийся алгоритм с 16-битным делением просто зависал из-за ошибки переполнения. Для решения проблемы нужно было заменить все инструкции 16-битного деления на 32-битные и добавить условие: если LBA-значение количества секторов диска превышает:
HDDmax(32ГБ) = 65536x16x63 = 66 060 288 секторов = 33.8Gb (31.5ГБ) ,
то количество секторов приравнивается к 255. Это и было сделано в версиях Award BIOS в версиях после июня 1999-года.
Остановимся на решении этой проблемы подробнее, т.к. она всё ещё популярна из-за большого количества обладателей "старых" плат Socket7 (и первых Pentium2), желающих увеличить объём своего диска без "глобального" апгрейда всего компьютера. Просто цены на винчестеры 40-60Gb сейчас так упали, что диски меньшего объёма покупать совершенно невыгодно (и часто даже не из-за копеечной разницы по сравнению с 10-20Gb винчестерами, а просто из-за отсутствия моделей с меньшей ёмкостью).
Итак, главное и самое простое решение проблемы — обновить биос. Однако для подавляющего большинства Socket7-плат (все кроме "последних" — на VIA MVP3/MVP4, ALI V, SiS 530/540) производители не выложили новых версий биос с поддержкой "больших" винчестеров. Поэтому если вы счастливый обладатель какой-нибудь i430VX/TX или VIA VPX не мучайтесь с поисками в интернете "нового" биоса для вашего неопределяющегося свежекупленного винчестера. Ведь даже самый признанный "биосописатель" Asus не выложил новых версий для своей линейки плат на i430TX чипсете. Исправить, как вы видели, нужно было совсем немного, поэтому причина "забывчивости" всех производителей поголовно выложить новые версии под свои старые платы одна — маркетинг, мол, покупайте наши новые платы, там всё без проблем.
Что можно посоветовать, если вы уже купили такой "большой" диск.
1. На некоторых винчестерах есть перемычки для конфигурирования винчестера на 33.8Gb. Получите совершенно работоспособную систему, но, к сожалению, с меньшим объёмом.
2. Windows (98 и выше) применяет свои подпрограммы для определения винчестера, в которых нет проблем для работы с винчестерами больше 33.8Gb. Поэтому если вы хотите использовать "большой" диск просто в качестве "второго" (т.е. будете грузиться не с него, а с другого, меньшего, чем 33.8Gb), то можно просто выключить в биосе автоопределение "большого" винчестера (т.е. поставить Disabled). Тогда компьютер не повиснет в биосе, а Windows при загрузке сама вполне корректно определит "невидимый биосу" диск и можно будет совершенно корректно использовать весь его объём. Однако, во-первых, вы не сможете пользоваться "большим" диском из-под DOS (его разделы будут просто там отсутствовать), а во-вторых, многовероятно, что скорость работы с таким "невидимым в биос" диском будет существенно более низкая из-за "неинициализации" его UDMA-протокола (т.е. он может работать по протоколу PIO4-10Mb/s и даже ниже).
3. В некоторых редких биосах "проблему 32ГБ" удаётся обойти установкой параметров "большого" диска вручную (как для старых винчестеров).
4. Ну, и, наконец, старые, знакомые (и такие неудобные) — disc managers.
От себя лично, правда, могу добавить, что на моём сайте www.ROM.by можно найти "коллекцию" биосов под многие старые платы с поддержкой "больших" винчестеров, а если вашего биоса в коллекции не окажется, то всегда можно будет воспользоваться специальной программой BIOS Patcher, которая добавит вашему биосу корректную поддержку винчестеров вплоть до 120Gb.
Не все биосописатели подошли добросовестно к "проблеме 32Gb" и в результате была исправлена лишь одна ошибка, связанная с переполнением при 16-битном делении.
Дело в том, что для вывода на экран объёма винчестера использовался 16-битный регистр, объём выводился в мегабайтах, итого максимальный диск мог быть:
HDDmax(64ГБ) = 2^16 — 1 = 65535Mb = 65.5Gb (64ГБ) ,
В данном случае компьютер зависал сразу же после детекта винчестера и никаким способом это обойти было нельзя (кроме как выключения его в BIOS Setup). Позже для исправления этой проблемы было сделано следующее условие: до 64Гб — выводить ёмкость в мегабайтах, выше — в гигабайтах.
Решение — обновление биос.
Современные диски достигли предела стандарта ATA. Для его преодоления уже нужно будет менять сам "интерфейс". Что, например, и предложил тот же Maxtor в своей спецификации на UDMA133.
Решение проблемы — обновление биоса, но для подавляющего большинства, всё ж, это совсем не проблема. Пока. 😉
| Эта статья выставлялась на удаление и была оставлена. |
Пояснение причин и соответствующее обсуждение вы можете найти на странице Википедия:К удалению/7 июня 2009 .
Повторное выставление страницы на удаление при отсутствии веских оснований для пересмотра предыдущего решения может рассматриваться как нарушение правила ВП:НДА (см. пункт 8 в разделе «Не играйте с правилами»).
| Согласно принятому решению, на эту страницу перенесено содержимое страницы Ограничения на размер жёстких дисков персональных компьютеров . |
Содержание
- Содержание
- Хронология возникновения проблем с ёмкостью жёстких дисков. [ править код ]
- 134Mb, год 1990-й. [ править код ]
- 528Mb, год 1993-й. [ править код ]
- 2.11Gb, год 1996-й. [ править код ]
- 2.15 Gb, год 1996-й. [ править код ]
- 3.28Gb, год 1996-1997-й. [ править код ]
- 4.23Gb, год 1997-й. [ править код ]
- 7.93Gb, год 1997-1998-й. [ править код ]
- 8.46Gb, год 1998-й. [ править код ]
- 33.8Gb, год 1999-й, лето. [ править код ]
- 65.5Gb, год 2000-й, зима. [ править код ]
- 137.4Gb, год 2002-й. [ править код ]
- 8.4 ГБ (512 байт даёт) [ править код ]
Содержание
Хронология возникновения проблем с ёмкостью жёстких дисков. [ править код ]
Здесь в качестве обозначения:
"кБ" = 2^10 = 1024 Байт
"МБ" = 1024 кБ = 1024*1024 Байт = 1 048 576 Байт
"ГБ" = 1024 МБ = 1024*1024*1024 Байт = 1 073 741 824 Байт
"Мб" = 1 000 000 Байт, 1МБ = 1.05Mb
"Гб" = 1 000 000 000 Байт, 1ГБ = 1.07Gb
134Mb, год 1990-й. [ править код ]
Самая старая проблема касается времён 100Mb винчестеров и больше для которых использовалась FAT12, для которой максимальным был раздел:2^12*32кБ = 134 217 728 = 134Mb (128МБ)
528Mb, год 1993-й. [ править код ]
Самая первая, самая известная и самая серьёзная проблема, затронувшая CHS. Проблема была из-за того, что Int13h и IDE имели следующие ограничения на значение CHS:
| C | H | S | |
|---|---|---|---|
| Int13h | 1 024 | 256 | 63 |
| IDE | 65 536 | 16 | 255 |
| Максимальный вариант, удовлетворяющий оба случая | 1 024 | 16 | 63 |
Значит наибольший установленный винчестер мог быть: 1024*16*63*512 = 528 482 304 = 528Mb (504МБ)
2.11Gb, год 1996-й. [ править код ]
Многие BIOS не учли предыдущего опыта и добавили в BIOSе всего 2 бита на цилиндры. В итого получалось: 2^12*16*63*512 = 2 113 929 216 = 2.11Gb (1.97ГБ) Причём некоторые версии определяли только "часть" винчестера (например, 2.5Gb определялся как 425Mb), а некоторые просто зависали при автоопределении винчестера из-за неправильного перерасчёта головок.
2.15 Gb, год 1996-й. [ править код ]
Windows 95 ("A", не OSR) использовала DOS-овскую FAT16 и потому наследовала все её проблемы — вышеописанное ограничение в 2.15 Gb на один раздел. У FAT32, применяемой Windows 95B OSR2 максимальный раздел: 2^32*32кБ = 17 042 430 230 528 = 17 042 Gb (15 872 ГБ)
3.28Gb, год 1996-1997-й. [ править код ]
В Phoenix BIOS (версий 4.03 и 4.04) была ошибка с определением винчестеров более 3.277Mb.
4.23Gb, год 1997-й. [ править код ]
Не всем известное ограничение вытекающее из способов решения "проблемы 528Mb". Чтоб преодолеть барьер 528Mb BIOS могла использовать один из двух способов: "LBA assist translation" или "Bit shift translation ("Large" Mode)". Метод "LBA-трансляции" при наличии в системе LBA-винчестера для совместимости с ПО, использовавшим Int 13h, высчитывал значение CHS по следующему алгоритму:
| Общее число секторов на диске, S_lba | 1 — 1 032 192 | 1 032 192 — 2 064 384 | 2 064 384 — 4 128 768 | 4 128 768 — 8 257 536 | 8 257 536 — 16 450 560 |
| "Пересчитанное" число цилиндров, C | S_lba / (63*16) | S_lba / (63*32) | S_lba / (63*64) | S_lba / (63*128) | S_lba / (63*255) |
| H | 16 | 32 | 64 | 128 | 255 |
| S | 63 | 63 | 63 | 63 | 63 |
| Максимальная ёмкость | 528Mb | 1.06Gb | 2.11Gb | 4.23Gb | 8.42Gb |
однако до появления LBA-винчестеров появилось много не поддерживающих LBA винчестеров ёмкостью больше 528Mb. Для работы с такими винчестерами использовался следующий пересчёт цилиндров:
| Число цилиндров на диске, c | 1 — 1 024 | 1 024 — 2 048 | 2 048 — 4 096 | 4 096 — 8 192 | 8 192 — 16 384 | 16 384 — 32 768 | 32 768 — 65 536 |
| Число головок, h | 1-16 | 1-16 | 1-16 | 1-16 | 1-16 | 1-8 | 1-4 |
| Преобразованное число цилиндров, C | C=c | C=c/2 | C=c/4 | C=c/8 | C=c16 | C=c/32 | C=c/64 |
| Преобразованное число головок, H | H=h | H=h*2 | H=h*4 | H=h*8 | H=h*16 | H=h*32 | H=h*64 |
| Максимальная ёмкость | 528Mb | 1.06Gb | 2.11Gb | 4.23Gb | 8.47Gb | 8.47Gb | 8.47Gb |
в результате BIOS, использующие такую трансляцию для винчестеров 4.23Gb (и больше) и имеющие 16 головок, "переводили" их количество в 256. Однако DOS и Windows95 использовали только значения 0-255 и 256 головок воспринималось ими как "0".
7.93Gb, год 1997-1998-й. [ править код ]
В тех же что и в предыдущем случае BIOS, только более продвинутых, описанная выше проблема обходилась приравниванием числа головок к 15. В результате получалось не 256, а 240 дорожек и максимальный размер диска составлял: 1024*240*63*512 = 7 927 234 560 = 7.93Gb (7.38ГБ)
8.46Gb, год 1998-й. [ править код ]
Вышеописанное ограничение Int 13h. Правда, конфигурации с 256-ю головками не встречались, потому реальное ограничение: 1024*255*63*512 = 8 422 686 720 = 8.42Gb (7.84ГБ)
33.8Gb, год 1999-й, лето. [ править код ]
После исправления в BIOSе "проблемы Int 13h", ограничивающей диски до 8.4Gb, схема адресации стала аналогичной ATA-интерфейсу:
| В режиме CHS | В режиме LBA |
|---|---|
| С максимум = 2^16 = 65536 (16 бит) | 16+4+8=28 бит |
| H максимум = 2^4 = 16 (4 бит) | |
| S максимум = 2^8 = 255 (8 бит) |
Т.е. теоретически можно было работать с самыми большими дисками 137.4Gb. НО, при пересчёте цилиндров по старой схеме, 16 бит не хватит. Например, диск на 41.2Gb с конфигурацией 19 710/16/255, получал от винчестера LBA-значение количества секторов 80 416 800 шт. и при пересчёте по "стандартному" алгоритму с 16-ю головками и 63-мя секторами получалось: 80 416 800 / (16*63) = 79 778 цилиндра. 79 778 > 65 536 (2^16) и поэтому не помещалось в 16 бит. Соответственно использующийся алгоритм с 16-битным делением просто зависал из-за ошибки переполнения. Для решения проблемы нужно было заменить все инструкции 16-битного деления на 32-битные и добавить условие: если LBA-значение количества секторов диска превышает: 65 536x16x63 = 66 060 288 секторов = 33.8Gb (31.5ГБ), то количество секторов приравнивается к 255.
65.5Gb, год 2000-й, зима. [ править код ]
Не все BIOS решили "проблему 32Gb" и в результате была исправлена лишь одна ошибка, связанная с переполнением при 16-битном делении. Дело в том, что для вывода на экран объёма винчестера использовался 16-битный регистр, объём выводился в мегаБайтах, итого максимальный диск мог быть: 2^16 — 1 = 65 535Mb = 65.5Gb (64ГБ). Позже для исправления этой проблемы было сделано следующее условие: до 64Гб — выводить ёмкость в мегаБайтах, выше — в гигаБайтах.
137.4Gb, год 2002-й. [ править код ]
Диски достигли предела стандарта ATA. Для его преодоления нужно менять сам "интерфейс". Что, например, и предложил Maxtor в своей спецификации на UDMA133. —Mixabest 21:19, 24 января 2010 (UTC)
8.4 ГБ (512 байт даёт) [ править код ]
![]()
Сколько байт даёт? Мой Skype плагин в Гугл Хром v16 из кода делает телефонный номер! — ЗЕМЛЕРОЙКА 18:18, 22 декабря 2011 (UTC)






