10.10. Создание образа initrd

Проблема
В системе используются диски SCSI. Из-за разнообразия драйверов SCSI вы хо тите, чтобы драйверы загружались в виде модулей. В этом случае диски или кон троллеры можно будет менять без повторной сборки ядра, а вам не хотелось бы
отягощать ядро включением всех возможных драйверов. Но как перезагрузить
систему без встраивания драйвера SCSI в базовое ядро?
Решение
Постройте образ initrd (виртуальный диск) командой mkinitrd после сборки ядра.
Затем включите в загрузчик запись для загрузки образа.
В ядрах 2.4 и 2.6 команда mkinitrd выполняется после команды make modulesjnstall:
# mkinitrd -o /boot/initrd-2.4.25-new.kernel.img
Команда строит образ и устанавливает его в каталог /boot; остается лишь со здать записи в загрузчике. В GRUB:
title Kernel 2.4.25. new kernel
root (hdO.O)
kernel /boot/bzImage-2.4.25-new-kernel rooWdev/hdal ro
initrd /boot/initrd-2.4.25-new-kernel.img
Пользователи LILO делают следующее:
image=/boot/bzIrnage-2.4.22- new-kernel
initrd=/boot/initrd-2.4.25-new-kernel.img
label=Kernel 2.4.22. new kernel
root=/dev/hdal
read-only
He забудьте выполнить /sbin/lilo, чтобы активировать изменения.
Комментарий
Обязательно прочитайте man-страницу mkinitrd, поскольку состав параметров
может зависеть от дистрибутива.
Ничто не мешает вам встроить драйвер SCSI в базовое ядро; использование
initrd не является обязательным.
Как правило, в дистрибутивах Linux используется initrd, чтобы типовое ядро мо гло загружаться в большинстве систем без встраивания всех возможных драйверов.
См. также
mkirritrd(8).