[devel-distro] netstart: ядро+initrd для сетевой загрузки других дистрибутивов
Leonid Krivoshein
klark.devel at gmail.com
Mon Sep 13 02:01:37 MSK 2021
Всем привет!
Антону Мидюкову практически удалось воплотить в m-p идею мини-образа
ISO, позволяющего устанавливать (загружать или запускать) другие
"большие" дистрибутивы без предварительного скачивания и записи на
флэшку. В мини-образе netstart нет собственного stage2, есть только ядро
и initrd, даже несколько на выбор. Основной дистрибутив он закачивает по
сети прямо с нашего http/ftp-сервера. Анонса ещё не было, т.к. видимо
ещё не всё дотестировано и не удаётся добиться идеала, а у меня как раз
возникло понимание причин и хотел бы это здесь обсудить.
I. Зачем вообще нужен netstart?
1. Можно не записывать образы на флэшку, а ставить систему или загружать
live сразу по сети.
2. С его помощью можно тестировать сетевую загрузку силами сообщества на
очень разном железе.
3. Потенциально можно отказаться от main repo на диске и использовать
сетевой репозиторий, тогда и установочный диск станет очень небольшим, а
ставиться будет лишь актуальная пакетная база. Для Сизифа это особенно
интересная возможность, т.к. он меняется непрерывно.
4. Сильно упрощается жизнь желающим попробовать сразу несколько
регулярок или стартеров. В перспективе это можно использовать и для
продуктов.
II. Ограничения.
1. Модули ядра в stage2 загружаемого дистрибутива должны соответствовать
ядру и набору модулей в netstart. Хотя, я загружался и без полного
соответствия.
2. Бесполезно задавать ramdisk_size=... -- размер скачиваемого образа
заранее неизвестен. Данная проблема уже решена: нужно просто не
указывать этот аргумент изначально и для методов http/ftp будет
закачиваться образ в /run/boot-image.iso (tmpfs).
3. Параметры запуска каждого пункта загрузочного меню дистрибутива
определяются в netstart, но сейчас это не мульти-загрузочный диск.
Например, stagename=live бесполезно указывать в /proc/cmdline, т.к.
заранее неизвестно, какой пункт какого дистрибутива будет загружаться.
4. Сейчас приходится добивать руками конечную часть пути к скачиваемому
ISO-образу дистрибутива, тут легко ошибиться. Да и вообще надо знать,
что и откуда скачивать. Проще выбирать, а не набивать.
III. Предложение к обсуждению.
Для поддержки netstart можно с пачкой ISO'шников выкладывать на сервер
текстовый файл, который будет описывать загружаемые дистрибутивы и
предлагаемые ими пункты меню. Тогда через bootchain можно будет
загружаться так: bootchain=fg,netstart. Здесь netstart -- это шаг,
который скачивает описание с ftp/http-сервера и формирует необходимые
диалоги. Возможно, лучше даже не выкладывать описание на сервер, а
включать его в образ stage1, поскольку конкретный netstart пригоден для
вполне конкретной пачки ISO'шников и только для той же архитектуры.
Изменить таким способом получится не все параметры /proc/cmdline, а
только те, что известны заранее, типа automatic, stagename или lowmem.
IV. Вопрос.
Существует ли мульти-загрузка ISO'шников по сети? Например, через
специально собранный ipxe, чтобы не указывать в нём путь, откуда
загружаться.
--
Best regards,
Leonid Krivoshein.
More information about the devel-distro
mailing list