[make-initrd] [devel] syslinux
Leonid Krivoshein
klark.devel at gmail.com
Wed Apr 17 21:03:02 MSK 2019
17.04.2019 19:16, Антон Мидюков пишет:
> Я собираюсь заняться профилями. Но у меня вопрос: без поддержки cdrom
> в make-initrd собранные ISO не загрузятся в виртуалке?
Когда legion@ реализует замену пропагаторному методу "cdrom", и, в
зависимости от того, как он это реализует, тогда и будет смысл
задумываться о выкидывании пропагатора из профилей. По идее, там должны
быть минимальные изменения, поскольку необходимый функционал пропагатора
должен будет переехать в make-initrd. Если выкинуть пропагатор сейчас, с
созданного гибридного ISO-шника загрузиться по стандарту El-Torito и по
спецификации UEFI будет нельзя, поскольку сейчас make-initrd сам не
умеет влезать в squashfs и делать R/W-слои над ним.
> А с флэшки загрузятся?
>
Да. Также, как и по сети с NFS. Для этого уже сейчас можно взять любой
ранее созданный ISO-шник, взять из его корня stagename-файл (squashfs) и
его распаковать (как вариант -- тупо скопировать dd'ой) на отдельный
раздел в случае флэшки или распаковать в отдельный каталог на сервере
NFS. Это будет read-only rootfs. Далее надо смотреть, что из скрипта
make-initrd-propagarot.git at init-bootom надо перетащить ещё в initramfs,
чтобы заработало R/W-монтирование корня через overlayfs. Тут какой-то
опыт уже есть у Михаила Кангина.
При этом придётся учитывать, что версия ядра, модулей в rootfs и в
initramfs должны быть одинаковыми. На флэшку придётся ставить какой-то
загрузчик, тот же syslinux. Скрипт init-bootom мы хотели в любом случае
сохранить для совместимости, надо будет его перекладывать в тот же
make-initrd. А проще всего сейчас проверять новый make-initrd,
подсовывая нужные параметры QEMU (kernel=, initrd=, append=), тогда
вообще на тему загрузки в тестовых целях можно пока не париться.
> Также вопрос, каким образом собрать initrd с максимумом модулей?
>
Вот об этом было моё предыдущее письмо, про всеядный initrd.img -- в
него попадут все модули и прошивки, вообще все, что есть в stage2. Но
для полноты стоит заказать фичи типа lvm, mdadm и всего остального, что
умеет работать с носителями. Если же ориентироваться на нашу
дистрибутивную логику, то в пакете propagator есть mkmodpack, к нему
есть ответная часть в профилях m-p и в скриптах mkimage
(tools/mki-build-propagator). Вместе они создают наборы модулей и
фирмвари для всех наши универсальных установочных дисков live, rescue и
install.
Только там всегда чего-нибудь не хватает, потому что мы пытаемся
построить замыкание по какому-то принципу. У меня "все" заняли 1.1Гб без
всяких фич -- это огромный объём, для экспериментов на хорошем железе
сойдёт, чтобы не заморачиваться. Но для продакшена такой вариант не
годится. Ведь "все" и не нужны -- к примеру, зачем в initramfs все
модули ТВ-тюннеров или звуковых карт? А строить замыкание тоже можно
по-разному...
Сейчас список модулей определяется именно в m-p -- как раз твоя часть.
Беда в том, что за этим списком наши ядерщики не "ухаживают", я эту
проблему озвучивал ldv@, mike@ и boyarsh at . С этой позиции лучше
исключать заведомо ненужное, пусть лучше в initramfs лишнее попадёт.
Кое-что для включения предпринял legion@, какой-то опыт подборки нужного
есть у Михаила Кангина. Вот здесь давно пора объединять усилия,
оглядываясь на dracut и live-boot.
> 17.04.2019 22:36, Michael A. Kangin пишет:
>> On 04/17/2019 05:26 PM, Leonid Krivoshein wrote:
>>
>>> Вот вся документация:
>>> https://github.com/legionus/make-initrd/tree/master/docs
>>
>> Да, это я уже всё пролазил. В общем, можно считать, что документации
>> практически нету.
>>
>>
>>> Поэтому проще ориентироваться на исходники и уже готовые фичи...
>>
>> Я уже попробовал так сделать в первый раз. Оно заработало, но
>> получилось так себе. И, как теперь выясняется, надо всё переделывать
>> под новую версию.
>>
--
Best regards,
Leonid Krivoshein.
More information about the Make-initrd
mailing list