Bug 42887

Summary: Поддержка установки при загрузке с ventoy
Product: Sisyphus Reporter: Антон Мидюков <antohami>
Component: livecd-evmsAssignee: Антон Мидюков <antohami>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: mcpain, mike, ptrnine
Version: unstable   
Hardware: all   
OS: Linux   
See Also: https://bugzilla.altlinux.org/show_bug.cgi?id=42583
Bug Depends on:    
Bug Blocks: 33000    

Description Антон Мидюков 2022-05-30 10:18:08 MSK
Для воспроизведения проблемы необходимо взять регулярку из:
http://nightly.altlinux.org/sisyphus/tested/
Скачать сборку ventoy для linux ventoy-<версия>-linux.tar.gz из:
https://github.com/ventoy/Ventoy/releases
Распаковать архив, перейти в распакованный каталог и, как вариант, запустить веб-версию ventoy:
./VentoyWeb.sh
Будет написан адрес, по которому доступно в веб-браузере:
http://127.0.0.1:24680
Записать Ventoy на флэшку. Примонтировать раздел ventoy и скопировать регулярку на него.
Далее пробовать загружаться. В режиме UEFI необходимо отключить secure boot.
Должен успешно загрузиться live, в случае jeos-sysv - инсталлятор.
Далее запускаем инсталятор, доходим до шага разметки диска.
Дальше ручной разметки пройти не можем. Флэшка, на которой ventoy видится alterator-vm вместе с разделами, тип которых определяется как unknown. В /dev/evms/ флэшки нет, а в /dev/evms/.nodes/ она есть, но без разделов.
Ожидаемый результат: флэшка не отображается в alterator-vm, в /dev/evms/ её нет, шаг проходит успешно, начинается установка.

Теперь о том, что делает ventoy. ventoy - это конфиг grub, который позволяет находить и монтировать iso-образы в grub. При загрузке ядра каким-то образом в ram-диске оказывается каталог /ventoy и /etc/udev/rules.d/99-ventoy.rule, который запускает /ventoy/hook/alt/udev_disk_hook.sh
В результате создаётся устройства /dev/dm-0 и /dev/mapper/ventoy
/dev/mapper/ventoy монтируется, как /image, и происходит загрузка.

Видимо, надо как-то определять связь между флэшкой, где ventoy, и /dev/mapper/ventoy. На основании чего реагировать на флэшку с ventoy также, как и на флэшку с образом, записанным dd, с которого загрузились (ничего с ней не делать и не отображать).
Comment 1 Антон Мидюков 2022-06-07 11:37:46 MSK
alterator-evms не виноват. У него в конфиге /etc/evms.conf в секции sysfs_devices в параметре exclude должны быть указаны устройства, которые нужно игнорировать. В live этим должен заниматься livecd-evms, а в инсаляторе сам инсталятор. Пока на livecd-evms перевешиваю.
Ещё бы понять, как установить связь между /dev/sdX, смонтированным с него образом, и /dev/mapper/ventoy, куда образ смонтирован, чтобы внести /dev/sdX в список игнорируемых устройств.
А то пока только один ориентир - метка тома Ventoy.
Comment 2 Антон Мидюков 2022-06-07 12:10:37 MSK
# dmsetup deps /dev/mapper/ventoy
1 dependencies  : (8, 17)
# ls -l /dev/block/8:17
<чего-то там> /dev/block/8:17 -> ../sdb1

Вот так можно определить связь.
Comment 3 Антон Мидюков 2022-06-07 12:46:14 MSK
(Ответ для Антон Мидюков на комментарий #2)
> # dmsetup deps /dev/mapper/ventoy
> 1 dependencies  : (8, 17)
> # ls -l /dev/block/8:17
> <чего-то там> /dev/block/8:17 -> ../sdb1
> 
> Вот так можно определить связь.

А можно проще:
# dmsetup deps -o devname /dev/mapper/ventoy
1 dependencies  : (sdb1)

При загрузке с propagator, ventoy монтирует в /dev/loop6. Но и для него этот метод работает:
# dmsetup deps -o devname /dev/loop6
1 dependencies  : (sdb1)
Comment 4 Repository Robot 2022-06-09 22:04:38 MSK
livecd-evms-0.2.5-alt1 -> sisyphus:

 Wed Jun 08 2022 Anton Midyukov <antohami@altlinux> 0.2.5-alt1
 - exclude devices on which device mounted in /image depends
   (Closes: 42887)