1. надо делать в ядре
2. вторым initrd неудобно. просто лучше при создании initrd включать необходимые модули.
4. конфиг лежать в идеале для нас должен, где угодно: на любом разделе, в любой директории, по сети.
путь к нему указывается параметрами командной строки для ядра в унифицированном формате: тип://путь
пример:
base_config=[local://]/dev/sda3/BlaBla/base_config.ini
base_config=http://magos.sibsau.ru/repository/netlive/2012/MagOS/base_config.ini
и тд по аналогии с тем как у нас сделан from=
можно сделать [local://] необязательным, то есть в случае отсутствия подразумевать локальные пути.
Вместе с тем, при отсутствии или ошибки подключения/доступа к файлу указанному в base_config= использовать дефолтный файл, который лежит внутри initrd.
При простом указании (без /dev/[hs]d*) производить поиск по всем носителям и всем директориям.
под локальным и сетевым репозиторием я подразумеваю директории, которые содержат опциональные модули/пакеты программ и которые можно синхронизировать посредством rsync либо с другими директориями, либо по сети.
Расширения для модулей squashfs стоит выбрать единое и универсальное. По минимуму в модулях помимо корневой ФС, должно быть описание. Тут можно слить ваши и наши наработки или взять ваши наработки и утилиты pfs-utils.
Еще у нас используется шифрование (добавка к имени в конце ".enc") и формат модулей rom и rwm - это файлы - образы с обычной файловой системой (ext*,btrfs,reiser,....) Отличаются только режимом доступа - ro,rw - чтение, чтение и запись. То есть если хотим монтировать модуль только для чтения используем rom, иначе rwm, если добавляем в конце еще и .enc: ...rom.enc или ....rwm.enc, то получаем возможность использовать шифрование, пока сделано через cryptoloop AES256, но хотелось бы использовать типо cryptosetup и прочие провайдеры для шифрования работающие через mapper.
xz - у нас показывало сжатие в squashfs.
По сути это не принципиально, как назвать, но в названии должна быть какая-то логика.
считаю необходимо иметь такие типы:
xzm - squashfs
rom - любая ФС поддерживаемая mount, монтируемая в режиме RO
rwm - любая ФС, монтируемая в режиме RW
[rom,rwm].enc - тоже самое но через шифрование
pfs - мета(модуль/пакет), умеющий объединять внутри себя несколько xzm,rom,rwm . Я вижу это несколько иначе, чем у вас сделано. Не в виде набора развернутых директорий с рут системами для aufs, а просто в виде контейнера который содержит уже готовые модули, но и некий алгоритм того, куда их монтировать. Некий аналог base_config из initrd, но только для группы модулей.
Это то, что мне иногда требуется, но до чего так и не дошли руки года 3 назад.
Внутри pfs для дистров основанный на других пакетных менеджерах хотелось бы возможность минимизации размера за счет выноса общих файлов из различных модулей в отдельный модуль.
Если pfs делать сжатым squashfs, то можно как у вас хранить не модули внутри, а просто директории, но тогда туда не засунуть rwm. Если делать pfs с файловой системой доступной на запись, то тогда внутри надо хранить модули сжатыми для варианта xzm.
Я понимаю, что такой функционал большинству не будет необходим, но он позволит мыслимые и немыслимые варианты использовать и будет весьма универсальным.