17.5.7. Установка ядра
17.5.7. Установка ядра
После этого остается сделать последний шаг - установить ядро и перезагрузиться. Для установки ядра вы должны иметь права суперпользователя. (Хотя в начале главы и было сказано, что для компиляции ядра надо иметь права суперпользователя, однако все предыдущие шаги можно было выполнить и от имени обычного пользователя. Не стоит работать от имени суперпользователя без необходимости!)
Разработчики рекомендуют вначале сохранить где-нибудь копию старого ядра на случай, если что-то пойдет не так, как задумано. Эта рекомендация особенно актуальна для случая, если вы ставите ядро из нестабильной ветки, поскольку такие версии могут содержать неотлаженный код. Кроме самого ядра надо сделать backup-копии модулей, соответствующих ядру. Если вы устанавливаете новое ядро с тем же самым номером версии, что и у работающего в Вашей системе ядра, сделайте резервную копию всего каталога с модулями перед выполнением команды make modules_install.
Для того, чтобы иметь возможность загружать новое ядро, копию образа ядра (которая после компиляции создана в виде файла…/linux/arch/i386/boot/bzImage) необходимо поместить туда, где у вас расположены загружаемые ядра (обычно это каталог /boot).
Скопируйте в каталог /boot три файла: файлы System.map и vmlinux, появившиеся в каталоге…linux, и файл…/linux/arch/i386/boot/bzImage. Я при копировании добавил к их именам номер версии ядра, превратив их, соответственно, в System.map-2.4.2, vmlinux-2.4.2 и vmlinuz-2.4.2, чтобы не путать с теми ядрами, которые уже были в системе ранее. Переименовывать bzImage в vmlinuz в принципе не обязательно, потому что образ ядра может иметь как то, так и другое имя, и обычно располагается либо в корневом каталоге (/), либо в каталоге /boot.
Далее нам осталось только обеспечить загрузку нового ядра с помощью lilo. Для этого надо вначале подкорректировать файл /etc/lilo.conf. Ваш файл /etc/lilo.conf может иметь примерно такой вид:
boot = /dev/hda2
compact
delay = 50
root = current
image = /boot/vmlinuz-2.2.11-4bc
label = linux
read-only
other = /dev/hda1
table = /dev/hda
label = dos
Начиная со строки image, идут секции конфигурационного файла, соответствующие разным операционным системам, которые должны загружаться по выбору пользователя. В каждой такой секции имеется строка label. В этой строке записывается имя, которое вводится в ответ на приглашение LILO и служит для выбора пользователем загружаемой ОС.
Скопируйте секцию image и замените в новой секции название образа ядра и метку. Файл /etc/lilo.conf примет следующий вид:
boot = /dev/hda2
compact
delay = 50
root = current
image = /boot/vmlinuz-2.2.11-4bc
label = linux
read-only
image = /boot/vmlinuz-2.4.2
label = linux-2.4.2
read-only
other = /dev/hda1
table = /dev/hda
label = dos
После того, как вы откорректировали файл /etc/lilo.conf, необходимо выполнить команду /sbin/lilo, чтобы изменения вступили в силу. Эта команда (которая в руководстве называется map-installer) обновляет карту загрузки системы. Прежде, чем запускать /sbin/lilo для модификации загрузочных процедур, выполните эту команду с параметром -t. При этом будет выполнена вся процедура инсталляции загрузчика, кроме изменения map-файла и записи модифицированного загрузочного сектора, т. е. выполнен тест нового варианта. Если добавить еще опцию -v, это позволит убедиться в том, что сделанные Вами изменения разумны.
Не стоит полностью убирать возможность загрузки предыдущей, работающей версии ядра, тем более, что это никак не мешает загрузке нового ядра, ведь LILO обеспечивает многовариантную загрузку.
Все! После переустановки LILO командами
[root]# /sbin/lilo -t -v
[root]# /sbin/lilo
Вы можете перезагрузить компьютер и выбрать при загрузке новое ядро.