[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