* [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
* [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
* 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
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