|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Ramazan Ja-Far 2:5020/400 26 May 2002 02:19:10 To : Oleg O. Ossovitskii Subject : Re: LILO: hidden partitions. --------------------------------------------------------------------------------
Hi!
Oleg O. Ossovitskii wrote:
> RJF> ntldr грузит не Linux, а LILO (из файла).
> RJF> В свою очередь, LILO грузит Linux (при этом LILO
> RJF> может лежать на одном винте, а Linux на другом).
>
> это другое дело. Если /boot от линукса лежит на том же разделе, что и
> NT-я то все нормально работает.
Hет, ты пока ещё не въезжаешь. /boot от линукса может лежать
на любом винте.
Что такое LILO? - это 512 байт, один сектор. LILO содержит простой
код, который грузит остаток кода загрузчика (/boot/boot.b) или
перенаправителя (/boot/chain.b). Chain грузит другую ось - через
загрузку её бутсектора или MBR. Boot.b грузит ядро линукса.
/* я могу ошибаться, но в общем процесс такой */
Откуда LILO (эти 512 байт) можеть знать, где брать дополнительные
загрузчики? Кроме того, LILO нужно знать где лежит /boot/message
(чтобы рисовать меню загрузки).
Чтобы не напрягать LILO поиском файлов в файловой системе (чтобы не
пихать в LILO код драйверов файловых систем), всё делается так:
когда мы создаём LILO командой /sbin/lilo, прямо в LILO встраиваются
адреса секторов, в которых лежат нужные ему вещи. Адреса лежат либо
в D(disk)/C/H/S формате, либо в линейном (в зависимости от наличия
опций linear или lba32 в lilo.conf на момент создания LILO).
Hо файлы, нужные LILO, слишком большие (особенно /boot/vmlinuz*) и
их секторные карты целиком в 512 байт не влазят. Поэтому используется
indirection - создаётся отдельный файл карты /boot/map и в LILO
засовывается карта карты :).
Т.е. LILO знает, в каких секторах лежит /boot/map;
прочитав /boot/map, он узнаёт, по каким секторам искать
/boot/vmlinuz* и т.п.
Т.к. адреса секторов хранятся вместе с номером диска (всего 5 байт),
то LILO может поднять файл с любого винта, видимого через BIOS.
Когда ты запускаешь /sbin/lilo, он видит, что /boot лежит на hdc
и вычисляет, что для BIOS hdc==0x81. С учётом этого дела создаётся
сектор LILO, в который пихаются ссылки на сектора 81-го винта.
Понятно?
--
Bye!
Ramazan
--- ifmail v.2.15dev5
* Origin: Svit Online (post does not reflect views of Golden Tele (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/9140ca41727f.html, оценка из 5, голосов 10
|