|
141001 г.Мытищи МО Ул.Институтская д:1 ком:101 (095) 588-52-39, 588-55-62 E-mail: [email protected] |
Сервер Лаб. Космической информатики каф.ВТ Московский Государственный Университет Леса
|
---|
Когда система загружается , BIOS считывает сектор 0 ,более известный под названием MBR - Master Boot Record(Главная Загрузочная Запись) с первого диска (или флопи-дисковода или CD-ROM), и передает управление на код содержащийся в нём - обычно это программа загрузчик. Обычно такие мини-программы не имеют собственного драйвера диска и используют соответствующие сервисы , предоставляемые BIOS. Это означает , что ядро Линукс , может быть загружено только если оно помещается в пределах первых 1024 цилиндров.
Это проблемы решается весьма просто , достаточно разместить ядро ( и сопутствующие файлы,используемые в процессе загрузки , такие как map файлы LILO), на разделе расположенном целиком в пределах первых 1024 цилиндров , к которым может получить доступ BIOS. Обычно это первый или второй раздел диска.
Итак : создайте небольшой раздел, скажем 10 МБ размером , так чтобы было
достаточно места для всех ядер , убедитесь , что он целиком расположен в
пределах первых 1024 цилиндров первого , либо второго диска. Смонтируйте его как
/boot
чтобы LILO держало там свои файлы.
Другой аспект проблемы - это то что начальный загрузчик и BIOS должны иметь
одинаковое представление о геометрии диска. LILO опрашивает ядро на предмет
геометрии , но все больше авторов драйверов дисков , следуют дурной привычке -
брать сведения о геометрии из таблицы разделов , вместо того , чтобы указать
LILO , какую геометрию будет использовать BIOS. Поэтому , сведения о геометрии ,
предоставленные ядром , бесполезны. В таких случаях может помочь установка опции
`linear
'. Данная опция включает специальный режим LILO , в котором
ему не требуется информация о геометрии диска во время установки загрузчика (оно
хранит линейные адреса в maps файлах) , но производит преобразование линейных
адресов во время загрузки. Существует только одна проблема связанная с
использованием данной опции - LILO больше не знает о номерах цилиндров и не
сможет предупредить вас , если часть ядра перекроет лимит в 1024 цилиндра , в
итоге вы можете получить не загружаемую систему.
Тим Виллиамс пишет : 'Мой Линукс раздел располагался в пределах 1024 цилиндров и все равно не хочет работать.Сначала когда раздел располагался в пределах 1 Гб все работало нормально. Как такое может быть ? Это был SCSI диск с контроллером AHA2940UW, который имел следующие параметры : H=64, S=32 (каждый цилиндр 1 МиБ = 1.05 МБ) ,либо H=255, S=63 ( цилиндры по 8.2 МБ), в зависимости от установок в BIOS и фирменном ПО. Без сомнения BIOS полагал ,что 1024 цилиндровый лимит - это 1 ГиБ ( он использовал первые значения) , в то время как Линукс и LILO использовали последнии и LILO полагало что этот лимит находиться на 8.4 ГБ