Безопасность и оптимизация Linux.Редакция для Red Hat

Инсталляция нового ядра.


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


Содержание раздела