Комментарии 4
На всякий случай: Поттеринг задумал революцию, которая сделает initrd модульным и собираемым вендорами дистрибутивов, а не динамическим файлом на целевой машине.
https://0pointer.net/blog/authenticated-boot-and-disk-encryption-on-linux.html
Образы же make-initrd весят всего 5Мб и создаются 10 секунд!
10 секунд на один образ все равно очень много.
Ничего не сможет побить booster initramfs https://github.com/anatol/booster
На моей машине 3 Linux ядра и суммарно собрать образы для них всех у меня занимает 750 миллисекунд
time sudo /usr/lib/booster/regenerate_images
sudo /usr/lib/booster/regenerate_images 0.91s user 0.45s system 181% cpu 0.753 total
При этом бустер поддерживает full-disk-encryption с LUKS и привязкой ключа clevis/systemd-fido2/systemd2-tpm и много других вкусностей.
Это конечно круто когда всё супершустро, но для подобных задач "очень" понятие весьма условное — если вы собираете образ раз в час, да пусть даже раз в 15 минут, то не особо важно — это 10 секунд или 10 миллисекунд.
Образы обычно создаются редко но надолго, даже для процесса разработки и отладки этих образов 10 секунд это ничто (на фоне остальных затрат времени), не говоря уже о том что время загрузки (с учётом инициализации всего железа, POST etc) часто составляет не менее пары минут — куда тут спешить со сборкой?
Честно говоря, с трудом себе представляю где это может быть критично — разве что речь про "сборка образов как услуга", или каком-то супер-пупер кластере виртуалок из десятков-сотен машин где загрузочные образы генеряются на лету а виртуалки (пере)создаются каждую минуту или чаще с разными требованиями — но как раз для этого случая проще всё решать на лету, а не создавать образы.
Я достаточно поверхностно глянул на проект — весьма интересная разработка:)
Тем не менее мне показалось, что структура у него все-таки больше линейная, чем сервисно-ориентированная (хотя параллельная обработка событий есть). На мой взгляд, основная мощь make-initrd — это именно его архитектура образов, организация проекта и модульность.
Скорость это конечно хорошо (особенно в тестировании), но опять-таки не самый критичный фактор:)
Модифицируем процесс загрузки с помощью утилиты make-initrd