Bug 40228

Summary: unable to mount root with modules compiled in
Product: Sisyphus Reporter: Sergey Bolshakov <sbolshakov>
Component: make-initrdAssignee: Alexey Gladkov <legion>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: antohami, glebfm, ldv, legion, placeholder
Version: unstable   
Hardware: all   
OS: Linux   

Description Sergey Bolshakov 2021-06-16 11:53:08 MSK
make-initrd версии 2.17.0 и далее создаёт неработоспособный initrd при условиях:
- AUTODETECT=root в initrd.mk
- всё потребное для поддержки искомого блочного устройства уже в ядре, а не модулями, так что в initrd попадает например только ext4 сотоварищи;

при этом, если включен rdshell, можно выполнить:
(initramfs) mount /root
(initramfs) ^D,
и загрузка завершится успешно.

можно также искусственно обогатить содержимое initrd, напр. указав AUTODETECT=all и получив в составе initrd не нужное для основной задачи
(примонтировать /) приращение вроде ehci-* и также успешно загрузиться.
Comment 1 Alexey Gladkov 2021-06-16 11:57:30 MSK
Можешь прислать мне bug-report и рабочий и нерабочий initrd ?
Comment 2 Alexey Gladkov 2021-06-16 12:11:40 MSK
(Ответ для Alexey Gladkov на комментарий #1)
> Можешь прислать мне bug-report и рабочий и нерабочий initrd ?

Меня интересует initrd (AUTODETECT=root) и initrd (AUTODETECT=all).
Comment 3 Sergey Bolshakov 2021-06-16 12:26:45 MSK
(In reply to Alexey Gladkov from comment #2)
> Меня интересует initrd (AUTODETECT=root) и initrd (AUTODETECT=all).

https://lioka.obninsk.ru/mki.tar
Comment 4 Alexey Gladkov 2021-06-16 14:19:54 MSK
Кажется ясно.

AUTODETECT = root common

будет работать образ ?
Comment 5 Sergey Bolshakov 2021-06-16 15:14:48 MSK
(In reply to Alexey Gladkov from comment #4)
> Кажется ясно.
> 
> AUTODETECT = root common
> 
> будет работать образ ?

да, так работает -- но такое решение временное, верно ?
Или, как сейчас следует получать минимальный initrd --
до обсуждаемой версии было достаточно чего-то вроде

AUTODETECT=  MODULES_ADD=ext4 FEATURES='add-modules compress cleanup' make-initrd --config=/dev/null

и результат был работоспособен.
Comment 6 Alexey Gladkov 2021-06-16 15:44:08 MSK
(Ответ для Sergey Bolshakov на комментарий #5)
> > AUTODETECT = root common
> > 
> > будет работать образ ?
> 
> да, так работает -- но такое решение временное, верно ?

Насчёт AUTODETECT скорее всего временное. Нужно подумать как это лучше исправить.

> Или, как сейчас следует получать минимальный initrd --
> до обсуждаемой версии было достаточно чего-то вроде
> 
> AUTODETECT=  MODULES_ADD=ext4 FEATURES='add-modules compress cleanup'
> make-initrd --config=/dev/null
> 
> и результат был работоспособен.

Я предполагаю, что если в такой конфигурации добавить в FEATURES add-udev-rules то всё будет снова работать. Это тоже временное решение.

Новая add-udev-rules вытягивается AUTODETECT=common и я хотел сделать её отключаемой, но не учёл такой
Comment 7 Alexey Gladkov 2021-06-16 15:46:52 MSK
(Ответ для Sergey Bolshakov на комментарий #5)
> > AUTODETECT = root common
> > 
> > будет работать образ ?
> 
> да, так работает -- но такое решение временное, верно ?

Насчёт AUTODETECT скорее всего временное. Нужно подумать как это лучше исправить.

> Или, как сейчас следует получать минимальный initrd --
> до обсуждаемой версии было достаточно чего-то вроде
> 
> AUTODETECT=  MODULES_ADD=ext4 FEATURES='add-modules compress cleanup'
> make-initrd --config=/dev/null
> 
> и результат был работоспособен.

Я предполагаю, что если в такой конфигурации добавить в FEATURES add-udev-rules то всё будет снова работать. Это тоже временное решение.

Новая add-udev-rules вытягивается AUTODETECT=common и я хотел сделать её отключаемой, но не учёл такой паттерн вызова. Видимо придётся жёстко требовать её для создания initrd. Эта фича важна, потому что она анализирует правила udev и добавляет в образ утилиты, которые из них вызываются.
Comment 8 Repository Robot 2021-06-17 19:03:57 MSK
make-initrd-2.19.0-alt1 -> sisyphus:

 Thu Jun 17 2021 Alexey Gladkov <legion@altlinux.ru> 2.19.0-alt1
 - New version (2.19.0).
 - Add add-udev-rules to the list of dependencies of other features (ALT#40228).
 - Check only devices of class PCI_CLASS_DISPLAY_VGA (ALT#40233).
Comment 9 Антон Мидюков 2021-06-17 19:10:48 MSK
(Ответ для Alexey Gladkov на комментарий #7)
> Я предполагаю, что если в такой конфигурации добавить в FEATURES
> add-udev-rules то всё будет снова работать. Это тоже временное решение.
> 

В mkimage-profiles я так и сделал. Хорошо, что починили, можно откатить то изменение.