From: Leonid Krivoshein <klark.devel@gmail.com> To: devel-distro@lists.altlinux.org Subject: Re: [devel-distro] netstart: ядро+initrd для сетевой загрузки других дистрибутивов Date: Mon, 13 Sep 2021 05:25:46 +0300 Message-ID: <0277f137-0ec9-c969-04a0-b391ff55a385@gmail.com> (raw) In-Reply-To: <72ef3d7c-f1d5-be29-8c9e-cb5ca50dca70@ya.ru> 13.09.2021 4:27, Антон Мидюков пишет: > 13.09.2021 06:01, Leonid Krivoshein пишет: >> Всем привет! >> >> >> Антону Мидюкову практически удалось воплотить в m-p идею мини-образа ISO, позволяющего устанавливать (загружать или запускать) другие "большие" дистрибутивы без предварительного скачивания и записи на флэшку. В мини-образе netstart нет собственного stage2, есть только ядро и initrd, даже несколько на выбор. Основной дистрибутив он закачивает по сети прямо с нашего http/ftp-сервера. Анонса ещё не было, т.к. видимо ещё не всё дотестировано и не удаётся добиться идеала, а у меня как раз возникло понимание причин и хотел бы это здесь обсудить. >> > Анонса не было, так как у меня, как помнишь, установка regular-jeos-sysv.iso дальше первого шага не идёт :-) Забыл, но теперь вспомнил. Скрипт remount в инсталляторе давно пора капитально отремонтировать. >> I. Зачем вообще нужен netstart? >> >> 1. Можно не записывать образы на флэшку, а ставить систему или загружать live сразу по сети. > Но не хватает возможность вбить имя stage2 в bootchain. Да и выбора, как в propagator, между dhcp и настройки static в altboot нет. В altboot пока нет диалогов для ручной настройки сети. Но параметрами запуска сетевые настройки сейчас задаются в самом make-initrd (фича network), причём поддерживается куда больше, чем умел propagator: IPv4, IPv6, и даже дюальный стек. В altboot поддержка пока только для IPv4 сделана, но сети там совсем мало пока, так что расширить будет несложно. >> 2. С его помощью можно тестировать сетевую загрузку силами сообщества на очень разном железе. > Можно, но нужно, чтобы сервер отдавал быстро образы. Наверное, стоит использовать зеркало яндекса. Да. А nightly там тоже зеркалируется? В netstart хорошо бы ещё и зеркало выбирать сразу. >> 3. Потенциально можно отказаться от main repo на диске и использовать сетевой репозиторий, тогда и установочный диск станет очень небольшим, а ставиться будет лишь актуальная пакетная база. Для Сизифа это особенно интересная возможность, т.к. он меняется непрерывно. > Это отдельная задача же. Реализуется правкой инсталятора. Но, как гарантировать, стабильность установки в условиях изменяющейся пакетной базы, вопрос актуальный. Уточню: стабильность установки в течении недели до выпуска следующей партии регулярок. Никак. Но на то он и Сизиф. :-) >> 4. Сильно упрощается жизнь желающим попробовать сразу несколько регулярок или стартеров. В перспективе это можно использовать и для продуктов. >> >> II. Ограничения. >> >> 1. Модули ядра в stage2 загружаемого дистрибутива должны соответствовать ядру и набору модулей в netstart. Хотя, я загружался и без полного соответствия. > Главное, чтобы совпадала версия ядра. > >> 2. Бесполезно задавать ramdisk_size=... -- размер скачиваемого образа заранее неизвестен. Данная проблема уже решена: нужно просто не указывать этот аргумент изначально и для методов http/ftp будет закачиваться образ в /run/boot-image.iso (tmpfs). > Отлично. Но я пока не проверял. Торопишься с анонсом :-) Вообще я проверил, но только на rescue. Теперь надо снова проверять с RT-ядром и желательно сразу сетевую загрузку live. >> 3. Параметры запуска каждого пункта загрузочного меню дистрибутива определяются в netstart, но сейчас это не мульти-загрузочный диск. Например, stagename=live бесполезно указывать в /proc/cmdline, т.к. заранее неизвестно, какой пункт какого дистрибутива будет загружаться. > Нужна возможность задавать в altboot. > Выбирать на шаге netstart, который будет альтернативой шагу altboot. >> 4. Сейчас приходится добивать руками конечную часть пути к скачиваемому ISO-образу дистрибутива, тут легко ошибиться. Да и вообще надо знать, что и откуда скачивать. Проще выбирать, а не набивать. > Было бы здорово получать список на выбор. > >> III. Предложение к обсуждению. >> >> Для поддержки netstart можно с пачкой ISO'шников выкладывать на сервер текстовый файл, который будет описывать загружаемые дистрибутивы и предлагаемые ими пункты меню. Тогда через bootchain можно будет загружаться так: bootchain=fg,netstart. Здесь netstart -- это шаг, который скачивает описание с ftp/http-сервера и формирует необходимые диалоги. Возможно, лучше даже не выкладывать описание на сервер, а включать его в образ stage1, поскольку конкретный netstart пригоден для вполне конкретной пачки ISO'шников и только для той же архитектуры. Изменить таким способом получится н > е все параметры /proc/cmdline, а только те, что известны заранее, типа automatic, stagename или lowmem. > > Есть же MD5SUM. Может ориентироваться на него и за одно проверять контрольную сумму? Сначала я тоже так думал: взять его за основу, отфильтровать неподходящие под netstart-диск архитектуры. Но информации в нём явно недостаточно. Есть только имена файлов и контрольные суммы MD5. Для ISO-образов они традиционно привычны, но предпочтительно использовать хотя бы SHA-256 во-избежании коллизий. На nightly считаются такие же бесполезные SHA-1. Нет размеров файлов, описаний дисков, списка доступных вариантов загрузки (пунктов меню), соответствующих им опций загрузки. > А список получать при условии, что указан не образ, а каталог или же заданный образ не существует? А как идея зашивать список в образ самого netstart? Можно реализовать оба варианта: если не зашит, тогда скачивать с сервера. Если указаны все параметры, необходимые для загрузки конкретного образа, использовать обычный синтаксис bootchain=fg,altboot automatic=... stagename=..., а список нужен, чтобы внутри make-initrd сформировать параметры для последующих шагов altboot и оптимизировать загрузку. Например, не все сервера отдают корректный размер файла, вообще его могут не все отдавать, к тому же это лишнее обращение к серверу. > automatic переопределять, думаю, не нужно, как и lowmem. Достаточно только stagename, в том же шаге, > где прописываем путь до образа. Именно в automatic=... указывается почти всё самое важное: сервер, путь к образу, как же его не переопределять. > Также зачастую на образе есть только один из вариантов stage2. Можно перебирать последовательно: altinst, live, rescue. > Для регулярок это актуальная фича. Типа stagename=auto? >> IV. Вопрос. >> >> Существует ли мульти-загрузка ISO'шников по сети? Например, через специально собранный ipxe, чтобы не указывать в нём путь, откуда загружаться. >> > -- Best regards, Leonid Krivoshein.
next prev parent reply other threads:[~2021-09-13 2:25 UTC|newest] Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-09-12 23:01 Leonid Krivoshein 2021-09-13 1:27 ` Антон Мидюков 2021-09-13 2:25 ` Leonid Krivoshein [this message] 2021-09-13 3:48 ` Антон Мидюков 2021-09-13 11:42 ` Leonid Krivoshein 2021-09-13 2:06 ` Vladimir D. Seleznev 2021-09-13 2:34 ` Leonid Krivoshein 2021-09-13 14:49 ` Vladimir D. Seleznev 2021-09-13 14:52 ` Denis Medvedev
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=0277f137-0ec9-c969-04a0-b391ff55a385@gmail.com \ --to=klark.devel@gmail.com \ --cc=devel-distro@lists.altlinux.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
ALT Linux Distributions development This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/devel-distro/0 devel-distro/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 devel-distro devel-distro/ http://lore.altlinux.org/devel-distro \ devel-distro@lists.altlinux.org devel-distro@lists.altlinux.ru devel-distro@lists.altlinux.com public-inbox-index devel-distro Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.devel-distro AGPL code for this site: git clone https://public-inbox.org/public-inbox.git