[devel] Замена для mkinitrd
Kirill A. Shutemov
kirill на shutemov.name
Чт Май 21 16:01:58 MSD 2009
legion@ и я сейчас пытаемся разработать более гибкую систему сборки initrd.
Основные особенности:
- Модульность. Есть набор модулей каждый из которых добавляет в initrd какую-то
функциональность. Например lvm или сжатие образа. Каждый модуль описывает
как реализовать функциональность и когда(после/до каких стадий) это должно быть
сделано.
- Отсутствие автодетекта расположения рута. mkinitrd ищет и помещает модули
ядра в образ, которые могут помочь добраться до рутового раздела. Однако, это
работает только для тривиальных случаев. Поскольку путь до рута может быть
сколь угодно сложным (например мне нужно
lvm-over-luks-over-lvm-over-usbstorage),
мы пока отказались от автодетекта. Пользователь сам описывает какой
функциональностью должен обладать initrd, в том числе какие модули в него
помещать. Возможно автодетект в том либо ином объёме будет добавлен позже.
Сейчас есть два прототипа которые реализуют практически одни и те же идеи, но
используют разный инструментарий. Одна реализована на смеси make + shell,
подобно mkimage. make используется для описания зависимостей модулей.
Вторая, подобно mkinitrd, написана на shell и реализует механизм зависимостей
самостоятельно. Обе смотреть в public на git.alt у legion на .
make-initrd и mkinitramfs
соответственно.
Мне более симпатичен первый вариант, Алексею второй. Хотелось бы узнать какое
направление движения devel@ считает более перспективным. Надеемся на
конструктивную критику.
P.S. Хотелось бы отметить, что это лишь прототипы отражающие некоторые идеи и
не готовы к реальному применению (хотя мне удавалось загрузиться с результатом
их работы ;)
Подробная информация о списке рассылки Devel