Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

Next Previous Contents

6. Загрузка

Когда система загружается , BIOS считывает сектор 0 ,более известный под названием MBR - Master Boot Record(Главная Загрузочная Запись) с первого диска (или флопи-дисковода или CD-ROM), и передает управление на код содержащийся в нём - обычно это программа загрузчик. Обычно такие мини-программы не имеют собственного драйвера диска и используют соответствующие сервисы , предоставляемые BIOS. Это означает , что ядро Линукс , может быть загружено только если оно помещается в пределах первых 1024 цилиндров.

Это проблемы решается весьма просто , достаточно разместить ядро ( и сопутствующие файлы,используемые в процессе загрузки , такие как map файлы LILO), на разделе расположенном целиком в пределах первых 1024 цилиндров , к которым может получить доступ BIOS. Обычно это первый или второй раздел диска.

Итак : создайте небольшой раздел, скажем 10 МБ размером , так чтобы было достаточно места для всех ядер , убедитесь , что он целиком расположен в пределах первых 1024 цилиндров первого , либо второго диска. Смонтируйте его как /boot чтобы LILO держало там свои файлы.

6.1 LILO и опция `linear' o

Другой аспект проблемы - это то что начальный загрузчик и BIOS должны иметь одинаковое представление о геометрии диска. LILO опрашивает ядро на предмет геометрии , но все больше авторов драйверов дисков , следуют дурной привычке - брать сведения о геометрии из таблицы разделов , вместо того , чтобы указать LILO , какую геометрию будет использовать BIOS. Поэтому , сведения о геометрии , предоставленные ядром , бесполезны. В таких случаях может помочь установка опции `linear'. Данная опция включает специальный режим LILO , в котором ему не требуется информация о геометрии диска во время установки загрузчика (оно хранит линейные адреса в maps файлах) , но производит преобразование линейных адресов во время загрузки. Существует только одна проблема связанная с использованием данной опции - LILO больше не знает о номерах цилиндров и не сможет предупредить вас , если часть ядра перекроет лимит в 1024 цилиндра , в итоге вы можете получить не загружаемую систему.

6.2 1024 цилиндра это не 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 ГБ


Next Previous Contents