Как у porteus функционал нам не достаточен. У нас он шире, но хочется еще более гибкого и функционального.
В скриптах, что я привел, специфики под дистр быть не должно.
Разве что сам dracut отличается.
Сейчас принцип такой:
На cmdline повешан хук, который смотрит обязательность параметра root=magos:blabla:blabla
На mount повешан хук, который запускает либо наш magos linux-live, либо можно porteus, либо live-kit от нового slax, либо любой другой init скрипт, который после запуска делает всю работу и управление dracut уже не передает.
Сейчас я внес правки, которые по необходимым правилам подключают squashfs образы, сохраненку и т.д. , т.е. портирую куски кода и функции из magos linux-live и live-kit в библиотеку функций, а в init скрипте (сейчас он назван magos-init) вызываю последовательно функции - поиск дистрибутива на носителях, дисках, по http, ssh, ftp, nfs, а также внутри iso образов, криптованых и обычных образах ФС, подключение удаленных репозиториев по сети, синхронизация удаленных репозиториев в локальные репозитории, копирование в ОЗУ всех модулей или только указанных, монтирование squashfs модулей, модулей с любыми другими ФС, подключение сохраненки в виде директории, образа, сжатого модуля и другие нюансы (анализ специального конфига и конфигурирование уже основного дистрибутива, создание пользователей, настройка фаерволов и т.д.) в корень /sysroot (по умолчанию в dracut туда монтируется / ) и после этого передается управление dracut, в нем отрабатывают другие хуки (в данном случае может запускаться plymouth и прочий тюнинг, включая запуск systemd) и либо происходит смена корня и запуск init уже из виртуального корня конкретного дистрибутива (у нас - Роса, у вас Arch, Debian, Ubuntu, LFS и т.д.), либо запуск systemd (над этим надо работать, сейчас работает только первый вариант, а systemd уже стартует самостоятельно, если он есть в дистрибутиве). Первый вариант более универсальный и его надо сделать по-умолчанию.
Когда мы эти вещи унифицируем, то мы получим уникальную возможность совместно работать над добавлением все новых фич и не распылять свои усилия. При этом поддерживать frugal того дистра, который больше нравится (тут уже у каждого свои предпочтения).
Описанное мной у нас все уже сделано, только без dracut. Сейчас я хочу это унифицировать и сделать без специфичных параметров под конкретный дистрибутив. А также дать возможность другим проектам использовать всю мощь заложенную в модульной архитектуре frugal. Переход других проектов на общий initrd (хотя бы по части скриптов инициализации, т.к. версии ядер и набор модулей у всех может быть различным) позволит более тщательно полировать и находить специфические места и не переизобретать велосипеды, а оттачивать и совершенствовать уже созданное другими.
Мне кажется, это более, чем реально сейчас нам с вами достичь.