Ставим lilo на диск D: (E:, F: ...) Версия для печати   


В форумах по Линукс время от времени появляются вопросы такого типа: "Я поставил Линукс на диск D: установил lilo на диск D, выбрал в настройках BIOS последовательность загрузки D,A, но Линукс у меня не грузится - появляется надпись LIL- и на этом все останавливается". Обычно в таких случаях советуют устанавливать lilo в MBR (master boot record - основная загрузочная область) на диске С: (в терминах BIOS или /dev/hda - в терминах Линукс) и сконфигурировать его как мультизагрузчик (т.е. чтобы выбором в меню можно было грузить либо систему установленную на диске C:, либо сам Линукс, который далее будем считать установленным на диске D: он же /dev/hdb он же primary-slave). В некоторых случаях это оказывается неприемлемым - получается что обе системы зависят от того в каком состоянии находится boot-loader (/boot/boot.b) на диске D: (есл и он затерт, то ни одну из систем загрузить не удасться). Бывают и патологические случаи - например на материнской плате битый BIOS, который позволяет грузится только со slave диска (такая ситуация, с которой я столкнулся, и послужила поводом для написания этого текста).
Использовать BIOS configurator в качестве мультизагрузчика особого труда не представляет, но поскольку операции с lilo достаточно рискованные, то начать следует с изготовления загрузочной дискеты (makebootdisk, далее в меню выбираем lilo boot disk и OK - так это делается в Slackware) после чего стоит проверить ее работоспособность, загрузившись с нее. Теперь можно приступать к сочинению конфигурационного файла lilo (пусть он называется /etc/lilo.conf.hdb). В качестве рыбы предлагаю такой вариант (комментарии следуют):

boot = /dev/hdb
disk=/dev/hdb
bios=0x80
lba32
image=/vmlinuz
root=/dev/hdb1
read-only

Стандартные опции - boot диск (тот на который будет установлен lilo) -/dev/hdb, ядро - /vmlinuz расположено на root-partition /dev/hdb1, стандартно смонтированной как read-only. Существенным моментом является то, что диску /dev/hdb поставлен в соответствие адрес BIOS bios=0x80. BIOS нумерует IDE диски последовательно - 0x80 -primary-master, 0x81 - primary-slave, 0x82 - secondary-master ... (для SCSI дисков аналогично, только старшие биты другие) и изменение последовательности загрузки в BIOS сводится к перестановке этих адресов. Таким образом такая конфигурация lilo устанавливает первичный загрузчик в MBR на диске /dev/hdb, однако при загрузке обращение к этому диску будет происходить по адресу 0x80, т.е. как к primary master.

Теперь осталось установить lilo -
lilo -C /etc/lilo.conf.hdb
(опция -C позволяет указывать конфигурационный файл отличный от /etc/lilo.conf) и перегрузится. Затем в BIOS выбираете последовательность загрузки - "D,A" и при благоприятном стечении обстоятельств :) через некоторое время можно будет вводить свой login и пароль.
Этот трюк с disk=... bios=... может оказаться также полезным при переносе (установке) системы с диска на диск. Скажем, у вас есть большой диск на компьютере с установленным Линуксом и вы хотите перенести систему на диск меньшего размера (поэтому низкоуровневое копирование применить не удается), который для этой цели подключен как primary slave к вашему компьютеру и смонтирован, например, в директории /mnt. В таком случае есть два варианта - последовательно копировать корневые директории cp -aP /usr ... /mnt и выдирать "лишние" файлы, либо c нуля устанавливать на него необходимые пакеты (installpkg -root /mnt aaa_base.tgz - так это делается в Slackware). После того как все файлы установлены, остается сделать этот диск загрузочным. Для этого создаете файл /mnt/etc/lilo.conf.hdb примерно такого же вида как и приведенный выше (изменить следует только строчку root=/dev/hda1, если диск будет в итоге стоять как primary-master и Линукс расположен на первой partition) и устанавливаете его

chroot /mnt
lilo -C /etc/lilo.conf.hdb

(chroot нужен для того чтобы boot-loader, boot-backup оказались в /mnt/boot, а не потерли те, что лежат у ваc в /boot). И все - выключайте компьютер и снимайте диск.
Нетрудно сообразить какую последовательность действий нужно совершить в том случае, если вы хотите проверить работоспособность вашей инсталляции Линукса без перестановки диска из компьютер в компьютер.

Автор: geekkoo

Опубликовал: geekkoo
Дата: 25.07.2003
постоянный адрес статьи: http://linuxportal.ru/entry.php/P33_0_3_0/