From: "Антон Мидюков" <antohami@basealt.ru>
To: make-initrd@lists.altlinux.org
Subject: Re: [make-initrd] Как пользоваться фичей kickstarter?
Date: Wed, 6 Oct 2021 17:03:56 +0700
Message-ID: <a8f2dac1-3d16-1cc5-9a41-2daf1b35c538@basealt.ru> (raw)
In-Reply-To: <20211005185449.d7bno32xduorf7wk@example.org>
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>
next prev parent reply other threads:[~2021-10-06 10:03 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
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 ` Антон Мидюков [this message]
2021-10-06 10:43 ` Alexey Gladkov
2021-05-21 11:25 ` [make-initrd] plans Alexey Gladkov
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=a8f2dac1-3d16-1cc5-9a41-2daf1b35c538@basealt.ru \
--to=antohami@basealt.ru \
--cc=make-initrd@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
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