* [make-initrd] plans
@ 2021-03-31 8:17 Alexey Gladkov
2021-03-31 8:22 ` Антон Мидюков
` (2 more replies)
0 siblings, 3 replies; 14+ messages in thread
From: Alexey Gladkov @ 2021-03-31 8:17 UTC (permalink / raw)
To: make-initrd
Привет!
Я хотел поделиться тем, что я планирую попробовать в ближайшем будущем.
# Рассмотреть mdev в качестве замены udev.
Релиз 2.14.0 во многом был сделан на основе результатов портирования
make-initrd на другой дистрибутив. Это портирование открыло мне несколько
волшебных особенностей udev.
Я смотрел примеры конфигураций mdev и выяснилось, что mdev не такой уж
слабый сервер. Правила udev, которые есть в make-initrd, не такие уж
сложные. На первый взгляд их можно портировать на mdev без особых проблем.
Если такая замена и будет, то без потери обратной совместимости. Если в
образ будут попадать правила udev, то udevd тоже будет включаться туда.
# Фича kickstarter
Я нашёл у себя в архиве наброски kickstarter, который я делал ещё для
server4. Мне подумалось адаптировать этот код или скорее написать его с
нуля в качестве фичи. Синтаксис этого кикстартера была сильно похожа на
старый redhat kickstarter. Пока это только мысли так как пока непонятно
как это лучше интегрировать и вызывать.
--
Rgrds, legion
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [make-initrd] plans
2021-03-31 8:17 [make-initrd] plans Alexey Gladkov
@ 2021-03-31 8:22 ` Антон Мидюков
2021-03-31 9:27 ` Alexey Gladkov
2021-04-12 12:07 ` Alexey Gladkov
2021-05-21 11:25 ` [make-initrd] plans Alexey Gladkov
2 siblings, 1 reply; 14+ messages in thread
From: Антон Мидюков @ 2021-03-31 8:22 UTC (permalink / raw)
To: make-initrd
31.03.2021 15:17, Alexey Gladkov пишет:
> Привет!
>
> Я хотел поделиться тем, что я планирую попробовать в ближайшем будущем.
>
> # Рассмотреть mdev в качестве замены udev.
>
> Релиз 2.14.0 во многом был сделан на основе результатов портирования
> make-initrd на другой дистрибутив. Это портирование открыло мне несколько
> волшебных особенностей udev.
>
> Я смотрел примеры конфигураций mdev и выяснилось, что mdev не такой уж
> слабый сервер. Правила udev, которые есть в make-initrd, не такие уж
> сложные. На первый взгляд их можно портировать на mdev без особых проблем.
Расскажите про преимущества mdev. Что это даст? Не
>
> Если такая замена и будет, то без потери обратной совместимости. Если в
> образ будут попадать правила udev, то udevd тоже будет включаться туда.
>
> # Фича kickstarter
>
> Я нашёл у себя в архиве наброски kickstarter, который я делал ещё для
> server4. Мне подумалось адаптировать этот код или скорее написать его с
> нуля в качестве фичи. Синтаксис этого кикстартера была сильно похожа на
> старый redhat kickstarter. Пока это только мысли так как пока непонятно
> как это лучше интегрировать и вызывать.
>
Кажется, Вы забыли рассказать, что будет делать фича kickstarter.
--
С уважением, Антон Мидюков <antohami@basealt.ru>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [make-initrd] plans
2021-03-31 8:22 ` Антон Мидюков
@ 2021-03-31 9:27 ` Alexey Gladkov
2021-03-31 10:00 ` Антон Мидюков
0 siblings, 1 reply; 14+ messages in thread
From: Alexey Gladkov @ 2021-03-31 9:27 UTC (permalink / raw)
To: make-initrd
On Wed, Mar 31, 2021 at 03:22:38PM +0700, Антон Мидюков wrote:
> 31.03.2021 15:17, Alexey Gladkov пишет:
> > Привет!
> >
> > Я хотел поделиться тем, что я планирую попробовать в ближайшем будущем.
> >
> > # Рассмотреть mdev в качестве замены udev.
> >
> > Релиз 2.14.0 во многом был сделан на основе результатов портирования
> > make-initrd на другой дистрибутив. Это портирование открыло мне несколько
> > волшебных особенностей udev.
> >
> > Я смотрел примеры конфигураций mdev и выяснилось, что mdev не такой уж
> > слабый сервер. Правила udev, которые есть в make-initrd, не такие уж
> > сложные. На первый взгляд их можно портировать на mdev без особых проблем.
>
> Расскажите про преимущества mdev. Что это даст?
* Функционал. mdev реализует ровно тот функционал, который необходим для
обработки эвентов ядра.
* Стабильность. Поведение mdev не меняется достаточно давно.
* Размер. mdev на порядки меньше, чем udev. Это сейчас не всеми считается
важным параметром. Я считаю иначе.
Не факт, что это все плюсы и не факт, что эти плюсы действительно плюсы.
Возможно я ошибаюсь и udevd незаменим.
> > # Фича kickstarter
> >
> > Я нашёл у себя в архиве наброски kickstarter, который я делал ещё для
> > server4. Мне подумалось адаптировать этот код или скорее написать его с
> > нуля в качестве фичи. Синтаксис этого кикстартера была сильно похожа на
> > старый redhat kickstarter. Пока это только мысли так как пока непонятно
> > как это лучше интегрировать и вызывать.
> >
>
> Кажется, Вы забыли рассказать, что будет делать фича kickstarter.
В первую очередь она должна предоставить возможность разбиения диска.
Resize разделов в этой рассылке уже просили.
А дальше по необходимости буду добавлять. Сейчас пока у меня нет чёткого
понимания.
Есть ощущение, что проверку fsck можно переписать на kickstarter и
возможно какие-то ещё части.
--
Rgrds, legion
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [make-initrd] plans
2021-03-31 9:27 ` Alexey Gladkov
@ 2021-03-31 10:00 ` Антон Мидюков
2021-03-31 10:32 ` Alexey Gladkov
0 siblings, 1 reply; 14+ messages in thread
From: Антон Мидюков @ 2021-03-31 10:00 UTC (permalink / raw)
To: make-initrd
31.03.2021 16:27, Alexey Gladkov пишет:
> On Wed, Mar 31, 2021 at 03:22:38PM +0700, Антон Мидюков wrote:
>> 31.03.2021 15:17, Alexey Gladkov пишет:
>>> Привет!
>>>
>>> Я хотел поделиться тем, что я планирую попробовать в ближайшем будущем.
>>>
>>> # Рассмотреть mdev в качестве замены udev.
>>>
>>> Релиз 2.14.0 во многом был сделан на основе результатов портирования
>>> make-initrd на другой дистрибутив. Это портирование открыло мне несколько
>>> волшебных особенностей udev.
>>>
>>> Я смотрел примеры конфигураций mdev и выяснилось, что mdev не такой уж
>>> слабый сервер. Правила udev, которые есть в make-initrd, не такие уж
>>> сложные. На первый взгляд их можно портировать на mdev без особых проблем.
>>
>> Расскажите про преимущества mdev. Что это даст?
>
> * Функционал. mdev реализует ровно тот функционал, который необходим для
> обработки эвентов ядра.
>
> * Стабильность. Поведение mdev не меняется достаточно давно.
>
> * Размер. mdev на порядки меньше, чем udev. Это сейчас не всеми считается
> важным параметром. Я считаю иначе.
>
> Не факт, что это все плюсы и не факт, что эти плюсы действительно плюсы.
> Возможно я ошибаюсь и udevd незаменим.
Выглядит именно как плюсы.
>
>>> # Фича kickstarter
>>>
>>> Я нашёл у себя в архиве наброски kickstarter, который я делал ещё для
>>> server4. Мне подумалось адаптировать этот код или скорее написать его с
>>> нуля в качестве фичи. Синтаксис этого кикстартера была сильно похожа на
>>> старый redhat kickstarter. Пока это только мысли так как пока непонятно
>>> как это лучше интегрировать и вызывать.
>>>
>>
>> Кажется, Вы забыли рассказать, что будет делать фича kickstarter.
>
> В первую очередь она должна предоставить возможность разбиения диска.
> Resize разделов в этой рассылке уже просили.
>
Да, я и просил. Нам такая возможность может пригодиться ещё и для создании раздела хранения сохранённого сеанса livecd без использования propagator.
> А дальше по необходимости буду добавлять. Сейчас пока у меня нет чёткого
> понимания.
>
> Есть ощущение, что проверку fsck можно переписать на kickstarter и
> возможно какие-то ещё части.
>
--
С уважением, Антон Мидюков <antohami@basealt.ru>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [make-initrd] plans
2021-03-31 10:00 ` Антон Мидюков
@ 2021-03-31 10:32 ` Alexey Gladkov
0 siblings, 0 replies; 14+ messages in thread
From: Alexey Gladkov @ 2021-03-31 10:32 UTC (permalink / raw)
To: make-initrd
On Wed, Mar 31, 2021 at 05:00:15PM +0700, Антон Мидюков wrote:
> > * Функционал. mdev реализует ровно тот функционал, который необходим для
> > обработки эвентов ядра.
> >
> > * Стабильность. Поведение mdev не меняется достаточно давно.
> >
> > * Размер. mdev на порядки меньше, чем udev. Это сейчас не всеми считается
> > важным параметром. Я считаю иначе.
> >
> > Не факт, что это все плюсы и не факт, что эти плюсы действительно плюсы.
> > Возможно я ошибаюсь и udevd незаменим.
>
> Выглядит именно как плюсы.
Ну я всё-таки оставляю шанс на то, что "если кто-то пишет этот код в
udevd, то он кому-то нужен". Возможно, я пока не увидел глубины глубин.
> > В первую очередь она должна предоставить возможность разбиения диска.
> > Resize разделов в этой рассылке уже просили.
> >
>
> Да, я и просил. Нам такая возможность может пригодиться ещё и для
> создании раздела хранения сохранённого сеанса livecd без использования
> propagator.
Я думал интегрировать kickstarter c pipeline. Чтобы на каком-то этапе
шагов можно было бы выполнить kickstart-скрипт.
Фича kickstarter нужна мне ещё и для тестов. Чтобы не создавать руками
требуемые конфигурации рутовых разделов. Сейчас я делаю это вручную и
сохраняю результат, а хочется просто иметь сценарии, которые возьмут
диски и сделают нужный рут.
--
Rgrds, legion
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [make-initrd] plans
2021-03-31 8:17 [make-initrd] plans Alexey Gladkov
2021-03-31 8:22 ` Антон Мидюков
@ 2021-04-12 12:07 ` Alexey Gladkov
2021-04-14 11:53 ` Alexey Gladkov
2021-10-05 16:20 ` [make-initrd] Как пользоваться фичей kickstarter? Антон Мидюков
2021-05-21 11:25 ` [make-initrd] plans Alexey Gladkov
2 siblings, 2 replies; 14+ messages in thread
From: Alexey Gladkov @ 2021-04-12 12:07 UTC (permalink / raw)
To: make-initrd
On Wed, Mar 31, 2021 at 10:17:12AM +0200, Alexey Gladkov wrote:
> # Фича kickstarter
>
> Я нашёл у себя в архиве наброски kickstarter, который я делал ещё для
> server4. Мне подумалось адаптировать этот код или скорее написать его с
> нуля в качестве фичи. Синтаксис этого кикстартера была сильно похожа на
> старый redhat kickstarter. Пока это только мысли так как пока непонятно
> как это лучше интегрировать и вызывать.
В целом, после выходных у меня получилось реализовать базовый функционал
ignoredisk, clearpart, part, volgroup, logvol... на очереди raid и btrfs.
Ну и потом всё это буду тестировать. Я также планирую реализовать liveimg.
Возможно ещё какие-то, если понадобиться по ходу тестирования.
Остальные команды я не планирую реализовывать (я же не инсталлер).
Вариантов запуска kickstarter пока два:
1. Сервис в initrd будет дёргать сценарий по параметру в cmdline.
2. Будет отдельный шаг в pipeline.
--
Rgrds, legion
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [make-initrd] plans
2021-04-12 12:07 ` Alexey Gladkov
@ 2021-04-14 11:53 ` Alexey Gladkov
2021-04-21 11:41 ` Alexey Gladkov
2021-10-05 16:20 ` [make-initrd] Как пользоваться фичей kickstarter? Антон Мидюков
1 sibling, 1 reply; 14+ messages in thread
From: Alexey Gladkov @ 2021-04-14 11:53 UTC (permalink / raw)
To: make-initrd
On Mon, Apr 12, 2021 at 02:07:23PM +0200, Alexey Gladkov wrote:
> On Wed, Mar 31, 2021 at 10:17:12AM +0200, Alexey Gladkov wrote:
> > # Фича kickstarter
> >
> > Я нашёл у себя в архиве наброски kickstarter, который я делал ещё для
> > server4. Мне подумалось адаптировать этот код или скорее написать его с
> > нуля в качестве фичи. Синтаксис этого кикстартера была сильно похожа на
> > старый redhat kickstarter. Пока это только мысли так как пока непонятно
> > как это лучше интегрировать и вызывать.
>
> В целом, после выходных у меня получилось реализовать базовый функционал
> ignoredisk, clearpart, part, volgroup, logvol... на очереди raid и btrfs.
> Ну и потом всё это буду тестировать. Я также планирую реализовать liveimg.
> Возможно ещё какие-то, если понадобиться по ходу тестирования.
>
> Остальные команды я не планирую реализовывать (я же не инсталлер).
>
> Вариантов запуска kickstarter пока два:
>
> 1. Сервис в initrd будет дёргать сценарий по параметру в cmdline.
> 2. Будет отдельный шаг в pipeline.
>
Ранний набросок тут https://github.com/osboot/make-initrd/tree/kickstarter/features/kickstart
--
Rgrds, legion
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [make-initrd] plans
2021-04-14 11:53 ` Alexey Gladkov
@ 2021-04-21 11:41 ` Alexey Gladkov
2021-05-15 19:06 ` Alexey Gladkov
0 siblings, 1 reply; 14+ messages in thread
From: Alexey Gladkov @ 2021-04-21 11:41 UTC (permalink / raw)
To: make-initrd
On Wed, Apr 14, 2021 at 01:53:48PM +0200, Alexey Gladkov wrote:
> > В целом, после выходных у меня получилось реализовать базовый функционал
> > ignoredisk, clearpart, part, volgroup, logvol... на очереди raid и btrfs.
> > Ну и потом всё это буду тестировать. Я также планирую реализовать liveimg.
> > Возможно ещё какие-то, если понадобиться по ходу тестирования.
> >
> > Остальные команды я не планирую реализовывать (я же не инсталлер).
> >
> > Вариантов запуска kickstarter пока два:
> >
> > 1. Сервис в initrd будет дёргать сценарий по параметру в cmdline.
> > 2. Будет отдельный шаг в pipeline.
> >
>
> Ранний набросок тут https://github.com/osboot/make-initrd/tree/kickstarter/features/kickstart
Первая версия ушла в master.
--
Rgrds, legion
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [make-initrd] plans
2021-04-21 11:41 ` Alexey Gladkov
@ 2021-05-15 19:06 ` Alexey Gladkov
0 siblings, 0 replies; 14+ messages in thread
From: Alexey Gladkov @ 2021-05-15 19:06 UTC (permalink / raw)
To: make-initrd
On Wed, Apr 21, 2021 at 01:41:48PM +0200, Alexey Gladkov wrote:
> On Wed, Apr 14, 2021 at 01:53:48PM +0200, Alexey Gladkov wrote:
> > > В целом, после выходных у меня получилось реализовать базовый функционал
> > > ignoredisk, clearpart, part, volgroup, logvol... на очереди raid и btrfs.
> > > Ну и потом всё это буду тестировать. Я также планирую реализовать liveimg.
> > > Возможно ещё какие-то, если понадобиться по ходу тестирования.
> > >
> > > Остальные команды я не планирую реализовывать (я же не инсталлер).
> > >
> > > Вариантов запуска kickstarter пока два:
> > >
> > > 1. Сервис в initrd будет дёргать сценарий по параметру в cmdline.
> > > 2. Будет отдельный шаг в pipeline.
> > >
> >
> > Ранний набросок тут https://github.com/osboot/make-initrd/tree/kickstarter/features/kickstart
>
> Первая версия ушла в master.
Я переписал тесты на использование kickstart [1]. Теперь тестовый образ и
конфигурация дисков создаются динамически. По сути в тестах происходит
минимальная инсталляция sysvinit системы.
[1] https://github.com/osboot/make-initrd/tree/master/testing
--
Rgrds, legion
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [make-initrd] plans
2021-03-31 8:17 [make-initrd] plans Alexey Gladkov
2021-03-31 8:22 ` Антон Мидюков
2021-04-12 12:07 ` Alexey Gladkov
@ 2021-05-21 11:25 ` Alexey Gladkov
2 siblings, 0 replies; 14+ messages in thread
From: Alexey Gladkov @ 2021-05-21 11:25 UTC (permalink / raw)
To: make-initrd
On Wed, Mar 31, 2021 at 10:17:12AM +0200, Alexey Gladkov wrote:
> Привет!
>
> Я хотел поделиться тем, что я планирую попробовать в ближайшем будущем.
>
> # Рассмотреть mdev в качестве замены udev.
Попробовал. В целом, использование mdev возможно. Система грузится.
Поскольку правила mdev сильно проще, то трудозатраты для реализации
необходимого функционала выше. Ненамного. У самого make-initrd правила не
сильно сложные, а вот с каким-нибудь mdadm приходится повозиться.
Сложнее с околосерверной частью. В нескольких местах нужен аналог udevadm.
Если udevadm-trigger реализовать не очень сложно, то остальные требуют
много усилий. В итоге получается больше кода.
В альте выигрыша от замены udev на mdev пока мало так как у нас udev
собран хорошо и не тянет за собой libsystemd-shared.so. В ubuntu и fedora
выигрыш больше, но оттуда ещё никто не приходил.
В итоге пока нет больших плюсов от такого перехода.
--
Rgrds, legion
^ permalink raw reply [flat|nested] 14+ messages in thread
* [make-initrd] Как пользоваться фичей kickstarter?
2021-04-12 12:07 ` Alexey Gladkov
2021-04-14 11:53 ` Alexey Gladkov
@ 2021-10-05 16:20 ` Антон Мидюков
2021-10-05 18:54 ` Alexey Gladkov
1 sibling, 1 reply; 14+ messages in thread
From: Антон Мидюков @ 2021-10-05 16:20 UTC (permalink / raw)
To: make-initrd
12.04.2021 19:07, Alexey Gladkov пишет:
> On Wed, Mar 31, 2021 at 10:17:12AM +0200, Alexey Gladkov wrote:
>> # Фича kickstarter
>>
>> Я нашёл у себя в архиве наброски kickstarter, который я делал ещё для
>> server4. Мне подумалось адаптировать этот код или скорее написать его с
>> нуля в качестве фичи. Синтаксис этого кикстартера была сильно похожа на
>> старый redhat kickstarter. Пока это только мысли так как пока непонятно
>> как это лучше интегрировать и вызывать.
>
> В целом, после выходных у меня получилось реализовать базовый функционал
> ignoredisk, clearpart, part, volgroup, logvol... на очереди raid и btrfs.
> Ну и потом всё это буду тестировать. Я также планирую реализовать liveimg.
> Возможно ещё какие-то, если понадобиться по ходу тестирования.
>
> Остальные команды я не планирую реализовывать (я же не инсталлер).
>
> Вариантов запуска kickstarter пока два:
>
> 1. Сервис в initrd будет дёргать сценарий по параметру в cmdline.
> 2. Будет отдельный шаг в pipeline.
>
Алексей, я посмотрел README этой фичи. В ней есть то, что мне надо - возможность
расширить корневой раздел на всё свободное пространство:
* `--grow` - Tells the partition to grow to fill available space (if any).
команда, получается:
part / --grow
Я правильно понимаю? Т.е. для моей задачи скрипт будет состоять из одной строки?
Скрипт будет внутри initrd? Как его туда положить? Так:
PUT_FILES += <путь до скрипта>
?
И затем добавить в cmdline ядра:
ksfile=<путь до скрипта>
?
Но фича может очень много всего. Отсюда вопрос, можно ли использовать условия в скрипте?
Команды внешние?
Например, посмотреть сколько свободного незанятого разделами места. Если больше такого-то значения,
то создаём дополнительно раздел /home. И в зависимости от количества оперативной памяти добавляем swap такого-то
размера.
--
С уважением, Антон Мидюков <antohami@basealt.ru>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [make-initrd] Как пользоваться фичей kickstarter?
2021-10-05 16:20 ` [make-initrd] Как пользоваться фичей kickstarter? Антон Мидюков
@ 2021-10-05 18:54 ` Alexey Gladkov
2021-10-06 10:03 ` Антон Мидюков
0 siblings, 1 reply; 14+ messages in thread
From: Alexey Gladkov @ 2021-10-05 18:54 UTC (permalink / raw)
To: make-initrd
On Tue, Oct 05, 2021 at 11:20:48PM +0700, Антон Мидюков wrote:
> 12.04.2021 19:07, Alexey Gladkov пишет:
> > On Wed, Mar 31, 2021 at 10:17:12AM +0200, Alexey Gladkov wrote:
> >> # Фича kickstarter
> >>
> >> Я нашёл у себя в архиве наброски kickstarter, который я делал ещё для
> >> server4. Мне подумалось адаптировать этот код или скорее написать его с
> >> нуля в качестве фичи. Синтаксис этого кикстартера была сильно похожа на
> >> старый redhat kickstarter. Пока это только мысли так как пока непонятно
> >> как это лучше интегрировать и вызывать.
> >
> > В целом, после выходных у меня получилось реализовать базовый функционал
> > ignoredisk, clearpart, part, volgroup, logvol... на очереди raid и btrfs.
> > Ну и потом всё это буду тестировать. Я также планирую реализовать liveimg.
> > Возможно ещё какие-то, если понадобиться по ходу тестирования.
> >
> > Остальные команды я не планирую реализовывать (я же не инсталлер).
> >
> > Вариантов запуска kickstarter пока два:
> >
> > 1. Сервис в initrd будет дёргать сценарий по параметру в cmdline.
> > 2. Будет отдельный шаг в pipeline.
> >
>
> Алексей, я посмотрел README этой фичи. В ней есть то, что мне надо - возможность
> расширить корневой раздел на всё свободное пространство:
>
> * `--grow` - Tells the partition to grow to fill available space (if any).
>
> команда, получается:
>
> part / --grow
>
> Я правильно понимаю? Т.е. для моей задачи скрипт будет состоять из одной строки?
Если всё будет работать правильно, то да ))
> Скрипт будет внутри initrd? Как его туда положить? Так:
>
> PUT_FILES += <путь до скрипта>
>
> ?
Например:
KICKSTART_CONFIGS += /path/to/ks.cfg
Их можно положить несколько.
> И затем добавить в cmdline ядра:
> ksfile=<путь до скрипта>
>
> ?
Нужно указать имя файла:
ksfile=ks.cfg
> Но фича может очень много всего. Отсюда вопрос, можно ли использовать условия в скрипте?
Я много думал про это. С одной стороны это технически возможно так как
парсер написан на шелле. Но я подумал, что будет лучше иметь совместимость
с redhat kickstart [1].
Произвольный код вставлять в скрипт нельзя, но за счёт этого позволяется
до некоторой степени указывать команды в произвольном порядке.
Произвольный код можно указывать в специальных секциях %pre, %%post,
%onerror.
> Команды внешние?
В сценарии нет. В секциях да [2].
> Например, посмотреть сколько свободного незанятого разделами места. Если больше такого-то значения,
> то создаём дополнительно раздел /home. И в зависимости от количества оперативной памяти добавляем swap такого-то
> размера.
Решение похожих проблем есть в гугле для redhat kickstart. Также один из
примеров [2].
Но если ты скажешь, что что-то делать очень неудобно, то можно расширить
функционал.
[1] https://pykickstart.readthedocs.io/en/latest/kickstart-docs.html
[2] https://pykickstart.readthedocs.io/en/latest/kickstart-docs.html#example
--
Rgrds, legion
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [make-initrd] Как пользоваться фичей kickstarter?
2021-10-05 18:54 ` Alexey Gladkov
@ 2021-10-06 10:03 ` Антон Мидюков
2021-10-06 10:43 ` Alexey Gladkov
0 siblings, 1 reply; 14+ messages in thread
From: Антон Мидюков @ 2021-10-06 10:03 UTC (permalink / raw)
To: make-initrd
06.10.2021 01:54, Alexey Gladkov пишет:
> On Tue, Oct 05, 2021 at 11:20:48PM +0700, Антон Мидюков wrote:
>> 12.04.2021 19:07, Alexey Gladkov пишет:
>>> On Wed, Mar 31, 2021 at 10:17:12AM +0200, Alexey Gladkov wrote:
>>>> # Фича kickstarter
>>>>
>>>> Я нашёл у себя в архиве наброски kickstarter, который я делал ещё для
>>>> server4. Мне подумалось адаптировать этот код или скорее написать его с
>>>> нуля в качестве фичи. Синтаксис этого кикстартера была сильно похожа на
>>>> старый redhat kickstarter. Пока это только мысли так как пока непонятно
>>>> как это лучше интегрировать и вызывать.
>>>
>>> В целом, после выходных у меня получилось реализовать базовый функционал
>>> ignoredisk, clearpart, part, volgroup, logvol... на очереди raid и btrfs.
>>> Ну и потом всё это буду тестировать. Я также планирую реализовать liveimg.
>>> Возможно ещё какие-то, если понадобиться по ходу тестирования.
>>>
>>> Остальные команды я не планирую реализовывать (я же не инсталлер).
>>>
>>> Вариантов запуска kickstarter пока два:
>>>
>>> 1. Сервис в initrd будет дёргать сценарий по параметру в cmdline.
>>> 2. Будет отдельный шаг в pipeline.
>>>
>>
>> Алексей, я посмотрел README этой фичи. В ней есть то, что мне надо - возможность
>> расширить корневой раздел на всё свободное пространство:
>>
>> * `--grow` - Tells the partition to grow to fill available space (if any).
>>
>> команда, получается:
>>
>> part / --grow
>>
>> Я правильно понимаю? Т.е. для моей задачи скрипт будет состоять из одной строки?
>
> Если всё будет работать правильно, то да ))
Работает не так, как я было подумал :) Создаётся новый раздел из свободного пространства.
Не хватает возможности использовать в качестве корня раздел, указанный в cmdline, как root=<такой-то>.
Кажется логичным такое поведение:
Если указан root=<такой-то>, то именно он должен считаться '/'. И операции совершаем над разделом, а не
создаём новый.
Если не указан root=<такой-то>, то поведение как сейчас.
>
>> Скрипт будет внутри initrd? Как его туда положить? Так:
>>
>> PUT_FILES += <путь до скрипта>
>>
>> ?
>
> Например:
>
> KICKSTART_CONFIGS += /path/to/ks.cfg
>
> Их можно положить несколько.
>
>> И затем добавить в cmdline ядра:
>> ksfile=<путь до скрипта>
>>
>> ?
>
> Нужно указать имя файла:
>
> ksfile=ks.cfg
Да, теперь с этим понятно.
>
>> Но фича может очень много всего. Отсюда вопрос, можно ли использовать условия в скрипте?
>
> Я много думал про это. С одной стороны это технически возможно так как
> парсер написан на шелле. Но я подумал, что будет лучше иметь совместимость
> с redhat kickstart [1].
>
> Произвольный код вставлять в скрипт нельзя, но за счёт этого позволяется
> до некоторой степени указывать команды в произвольном порядке.
>
> Произвольный код можно указывать в специальных секциях %pre, %%post,
> %onerror.
>
>> Команды внешние?
>
> В сценарии нет. В секциях да [2].
>
Ага, понятно. А как продолжить загрузку? Я так понимаю, что изначально рассчитано на то, что
производим манипуляции и прекращаем загрузку, перезагружаем или выключаем компьютер.
А мне нужно резайцнуть корневой раздел и продолжить загрузку.
>> Например, посмотреть сколько свободного незанятого разделами места. Если больше такого-то значения,
>> то создаём дополнительно раздел /home. И в зависимости от количества оперативной памяти добавляем swap такого-то
>> размера.
>
> Решение похожих проблем есть в гугле для redhat kickstart. Также один из
> примеров [2].
>
> Но если ты скажешь, что что-то делать очень неудобно, то можно расширить
> функционал.
Раз можно вставлять скрипты в секции, то меня это устраивает.
>
> [1] https://pykickstart.readthedocs.io/en/latest/kickstart-docs.html
> [2] https://pykickstart.readthedocs.io/en/latest/kickstart-docs.html#example
>
--
С уважением, Антон Мидюков <antohami@basealt.ru>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [make-initrd] Как пользоваться фичей kickstarter?
2021-10-06 10:03 ` Антон Мидюков
@ 2021-10-06 10:43 ` Alexey Gladkov
0 siblings, 0 replies; 14+ messages in thread
From: Alexey Gladkov @ 2021-10-06 10:43 UTC (permalink / raw)
To: make-initrd
On Wed, Oct 06, 2021 at 05:03:56PM +0700, Антон Мидюков wrote:
> >> Алексей, я посмотрел README этой фичи. В ней есть то, что мне надо - возможность
> >> расширить корневой раздел на всё свободное пространство:
> >>
> >> * `--grow` - Tells the partition to grow to fill available space (if any).
> >>
> >> команда, получается:
> >>
> >> part / --grow
> >>
> >> Я правильно понимаю? Т.е. для моей задачи скрипт будет состоять из одной строки?
> >
> > Если всё будет работать правильно, то да ))
>
> Работает не так, как я было подумал :) Создаётся новый раздел из свободного пространства.
Сначала хотел возражать, но потом посмотрел в код )) Да, сейчас part
делает новый раздел, который может занять всё свободное пространство.
Нужно подумать как это лучше исправить. То ли я не так понял какое-то
сочетание опций part, то ли я правильно всё понял и нужно сделать
отдельную resize.
> Не хватает возможности использовать в качестве корня раздел, указанный в cmdline, как root=<такой-то>.
> Кажется логичным такое поведение:
> Если указан root=<такой-то>, то именно он должен считаться '/'. И операции совершаем над разделом, а не
> создаём новый.
> Если не указан root=<такой-то>, то поведение как сейчас.
А если захочется изменять размер не /, а /home ?
Составление fstab это несколько отдельная задача. Я согласен, что при его
составлении можно было бы учитывать root= в cmdline, если корень явно не
переопределён в сценарии.
> >> Но фича может очень много всего. Отсюда вопрос, можно ли использовать условия в скрипте?
> >
> > Я много думал про это. С одной стороны это технически возможно так как
> > парсер написан на шелле. Но я подумал, что будет лучше иметь совместимость
> > с redhat kickstart [1].
> >
> > Произвольный код вставлять в скрипт нельзя, но за счёт этого позволяется
> > до некоторой степени указывать команды в произвольном порядке.
> >
> > Произвольный код можно указывать в специальных секциях %pre, %%post,
> > %onerror.
> >
> >> Команды внешние?
> >
> > В сценарии нет. В секциях да [2].
> >
>
> Ага, понятно. А как продолжить загрузку? Я так понимаю, что изначально рассчитано на то, что
> производим манипуляции и прекращаем загрузку, перезагружаем или выключаем компьютер.
> А мне нужно резайцнуть корневой раздел и продолжить загрузку.
Если kickstart был активирован через ksfile= в cmdline, то при загрузке
сервис kickstart поставит на паузу некоторые очереди (udev и
md-raid-member) и остановит текущий метод загрузки. После выполнения
сценария сервис снимет очереди с паузы и восстановит текущий метод.
Таким образом, если в /mnt/root будет что-то смонтировано (все команды
монтируют созданные разделы туда) и там будет init=, то должна начаться
загрузка с этого корня.
--
Rgrds, legion
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2021-10-06 10:43 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-31 8:17 [make-initrd] plans Alexey Gladkov
2021-03-31 8:22 ` Антон Мидюков
2021-03-31 9:27 ` Alexey Gladkov
2021-03-31 10:00 ` Антон Мидюков
2021-03-31 10:32 ` Alexey Gladkov
2021-04-12 12:07 ` Alexey Gladkov
2021-04-14 11:53 ` Alexey Gladkov
2021-04-21 11:41 ` Alexey Gladkov
2021-05-15 19:06 ` Alexey Gladkov
2021-10-05 16:20 ` [make-initrd] Как пользоваться фичей kickstarter? Антон Мидюков
2021-10-05 18:54 ` Alexey Gladkov
2021-10-06 10:03 ` Антон Мидюков
2021-10-06 10:43 ` Alexey Gladkov
2021-05-21 11:25 ` [make-initrd] plans Alexey Gladkov
Make-initrd development discussion
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/make-initrd/0 make-initrd/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 make-initrd make-initrd/ http://lore.altlinux.org/make-initrd \
make-initrd@lists.altlinux.org make-initrd@lists.altlinux.ru make-initrd@lists.altlinux.com
public-inbox-index make-initrd
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.make-initrd
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git