Главная > Операционные системы > UNIX > Linux
Глава 5 Конфигурирование и создание оптимизированных, безопасных ядер (Часть 2)Инсталляция нового ядра.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" и дайте ему новое имя.
3. Переместитесь в каталог /boot и создайте символические ссылки vmlinuz
и System.map.
Мы должны пересоздать ссылки "vmlinuz" и "System.map" на новую версию ядра. Иначе lilo будет использовать старое ядро. 4. Удалите устаревшие и ненужные файлы из каталога "/boot", чтобы освободить
место на диске:
"module-info" это ссылка на каталог с модулями к старому ядру. Так как мы инсталлируем новое ядро, мы не нуждаемся в потерянных ссылках. Файл "initrd-2.2.xx" содержит инициализационный образ RAM диска, который выступает как система пока не будут доступны диски. Этот файл будет существовать и будет инсталлирован в ходе установки сервера, если вы имеете SCSI диск. Все необходимые драйвера сейчас встроены в ваше монолитное ядро, поэтому спокойно удаляйте этот файл. 5. Создайте новый каталог, который будет содержать все необходимые заголовочные файлы, связанные с ядром, которые будут нужны в дальнейшем при компиляции нового программного обеспечения. Помните, что мы должны создать три символические ссылки в "/usr/include",
которые являются точками входа в заголовочные файлы ядра Linux. Каталог
"/usr/include" содержит все заголовочные файлы вашей системы, которые нужны
для компиляции новых программ. Ссылки asm, linux и scsi используются когда
программам нужно знать некоторые функции времени компиляции ядра инсталлированного
на вашей системе. Программы вызывают другие заголовочные файлы из каталога
"include" когда им нужна специальная информация, зависимости и т.д.
Первое, мы создаем новый каталог "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",
чтобы сделать новое ядро, загружаемым по уолчанию.
Редактируем файл lilo.conf (vi /etc/lilo.conf) и делаем соответствующие
изменения в линии "image=/boot/":
Замечание. Не забудьте удалить строку "initrd=/boot/initrd-2.2.12-20.img",
так как она нам больше ну нужна.
Когда имя нового ядра было внесено в файл "/etc/lilo.conf", как это
было описано выше, мы должны дать следующие команды, чтобы изменения вступили
в силу:
ВАЖНОЕ ЗАМЕЧАНИЕ: Если вы сказали No на вопрос "Unix98 PTY support (CONFIG_UNIX98_PTYS)" во время конфигурирования ядра, то отредактируйте файл "/etc/fstab" и удалите следующую строку: none /dev/pts devpts gid=5,mode=620 0 0 Удаление программ, файлов и строк связанных с модулями.Когда вы инсталлируете Linux в первый раз (как это делали мы) у вас устанавливается модульное ядро. Это означает, что каждый элемент или функция, которые нам нужны, существует в виде модуля и контролируется демоном ядра, который называется kmod. Он автоматически загружает модули и функции в память, когда это нужно, и выгружает их, когда необходимости в них отпадает.Шаг 1. kmod и другие программы, управляющие модулями, включенные в RPM пакет
"modutils" используют файл "conf.modules", который находится в каталоге
"/etc". В этом файле определяется, например, какие Ethernet карты вы имеете
и какие параметры настройки она использует. Так как мы не используем модулей
в нашем новом ядре, мы удаляем файл "conf.modules" и полностью деинсталлируем
пакет "modutils".
Шаг 2. Теперь необходимо редактировать файл "rc.sysinit" и закомментировать все строки, в которых упоминается "depmod -a", вставив в их начало символ "#". Это нужно потому, что при загрузке система читает скрипт "rc.sysinit" для поиска модульных зависимостей. Под Red Hat Linux 6.1 Комментируем строку 260 в rc.sysinit file (vi +260 /etc/rc.d/rc.sysinit):
должна читаться:
Комментируем строки с 272 по 277 в rc.sysinit file (vi +272 /etc/rc.d/rc.sysinit):
должны читаться:
ЗАМЕЧАНИЕ: Процедура описанная выше связана с пакетом initscripts-4_70-1 package дистрибутива Red Hat Linux 6.1. Под Red Hat Linux 6.2 Комментируем строку 243 в rc.sysinit file (vi +243 /etc/rc.d/rc.sysinit):
должна читаться:
Комментируем строки с 255 по 260 в rc.sysinit file (vi +255 /etc/rc.d/rc.sysinit):
должны читаться:
Замечание. Еще раз повторим, вся эта часть ("Удаление программ, файлов
и строк связанных с модулями.") требуется только если вы ответили No на
вопрос "Enable loadable module support (CONFIG_MODULES)" при конфигурировании
ядра.
Когда система перезагрузится и вы подключитесь к серверу, проверьте
версию используемого ядра:
Поздравляем. Создание новой аварийной дискетыПосле перезагрузки сервера, вы должны получить систему с новым ядром. Теоретически, в этот момент, вам надо создать новую "спасательную" дискету с новым ядром. Что бы сделать это сделайте следующее:Подключитесь к системе, вставьте новую дискету и выполните следующую
команду:
Важное замечание. Программа mkbootdisk запускается только для модульных ядер. Так, что вы не можете использовать ее на монолитном ядре, вместо этого создайте аварийную загрузочную дискету так, как это описано ниже. Создание аварийного загрузочного флоппи-диска.Так как создать спасательную дискету можно только с модульными ядрами, мы должны найти другой путь загрузки системы с дискеты если ядро на жестком диске испорчено. Это возможно с помощью аварийной загрузочной дискеты. Вы должны создать ее немедленно после первой удачной загрузки системы и подключения к ней как root.Для создания аварийной загрузочной дискеты сделайте следующее:
Вставьте дискету и форматируйте ее, используя команду:
Шаг 2. Копируйте файл vmlinuz из каталога "/boot" на дискету:
vmlinuz - это символическая ссылка на реальной ядро.
Определяем корневой раздел ядра:
Корневой раздел ядра - это раздел, где находится корневая файловая система.
В этом примере, корневой раздел - "dev/sda12"; на вашей системе это имя
может быть другим.
Устанавливаем корневой раздел ядра:
В качестве корневого раздела ядра используется значение полученной на
предыдущем шаге.
Маркируем корневой раздел как только для чтения:
При инициализации Linux корневая файловая система монтируется только
для чтения. Подобная установка избавит вас от ряда предупреждающих сообщений
и сообщений об ошибках.
Вставьте загрузочную дискету в дисковод A: и перезагрузите систему:
Обновление "/dev" входовЕсли вы добавили новое устройство в вашу систему или провели крупное обновление ядра (например, из версии 2.2.9 к 2.2.15), то необходимо обновить ваши входы в "/proc" для предотвращения проблем с потерянными устройствами. Мы можем решить эту задачу при помощи скрипта MAKEDEV. Он сканирует каталог "/proc", где все устройства связываются с драйверами ядра. Специальная опция "update" позволяет утилите MAKEDEV создать новыеустройства, которые вы сконфигурировали в вашем ядре и удалить ненужные. Для обновления входов в "/proc" выполните следующие команды:
Главная > Операционные системы > UNIX > Linux |