Инсталляция нового ядра.
1. Копируйте “/usr/src/linux/arch/i386/boot/bzImage” из дерева исходных кодов ядра в каталог “/boot” и дайте ему новое имя.
[root@deep linux]# cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-kernel.version.number
Замечание. Я рекомендую название подобное vmlinuz-2.2.14, потому что если вы хотите создать новый спасательный или загрузочные диски при помощи mkbootdisk, то она требует некоторой точности, например vmlinuz-2.2.14 вместо vmlinuz-2.2.14.a
2. Копируйте “/usr/src/linux/System.map” из дерева исходных кодов ядра в каталог “/boot” и дайте ему новое имя.
[root@deep linux]# cp /usr/src/linux/System.map /boot/System.map-kernel.version.number
3. Переместитесь в каталог /boot и создайте символические ссылки vmlinuz и System.map.
[root@deep linux]# cd /boot
[root@deep /boot]# ln -fs vmlinuz-kernel.version.number vmlinuz
[root@deep /boot]# ln -fs System.map-kernel.version.number System.map
Мы должны пересоздать ссылки “vmlinuz” и “System.map” на новую версию ядра. Иначе lilo будет использовать старое ядро.
4. Удалите устаревшие и ненужные файлы из каталога “/boot”, чтобы освободить место на диске:
[root@deep /boot]# rm -f module-info
[root@deep /boot]# rm -f initrd-2.2.xx.img
“module-info” это ссылка на каталог с модулями к старому ядру. Так как мы инсталлируем новое ядро, мы не нуждаемся в потерянных ссылках. Файл “initrd-2.2.xx” содержит инициализационный образ RAM диска, который выступает как система пока не будут доступны диски. Этот файл будет существовать и будет инсталлирован в ходе установки сервера, если вы имеете SCSI диск. Все необходимые драйвера сейчас встроены в ваше монолитное ядро, поэтому спокойно удаляйте этот файл.
5. Создайте новый каталог, который будет содержать все необходимые заголовочные файлы, связанные с ядром, которые будут нужны в дальнейшем при компиляции нового программного обеспечения.
Помните, что мы должны создать три символические ссылки в “/usr/include”, которые являются точками входа в заголовочные файлы ядра Linux. Каталог “/usr/include” содержит все заголовочные файлы вашей системы, которые нужны для компиляции новых программ. Ссылки asm, linux и scsi используются когда программам нужно знать некоторые функции времени компиляции ядра инсталлированного на вашей системе. Программы вызывают другие заголовочные файлы из каталога “include” когда им нужна специальная информация, зависимости и т.д.
[root@deep /]# mkdir -p /usr/src/linux-2.2.14/include
[root@deep /]# cp -r /usr/src/linux/include/asm-generic /usr/src/linux-2.2.14/include
[root@deep /]# cp -r /usr/src/linux/include/asm-i386 /usr/src/linux-2.2.14/include
[root@deep /]# cp -r /usr/src/linux/include/linux /usr/src/linux-2.2.14/include
[root@deep /]# cp -r /usr/src/linux/include/net /usr/src/linux-2.2.14/include
[root@deep /]# cp -r /usr/src/linux/include/video /usr/src/linux-2.2.14/include
[root@deep /]# cp -r /usr/src/linux/include/scsi /usr/src/linux-2.2.14/include
[root@deep /]# rm -rf /usr/src/linux
[root@deep /]# cd /usr/src
[root@deep src]# ln -s /usr/src/linux-2.2.14 linux
Первое, мы создаем новый каталог “linux-2.2.14”, базирующийся на версии ядра, которое мы инсталлируем для более легкой интерпретации, затем мы копируем туда каталоги asm-generic, asm-i386, linux, net, video, и scsi из “/usr/linux/include”. После этого мы удаляем каталог в котором компилировали новое ядро и создаем в “/usr/src” ссылку “linux”, указывающую на “linux-2.2.14”. Последний шаг позволяет сэкономить место на диске. Ядро в разархивированном виде занимает около 75M, а каталоги “include” – 3M.
6. В заключении нам необходимо редактировать файл “/etc/lilo.conf”, чтобы сделать новое ядро, загружаемым по уолчанию.
Шаг 1.
Редактируем файл lilo.conf (vi /etc/lilo.conf) и делаем соответствующие изменения в линии “image=/boot/”:
[root@deep /]# vi /etc/lilo.conf
boot=/dev/sda
map=/boot/map
install=/boot/boot.b
prompt
timeout=00
restricted
password=somepasswd
image=/boot/vmlinuz-kernel.version.number #(добавьте здесь имя вашего нового ядра).
label=linux
root=/dev/sda6
read-only
Замечание. Не забудьте удалить строку “initrd=/boot/initrd-2.2.12-20.img”, так как она нам больше ну нужна.
Шаг 2.
Когда имя нового ядра было внесено в файл “/etc/lilo.conf”, как это было описано выше, мы должны дать следующие команды, чтобы изменения вступили в силу:
[root@deep /]# /sbin/lilo -v
LILO version 21, [Copyright 1992-1998 Werner Almesberger
Reading boot sector from /dev/sda
Merging with /boot/boot.b
Boot image: /boot/vmlinuz-2.2.14
Added linux *
/boot/boot.0800 exits – no backup copy made.
Writing boot sector.
ВАЖНОЕ ЗАМЕЧАНИЕ: Если вы сказали No на вопрос “Unix98 PTY support (CONFIG_UNIX98_PTYS)” во время конфигурирования ядра, то отредактируйте файл “/etc/fstab” и удалите следующую строку: none /dev/pts devpts gid=5,mode=620 0 0