[make-initrd] Как пользоваться фичей kickstarter?
Alexey Gladkov
gladkov.alexey at gmail.com
Wed Oct 6 13:43:50 MSK 2021
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
More information about the Make-initrd
mailing list