[sisyphus] Использование make-initrd

Kirill A. Shutemov kirill на shutemov.name
Пн Сен 21 09:16:01 UTC 2009


2009/9/21 Eugene Prokopiev <enp at altlinux.org>:
>>>> Лучше посмотрите на make-initrd и допишите к нему фичу. Он когда-нибудь
>>>> заменит теперешний mkinitrd.
>>>
>>> А когда и насколько оно сейчас готово для практического использования?
>>
>> Пока это альфа. Помогите с тестирование. Когда вытопчем грабли, тогда и
>> будет готово.
>
> Задача: грузить некую систему (похожую на
> http://git.altlinux.org/people/kas/packages/mkimage-profile-nanolive.git)
> из образа squashfs как с сетевого блочного девайса (NBD), так и с
> cd/flash, на котором находится файл с образом squashfs. В первом случа
> пропагатор совсем не поможет, во втором желательно обойтись без него.
>
> Если я правильно понимаю, мне нужно написать такой конфиг:
>
> # cat /etc/initrd.mk
> IMAGEFILE = initrd-$(KERNEL).img
> MODULES_ADD = e100

наверно, вы ещё хотите сюда squashfs?

> FEATURES = nbd compress cleanup
>
> И описать фичу nbd примерно следующим образом:
>
> # ls -R /usr/share/make-initrd/features/nbd/
> /usr/share/make-initrd/features/nbd/:
> config.mk  data  rules.mk
>
> /usr/share/make-initrd/features/nbd/data:
>
> # cat /usr/share/make-initrd/features/nbd/config.mk
> NBD_DATADIR    ?= $(FEATURESDIR)/NBD/data
>
> # cat /usr/share/make-initrd/features/nbd/rules.mk

$(call require,depmod-image)

> nbd:
>        @echo "Adding NBD support ..."
>        @$(PUT_TREE) $(NBD_DATADIR)

наверно, нужно положить в образ модуль nbd и nbd-client

@$(LOAD_MODULE) nbd
@$(PUT_FILE) $(NBD_CLIENT)

NBD_CLIENT стоит определить в конфиге. все библиотеки, с которыми
слинкован бинарник, будут тоже добавлены в образ.

>
> pack: nbd

поскольку нужно добавить в образ модуль, то вместо pack, следует
использовать depmod-image.

>
> Расскажите теперь, что класть в data. Т.е. кто будет вызывать мои скрипты и что в них я могу использовать?

Основные точки входа:
etc/udev/rules.d/ - тут лежат udev-правила.
lib/udev-helpers/ - тут лежат скрипты которые вызываются из udev-правил.
modules/ - тут лежат скрипты которые выполняются в лексикогрфическом порадке

NBD немного не тривиален, в том плане, что нужно как-то
конфигурировать сеть и пытаться достучаться до сервера в нужный момент
времени. Пока этот функционал в make-initrd не реализован. Нужно
подумать как это сделать наиболее правильным образом.


Подробная информация о списке рассылки Sisyphus