INITRD - Initial RAM Disk

10.12.2010
Иванов Аркадий

 

Ядро ОС Linux и драйверы сегодня обычно содержатся в разных файлах. Когда файл ядра загружается и получает управление, вполне может оказаться, что драйвер контроллера жёсткого диска, драйвер файловой системы ext3 в нём не содержатся. Так что ядро даже не знает как работать с устройством, откуда оно загружено. Чтобы разрешить эту проблему был придуман файл RAM-диска, который:

  • содержит файлы необходимых драйверов
  • вместе с ядром загружается в память
  • ядро монтирует его, как обычный диск
  • ядро берёт с него необходимые драйверы

В LILO и GRUB кроме файла ядра надо указывать ещё и этот файл initrd.

 

В Ubuntu чтобы создать этот файл надо:

  • Установить пакет initramfs-tools
  • Дать команду "update_initramfs -k 2.6.36.2 -c"
    Эта команда создаст файл initrd.img-2.6.36.2 в каталоге /boot для ядра 2.6.36.2. Модули будут взяты из соответствующего каталога /lib/modules/...
    Если вы дополнительно силой хотите добавить в initrd какие-то модули , в файле /etc/initramfs-tools/modules перечислите их.



В Alt Linux в каталоге /boot надо сделать:

  • mkinitrd initrd-2.6.36.2.img 2.6.36.2

       Если вы дополнительно силой хотите добавить в initrd какие-то модули , в командной строке укажите их, например так:
       mkinitrd initrd-2.6.36.2.img 2.6.36.2 --preload libata --preload sata-nv

 

После создания ядра и initrd к нему, надо указать в конфиге загрузчика  о том, что оно существует:

 

GRUB2 автоматически обнаружит файл ядра и соответствующего ему initrd и создаст запись в конфигурации своей загрузки после того, как вы дадите команду:

update-grub