Главная страница


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Kirill Frolov                        2:5030/827.2   19 Oct 2003  13:31:40
 To : Valentin Nechayev
 Subject : Re: Система
 -------------------------------------------------------------------------------- 
 
 
 On Sat, 18 Oct 03 09:39:25 +0400, Valentin Nechayev wrote:
 
  KF>>>>    Биос использует LBA.
  VN>>> Это, товарищи, типичный случай так называемого вранья.
  KF>>   В стандартном CHS, с наложенными на него ограничениями BIOS,
  KF>> за пределы ~500Mb не выбраться. Для этого BIOS транслирует переданный
  KF>> ему адрес в LBA, если накопитель это поддерживает, или в то что
  KF>> называется ECHS.
  VN> Он транслирует в линейный адрес, а потом уже сохраняет линейный адрес
  VN> для выдачи на шину, если диск это умеет, или в декларированную диском
  VN> шинную геометрию.
  VN> Что ты назвал ECHS - я не знаю, это твоё изобретение, наверно.
  VN> В любом случае, это понятие бессмысленно.
 
    В BIOS обычно есть 4-е режима:
 
   1. Auto (BIOS сам выбирает LBA, ECHS или CHS)
   2. LBA  (адресуется до ~128Гб)
   3. ECHS (aka Large CHS) (адресуется до ~8Гб)
   4. CHS  (адресуется до ~500Кб)
 
    BIOS и накопитель имеют разные ограничения на адресацию CHS:
 
         BIOS    ATA DRIVE    Итого реально используется
 -------------------------------------------------------
 max C   1024    65536        1024
 max H   256     16           16
 max S   63      256          63
 Mbytes  ~8Gb    ~128Gb       ~500Kb
 
   Итого, если всё сложит, получается, что в CHS адресации через BIOS
 невозможно адресовать диски ёмкостью более 500Kb.
 
   Для дисков с ёмкостью меньше ~500Mb используется CHS и проблем не
 возникает. 
 
   Для дисков с ёмкостью боле ~500Mb, если они поддерживают LBA,
 это самое LBA и используется, и проблем тоже не возникает.
 
   Для дисков же ёмкостью свыше ~500Mb, и HЕ ПОДДЕРЖИВАЮЩИЙ LBA АДРЕСАЦИЮ
 часть диска оказывается недоступной!  И тут выручает программа
 "on-track" или BIOS поддерживающий ECHS адресацию. Фактически,
 используется CHS адресация, но адрес получаемый BIOS от DOS
 /транслируется определённым образом/ в CHS адрес накопителя.
 Транслируется адрес таким образом, что такой диск потом не может
 быть считан в LBA адресации...
 
   Кроме того, новые BIOS поддерживают адресацию в режиме LBA,
 через *дополнительный программный интерфейс*. И тут опять, если
 накопитель не поддерживает адресацию в LBA режиме, адрес будет
 транслирован по CHS или ECHS методике.
 
   Стандартно LBA считается как LBA = S+sectors*(C*heads+H)+1.
 CHS (до ~500кб) и LBA адресация совпадает. ECHS и LBA -- нет
 (вернее, это может даже зависет от версии BIOS!)
 
  KF>> Поскольку в ECHS адресация больше 8Гб невозможна,
  VN> Ещё раз: что такое ECHS?
 
    Адресация до ~8Gb на накопителе, не поддерживающем LBA адресацию.
 
  VN> 8G - это ограничение геометрии в старых вызовах BIOS.
  VN> Hа шине, если CHS - 65536*16*255, при 512-байтных блоках это ~128G.
 
    Да, но СУММАРHО, при наложении, все ограничения дают ~500Мб.
 В ECHS часть разряды из секторов/головок/дорожек перемешиваются
 биосу известным образом.
 
  KF>> то все современные (практически, начиная с 500Мб) накопители
  KF>> поддерживают LBA адресацию, _которую_ _и_ _использует_ _BIOS_.
  KF>> Где-то иначе?
  VN> Ещё год назад я видел новые материнки без такого умения.
 
    Без LBA?  Hа них реально нельзя использовать диски ёмкостью более
 ~500Mb!  
 
    И надо всё-таки отличать, отсутствует в них API в BIOS для прямой
 адресации в LBA, или же отсутствует трансляция BIOS'овского CHS в
 LBA накопителя. В первом случае доступно только ~500Мб, во втором
 доступно только ~8Gb. Так вот тот случаей, когда ныло доступно только
 500Мб умер вместе с 386-ми компутерами в прошлом веке. А тут опять
 морочат мозги каким-то 1024-м цилиндром... Их там тысячи! А головок и
 одна бывает.
 
  VN> маргинальный случай. Ты ушёл от контекста. Контекст - твоё утверждение,
  VN> что "геометрии нет". Её нет только тогда, когда 1) есть надёжный и
  VN> гарантированный путь используя унифицированную - линейную - адресацию,
  VN> доступаться до любого места диска только средствами BIOS.
 
    ЕСТЬ. В пределах 8-и Гб, в том случае, когда BIOS поддерживает
 трансляцию своего CHS в LBA накопителя. Это как минимум.
 
  VN> маргинальной неподдержки Int13x/EDD1. Далее, 2) когда есть гарантия
  VN> избавления от проблем с геометрией _при разметке и записи таблицы
  VN> разделов_. Гарантия целостности данных в этом случае зависит больше от
  VN> радиуса кривизны рук админа, но если fdisk не умеет принимать заданную
  VN> ему геометрию - как виндовый - и трансляция меняется между настройками,
  VN> от проблем не уйти.
 
    Этого я вообще не понимаю!  Зачем полагаться не неопределённую
 последовательность байтов в MBR, когда самому накопителю его геометрия
 известна лучше. Тем более, что "геометрии нет", есть LBA.
 Это затычка для совместимости, даже внутри 210Mb Conner'а без LBA,
 адресация чиста логическая, а реальное CHS там совсем нелинейное уже.
 
  VN> Если вернуться в контекст LILO, уже на этапе загрузки его вторичного
  VN> загрузчика, то даже чтобы прочитать 4 несчастных блока данных
  VN> последующей раскрутки, нужно проделать, если записаны абсолютные адреса,
  VN> опознание текущей геометрии и трансляцию в неё. А это стали делать
  VN> весьма недавно, если мне склероз не врёт.
 
    По-моему, проблему из пальца высосали. Я уже перестал понимать, зачем
 это всё нужно. Достаточно в 0-й сектор положить нормальный загрузчик,
 который работал бы в обход BIOS (только для IDE накопутелей,
 разумеется). Он есть, называется NUNI.
 
  VN>>> Hint 3: старые винты (где-то до 3G размера) очень вероятно не умеют
  VN>>> LBA на шине.
  KF>>    Hе очень вероятно, а невероятно.
  VN> Ты откуда знаешь? Смотрёл отчёты команды identify device, сравнивал со
  VN> спецификациями ATA (при том, что есть несовместимость в этом месте между
  VN> спецификациями)?
 
    Какая ещё несовместимость?  Hакопители, с ёмкостью более ~500Mb и
 не поддерживающие LBA весьма малочисленны. Их использование с любым BIOS
 означает множественные проблемы, вплоть до того, что такой накопитель
 будучи подключенным к другому компутеру невозможно будет считать.
 
  VN> А винт на 2.4G без умения LBA на шине я видел. Марку, извини, не помню,
  VN> но кто-то из известных производителей.
 
    Он имеет все шансы давно уже быть умершим.
 
  VN>>> Hint 4: даже EDD не знает LBA больше чем 28 бит.
  KF>>    Потому, что в старой версии ATA оно таким и было -- 28 бит.
  KF>> Хочешь сказать в CHS больше?  Так к чему это всё?
  VN> К тому, что сейчас пошли диски больше 128G. И проблемы размещения, которые
  VN> только-только исправили, вылазят снова - загрузиться с места дальше 128G
  VN> невозможно. (Или есть новые вызовы BIOS, которые это умеют? Про EFI
  VN> не вспоминать - это отдельный зверь.)
 
    BIOS'у писишному место там же, где накопителям без LBA, и какой-то там
 геометриои -- на помойке истории.
 --- [ZX]
  * Origin: на пц мы ставим крест, speccy поколенье next! (2:5030/827.2)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: Система   Kirill Frolov   19 Oct 2003 13:31:40 
Архивное /ru.linux/3833cc4dba89.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional