Рано или поздно (скорее всего рано :) ) вам понадобится изменить
ядро системы. Например включить ipfw, или просто почистить от ненужного
мусора. Существует мнение, что это сложно и опасно. Ничего подобного! И
Вы в этом сейчас убедитесь...
Рассмотрим весь процесс пересборки ядра:
1. Стандартный файл ядра, с которым устанавливается система, и
который содержит настройки, рассчитанные на загрузку ОС, в большинстве
конфигураций находится здесь: /sys/i386/conf/GENERIC. Это файл не надо
править НИ ПРИ КАКИХ СИТУАЦИЯХ. Для нового ядра нужно скопировать
GENERIC в туже папку под другим названием (в моем случае
/sys/i386/conf/NEWKERNEL).
2. Теперь давайте его отредактируем, включив IPFW (для примера). Вы
можете использовать любой редактор текстовых файлов, который вам больше
нравится. Я предпочитаю "edit".
#edit /sys/i386/conf/NEWKERNEL
Первое, что надо изменить это параметр "ident GENERIC" на "ident NEWKERNEL" (в моем случае). Именно по этому параметру компилятор будет
находить требуемый для компиляции конфиг ядра, а не по названию файла и
вполне логично делать их одинаковыми (ident и имя файла).
Все изменения (кроме закомментирования ненужного оборудования) я
делаю в самом конце файла. И вам советую поступать так же, не будет
долгих поисков "И где же я тут правил?". Добавим в конец файла
следующие строки:
options IPFIREWALL # включаем поддержку ipfw на уровне ядра
options IPDIVERT # включаем поддержку перенаправления пакетов (нужно для NATD)
Вышли с сохранением изменений. Конфиг для компиляции ядра с поддержкой ipfw готов.
3. Сборка и установка нового ядра.
переходим в каталог /usr/src/: "# cd /usr/src/"
собираем ядро: "# make BUILDKERNEL KERNCONF=NEWKERNEL" вместо NEWKERNEL должен стоять ident вашего конфига
устанавливаем ядро: "# make INSTALLKERNEL KERNCONF=NEWKERNEL" вместо NEWKERNEL должен стоять ident вашего конфига
Если при выполнении сборки выдана ошибка и сборка остановлена,
значит вы допустили ошибки в конфиге. Понятно что их нужно исправить :)
И будьте осторожны! Если Вы работаете на удаленной машине, не трогайте
сетевые настройки, и не включайте ipfw в закрытый режим, не проверив
работоспособность его конфигурации на другой машине.
Все! Осталось только перезагрузиться: "shutdown -r now"
P.S. Если у вас машина не однопроцессорная то вам следует компилировать ядро SMP от GENERIC отличается одной строчкой!
|