Make-initrd development discussion
 help / color / mirror / Atom feed
* [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