Bug 49491 - Не монтируется efivars, из-за этого невозможно загрузиться с IMSM (RAID)
Summary: Не монтируется efivars, из-за этого невозможно загрузиться с IMSM (RAID)
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: make-initrd (show other bugs)
Version: unstable
Hardware: all Linux
: P5 normal
Assignee: Alexey Gladkov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-02-22 19:24 MSK by Антон Мидюков
Modified: 2024-02-26 16:28 MSK (History)
5 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Антон Мидюков 2024-02-22 19:24:17 MSK
Проблема вызвана изменением:
https://github.com/osboot/make-initrd/commit/fc92d96ba563a25111180aa7ee1fccde557d6d7c#diff-1ce701d6fb9ecb3360f2ac05f53d30b626c33c12d0e8bc0017f22d6a40a0d8c7L114

-	modprobe -n efivarfs &&
+	if grep -qsw efivarfs /proc/filesystems; then
		fstab+=("efivarfs /sys/firmware/efi/efivars efivarfs rw,nosuid,nodev,noexec,relatime 0 0")
+	fi

efivarfs будет в /proc/filesystems после того, как модуль efivarfs загрузится.
Видимо, нужно, чтобы в features/mdadm/guess/device efivarfs не просто добавлялся, но добавлялся как модуль, который должен быть загружен.
Comment 1 Alexey Gladkov 2024-02-23 16:29:47 MSK
Сервис fstab загружается до udev и modules. Поэтому на момент выподнения этого кода модуль efivarfs не кому загрузить. Именно поэтому тут этот modprobe.

Если у вас efivarfs вкомпилирован и поэтому текущий код не работает, то я бы переписал код вот таким образом:

-	modprobe -n efivarfs &&
+	modprobe -q fs-efivarfs 2>/dev/null ||:
+
+	if grep -qsw efivarfs /proc/filesystems; then
		fstab+=("efivarfs /sys/firmware/efi/efivars efivarfs rw,nosuid,nodev,noexec,relatime 0 0")
+	fi
Comment 2 Антон Мидюков 2024-02-23 16:57:57 MSK
(Ответ для Alexey Gladkov на комментарий #1)
> Сервис fstab загружается до udev и modules. Поэтому на момент выподнения
> этого кода модуль efivarfs не кому загрузить. Именно поэтому тут этот
> modprobe.
> 
> Если у вас efivarfs вкомпилирован и поэтому текущий код не работает, то я бы
> переписал код вот таким образом:

Нет, модуль не вкомпилирован. Проблема как раз в том, что modprobe убран. Верните его тогда.
Comment 3 Alexey Gladkov 2024-02-23 18:01:57 MSK
Да, это было ошибкой.
Comment 4 Антон Мидюков 2024-02-24 10:28:31 MSK
(Ответ для Alexey Gladkov на комментарий #3)
> Да, это было ошибкой.

Видимо, нужно так:
+	modprobe -q efivarfs 2>/dev/null
 	if grep -qsw efivarfs /proc/filesystems; then
		fstab+=("efivarfs /sys/firmware/efi/efivars efivarfs rw,nosuid,nodev,noexec,relatime 0 0")
 	fi

То есть всегда пробуем грузить, ошибку не показываем. Если модуль загрузился, то  условие выполнится, и запись в fstab добавится.
Comment 5 Leonid Krivoshein 2024-02-24 10:40:15 MSK
(In reply to Антон Мидюков from comment #4)
> Видимо, нужно так:
Без бояна нельзя, вообще уже же вот:
https://bugzilla.altlinux.org/show_bug.cgi?id=49491#c1
Comment 6 Антон Мидюков 2024-02-24 11:12:32 MSK
(Ответ для Leonid Krivoshein на комментарий #5)
> (In reply to Антон Мидюков from comment #4)
> > Видимо, нужно так:
> Без бояна нельзя, вообще уже же вот:
> https://bugzilla.altlinux.org/show_bug.cgi?id=49491#c1

Точно. Ждём тогда это изменение.
Comment 7 Repository Robot 2024-02-26 16:28:08 MSK
make-initrd-2.44.0-alt1 -> sisyphus:

 Mon Feb 26 2024 Alexey Gladkov <legion@altlinux.ru> 2.44.0-alt1
 - New version (2.44.0).
 - Feature plymouth:
   + Stop plymouth before running rdshell (ALT#49492).
   + Do not start plymouth if using rdshell.
 - Runtime:
   + Try to load efivarfs before mount (ALT#49491).
 - Misc:
   + Improve bug-report generation.
   + Rewrite mi-bug-report.