Геометрия диск (с головками,цилиндрами и дорожками) это
анархаизмы оставшиеся в наследство от времен MFM и RLL. В те
дни эти величины отражали физические параметра диска. Сегодня
с IDE и SCSI, никому не интересна настоящая , физическая геометрия
диска.
По настоящему, количество секторов на дорожку переменная величина,
чем ближе к внешнему кругу диска , тем она больше, поэтому
величина секторов/дорожка всегда не настоящая.
В тоже время команда IDE - INITIALIZE DRIVE PARAMETERS (91h)
служит для того чтобы сказать диску , сколько головок и секторов/
дорожку он должен иметь.
Для современного диска совершенно нормальна ситуация когда в
действительности он имеет 2 головки , сообщает BIOS , что иx 15-16,
а BIOS убеждает программы, что на самом деле головок 255.
Для пользователя удобнее всего представлять диск , как линейный
массив секторов , пронумерованных по порядку, а задачу нахождения
того , где расположен искомый сектор - оставить фирменному ПО.
Такая линейная нумерация получила название LBA.
Таким образом на сегодняшний день концептуальная картина такова,
DOS, или менеджер загрузки, сообщают BIOS значения c,h,s. BIOS
преобразует эти значения в LBA , используя фальшивую геометрию диска
,которую использует пользователь. Если диск воспринимает LBA то эта величина
используется для чтения/записи , иначе она преобразуется назад
в c/h/s и используется.
Заметим что при использовании термина LBA могут возникнуть некоторые
неточности, т.к. термин LBA - в оригинале означает 'Linear Block Addressing'
(в противоположность CHS адресации).
В BIOS Setup он означает схему преобразования , также иногда называемую
'поддержка LBA'.См. `
The 8.4 GB limit
'
Иногда тоже самое срабатывает , когда фирменная прошивка не поддерживает
LBA , но BIOS знает о преобразовании. (В SETUP это часто обозначается
как 'Large').Теперь BIOS будет предоставлять геометрию C/H/S операционной
системе, и использовать C`,H`,S` при общении с контроллером диска.
Обычно S=S`,C=C`/N и H=H`*N,где N это наименьшая степень двойки,
которая приблизит C` к 1024 (так чтобы были минимальные потери при
переворачивание выражения C`=C/N).
Это позволяет получить доступ к 7.8 ГиБ.
Третья опция в Setup - это обычно 'Normal', означающая что трансляция
не производиться.
Если ваш BIOS не поддерживает режимы 'Large' или 'LBA',то существует
несколько софтверных решений проблемы. Менеджеры Дисков,такие как
OnTrack или EZ-Drive замещают процедуры BIOS для работы с дисками,
своими собственными. Часто такие программы размещают свой код
в MBR и последующих секторах (OnTrack называет этот код DDO:
Dynamic Drive Overlay - Динамическое Замещение Диска),так
что он загружается раньше любой операционной системы.
Правда такой подход может создать проблемы при попытки загрузки с дискеты.
Достигаемый эффект примерно тот-же что и при преобразующим BIOS'ом.
Отрицательная сторона использования менеджеров дисков
- сложности возникающие при совмещении
нескольких операционных систем на одном диске.
Линукс поддерживает OnTrack Disk Manager с версии 1.3.14,
и EZ-Drive с версии 1.3.29.
Более детально это описано далее.
Emanual.ru – это сайт, посвящённый всем значимым событиям в IT-индустрии: новейшие разработки, уникальные методы и горячие новости! Тонны информации, полезной как для обычных пользователей, так и для самых продвинутых программистов! Интересные обсуждения на актуальные темы и огромная аудитория, которая может быть интересна широкому кругу рекламодателей. У нас вы узнаете всё о компьютерах, базах данных, операционных системах, сетях, инфраструктурах, связях и программированию на популярных языках!