Главная

Интернет
сети
Windows
Linux
Bios
Koding
Hard
VIDEO
Sound
Soft
разное
реестр

карта сайта

фотоальбом

Web мастеру

Гостевая

друзья сайта

о сайте

 

 

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.

 

С вопросами, пожеланиями и предложениями обращайтесь по адресу

E-mail

ICQ: 262309330

30.07.2003

Идея и реализация: Астахов Николай

Свои статьи подходящие под общую тематику сайта можете присылать сюда.

Наиболее интересные из них будут помещены на сайте с обязательным указанием авторства.

Hosted by uCoz