Linux
Park
Создание аварийной загрузочной
дискеты.
Первый прединсталляционный-шаг создание аварийной загрузочной дискеты (если
ее у вас еще нет). Самый простой путь v это
воспользоваться командой mkbootdisk.
Первое, надо выяснить какое ядро
вы сейчас используете. Для этого
просмотрите файл ?/etc/lilo.conf¦ и посмотрите
какой образ загружается. У меня этот файл
выглядит так:
[root@deep]# cat /etc/lilo.conf
boot=/dev/sda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
image=/boot/vmlinuz-2.2.12-20
label=linux
root=/dev/sda6
initrd=/boot/initrd-2.2.12-20.img
read-only
Найдите в нем образ ядра, который
вы используете. Обычно, он имеет метку linux. В
нашем примере это ?/boot/vmlinuz-2.2.12-20¦. Теперь
просто вставьте дискетку 1,44-- и
подключитесь к системе как пользователь root.
[root@deep]# mkbootdisk --device /dev/fd0 2.2.12-20
Insert a disk in /dev/fd0. Any information on the disk will be lost.
Press <Enter> to continue or ^C to abort:
После выполнения этих
рекомендаций, вы будете иметь загрузочную
дискету с известным работающим ядром, на
случай, если обновление пройдет неудачно. Я
рекомендую перезагрузить систему с этой
дискеты, чтобы убедиться, что все в порядке.
Деинсталляция и оптимизация.
Шаг 1.
Скопируйте архив ядра в /usr/src и
перейдите туда:
[root@deep]# cp linux-version_tar.gz /usr/src/
[root@deep]# cd /usr/src/
Если вы уже инсталлировали ядро из tar
архива.
Эти шаги нужно выполнять, если у
вас уже были установлены ранее исходные
кодя ядра из tar.gz. Если это первое обновление
ядра, то надо деинсталлировать два rpm пакета:
kernel-headers-version.i386.rpm и kernel-version.i386.rpm.
Удаление символической ссылки.
[root@deep]# rm -rf linux
Удаление текущий каталог с
заголовочными файлами ядра
[root@deep]# rm -rf linux-2.2.xx
Удаление каталога с модулями
ядра:
[root@deep src]# rm -rf /lib/modules/2.2.xx
Замечание. Удаление старых
модулей ядра необходимо, если вы до этого
устанавливали модульное ядро. Если в ?/lib¦ вы
не находите каталога с модулями, значит
ядро у вас было монолитных.
Если у вас были установлены стандартные RPM
пакеты с ядром.
Если у вас были установлены
стандартные RPM пакеты с ядром вместо .tar.gz
архива, потому что вы только, что завершили
установку нового сервера или использовали
RPM пакеты для обновления вашей системы,
тогда используйте следующие команды для
деинсталляции ядра.
Для проверки, что они у вас
установлены дайте команду.
[root@deep]# rpm -qa | grep kernel
kernel-headers-2.2.12-20.i386.rpm
kernel-2.2.12-20.i386.rpm
Для деинсталляции RPM пакетов:
[root@deep src]# rpm -e --nodeps kernel-headers
kernel
cannot remove /usr/src/linux-2.2.xx - directory not empty
cannot remove /lib/modules/2.2.xx - directory not empty
[root@deep src]# rm -rf /usr/src/linux-2.2.xx/
[root@deep src]# rm -rf /lib/modules/2.2.xx/
Мы вручную удалили каталоги ?/usr/src/linux-2.2.12¦
и ?/lib/modules/2.2.12¦, которые останутся после
деинсталляции rpm пакетов.
Шаг 2.
Разворачивание архива с ядром Linux
Сейчас мы будем разворачивать
исходные коды нового ядра из tar.gz затем
удалим Linux tar-архив.
[root@deep]# tar xzpf linux-version_tar.gz
[root@deep]# rm -f linux-version_tar.gz
Шаг 3.
Увеличение числа задач (оптимизация).
Для увеличения числа разрешенных
задач (максимальное число процессов для
пользователя) вам нужно редактировать файл
"/usr/src/linux/include/linux/tasks.h" и изменить
следующий параметр:
Редактируйте tasks.h file (vi +14 /usr/src/linux/include/linux/tasks.h)
и измените:
NR_TASKS из 512 в 3072
MIN_TASKS_LEFT_FOR_ROOT из 4 в 24
Замечание. 1. Значение NR_TASKS
определяет максимальное число
идентификаторов задач (процессов), которое
ядро будет назначать каждому пользователю.
Увеличение этого числа приведет к
увеличению количества соединений от
клиента к серверу (например, веб-сервер
сможет обслуживать большее количество
запросов).
2. Linux защищен от того, чтобы распределить
все свободные области памяти процессов
обычным пользователям. С помощью опции
MIN_TASKS_LEFT_FOR_ROOT резервируются подобные
области для root. (24 хорошее значение).
Шаг 4.
Оптимизация ядра.
Для оптимизации ядра Linux под вашу
конкретную архитектуру CPU и включения
оптимизационных флагов вам надо
редактировать файл "/usr/src/linux/Makefile" и
изменить следующие параметры:
Редактируйте Makefile (vi +18 /usr/src/linux/Makefile)
и измените следующую строку:
HOSTCC =gcc
Должна быть:
HOSTCC =egcs
Редактируйте Makefile (vi +25 /usr/src/linux/Makefile)
и измените следующую строку:
CC =$(CROSS_COMPILE)gcc -D__KERNEL__ -I$(HPATH)
Должна быть:
CC =$(CROSS_COMPILE)egcs -D__KERNEL__ -I$(HPATH)
Редактируйте Makefile (vi +90 /usr/src/linux/Makefile)
и измените следующую строку:
CFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer
Должна быть:
CFLAGS = -Wall -Wstrict-prototypes -O9 -funroll-loops
-ffast-math -malign-double -mcpu=pentiumpro -march=pentiumpro -fomit-frame-pointer
-fno-exceptions
Редактируйте файл Makefile (vi +19 /usr/src/linux/Makefile)
и измените следующую строку:
HOSTCFLAGS =-Wall -Wstrict-prototypes -O2 -fomit-frame-pointer
Должна быть:
HOSTCFLAGS =-Wall -Wstrict-prototypes -O9 -funroll-loops
-ffast-math -malign-double -mcpu=pentiumpro -march=pentiumpro -fomit-frame-pointer
-fno-exceptions
Они включают агрессивные
оптимизационные трюки, которые могут и не
работать со всеми ядрами. Пожалуйста, если
оптимизационные флаги приведенные выше не
работают у вас, не пытайтесь во чтобы то ни
стало заставить их работать. Я не хочу
сделать вашу систему нестабильной, подобно
Microsoft Windows.
|