[make-initrd] Wait until the resume= is processed

Alexey Gladkov gladkov.alexey at gmail.com
Thu Aug 25 15:41:11 MSK 2022


Привет!

Мне нужна ваша помощь. Я раздумывал про то как устроено resume в initramfs
и связанные с этим проблемы.

Если всё суммировать, то проблема лишь одна:

Если swap на отдельном устройстве, то оно может проинициализироваться
позже чем устройство, на котором находится корень. То есть мы не знаем по
какому сценарию мы движемся.

К счастью мы ждём не какой-нибудь swap, а вполне конкретный, определённый
через параметр resume= . Поэтому если _начать_ считать, что указанное в
параметре устройство обязательно должно по явиться, то неопределённости
уже не будет.

Проблема в том, что сейчас устройство указанное в resume= опционально т.е.
параметр может указывать на что-то от предыдущий установки, например.

У меня есть соблазн сделать:

1. Ждать устройство resume= и пробовать проснуться.

2. Если устройство есть и не получилось, то обрабатывать накопившиеся
эвенты для обычной загрузки.

3. Если мы достигли rootdelay= и resume= не появился, то сбросить delay,
выдать большое предупреждение об отсутствии resume= и грузиться нормально.

4. Возможно, при создании initramfs смотреть на resume= в /proc/cmdline и
предупреждать, что устройства нет. В этом пункте я сильно не уверен.

Что вы думаете по этому поводу ?

-- 
Rgrds, legion



More information about the Make-initrd mailing list