Эта команда скопирует все необходимые файлы для загрузки на свои места. Загляните в директорию /boot
. Здесь можно найти несколько файлов, в том числе и загрузчик для новой версии ядра. Их легко можно определить по номеру. Например, я компилировал ядро 2.6.10, и у меня появились файлы vmlinuz-2.6.10 и initrd-2.6.10.img.3.8.4. Настройка загрузчика
Теперь посмотрим, как можно настроить загрузку нового ядра, оставив при этом возможность пользоваться старыми версиями. Для этого нужно отредактировать файл /etc/lilo.conf
, добавив в конец файла следующие строки:image=/boot/vmlinuz-2.6.10
label=Linux Kernel 2.6.10
initrd=initrd-2.6.10.img
read-only
root=/dev/hda0
В первой строке находится путь к ядру. Вы должны указать правильный путь, а точнее, имя файла, которое будет отличаться номером версии. Параметром label
initrd
определяет загрузчик. Последняя строка указывает корневой диск. Введите такое же значение, как и у старого ядра. В вашем загрузчике уже должна быть подобная строка, и она одинакова для обеих систем.После изменения конфигурационного файла /etc/lilo.conf
необходимо прописать изменения в загрузочную область. Для этого выполните командуlilo
.Перезагрузите систему, и теперь при старте компьютера вы сможете выбирать, какое ядро загружать. При этом будут использоваться одни и те же конфигурационные файлы, что очень удобно. Если новое ядро окажется неработоспособным, достаточно перезагрузить компьютер со старым ядром и продолжить работу до выхода обновлений.
3.8.5. Работа с модулями
Преимущество модульной сборки ядра заключается в том, что вы можете изначально включить только самые необходимые функции и тем самым уменьшить потенциальные уязвимости, которыми может воспользоваться хакер. Но при этом мы должны иметь возможность управлять модулями (так же, как и сервисами).
Система должна загружаться только с теми модулями, которые применяются. Все остальные должны подгружаться по мере необходимости и отключаться, когда не используются.
С помощью команды lsmod
Module Size Used by Not tainted
binfmt_misc 7428 1
autofs 11812 0 (autoclean) (unused)
tulip 42240 1
ipchains 42216 6
ide-cd 30240 0 (autoclean)
cdrom 32000 0 (autoclean) [ide-cd]
ext3 62284 1
jbd 39804 1 [ext3]
Очень трудно разобраться, какие модули нужны в системе, а какие нет, А ведь необходимо загружать только то, что действительно используется, иначе увеличивается время старта системы, понапрасну расходуются ресурсы компьютера и т.д. Так как же в этом разобраться? Необходимо знать каждый модуль в лицо и понимать, для чего он нужен.
Получить информацию о модуле помогает команда modinfo
modinfo ext3
В ответ на это мы увидим примерно следующее:
filename: /lib/modules/2.4.18-5asp/kernel/fs/ext3/ext3.о
description: "Second Extended Filesystem with journaling extensions"
author: "Remy Card, Stephen Tweedie, Andrew Morton, Andreas Dilger,
Theodore Ts'o and others"
license: "GPL"
parm: do_sync_supers int, description "Write superblocks
synchronously"
Таким образом, нам становятся известными имя и расположения файла, описание, автор, лицензия и т.д. Количество информации сильно зависит от модуля, и если честно, в некоторых случаях она настолько скудная, что предназначение модуля остается непонятным.
Эта команда, в основном, используется системой для загрузки установленных модулей, но можно это делать и самостоятельно. В качестве единственного параметра нужно передать команде имя модуля, который нужно загрузить.
Например, следующая команда загружает модуль iptable_nat
modprobe iptable_nat
Эта команда выгружает модуль, имя которого указано в качестве параметра. Если вы воспользовались модулем для выполнения определенных действий, то не забудьте по окончании работы его выгрузить. Иначе как раз он и может стать причиной взлома.