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