Bug 40142 - Сломана установка через livecd-install после обновления udev до версии 248.3-alt1
Summary: Сломана установка через livecd-install после обновления udev до версии 248.3-...
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: installer-scripts-remount-stage2 (show other bugs)
Version: unstable
Hardware: all Linux
: P5 critical
Assignee: Антон Мидюков
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks: 33000
  Show dependency tree
 
Reported: 2021-06-02 17:12 MSK by Антон Мидюков
Modified: 2021-06-04 06:57 MSK (History)
5 users (show)

See Also:


Attachments
Невозможно установить загрузчик grub (46.96 KB, image/png)
2021-06-02 17:12 MSK, Антон Мидюков
no flags Details
Воспроизвёл на bootchain/altboot с установкой mate (89.73 KB, image/jpeg)
2021-06-02 23:05 MSK, Leonid Krivoshein
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Антон Мидюков 2021-06-02 17:12:52 MSK
Created attachment 9396 [details]
Невозможно установить загрузчик grub

Сломана установка live через livecd-install после обновления udev с версии 247.3-alt2 до версии 248.3-alt1.
При установке в режиме UEFI доходит до шага установки загрузчика grub. Раздел /boot/efi создан и смонтирован в целевую систему. efivarfs смонтирована в /sys/firmware/efi/efivars/. Переменные там доступны. Но в alterator-grub установка grub-efi не доступна (соответствующих пунктов выбора нет). Есть только пункт установки на жёсткий диск. Установка на жёсткий диск оканчивается ошибкой "не удалось получить канонический путь overlay". При установке в legacy также доступна только установка загрузчика на Жёсткий диск, и ошибка та же.
Проблема есть в live, как с systemd, так и с sysvinit.

Виновный пакет был определён следующим образом. Была собрана предыдущая версия systemd с поднятой Epoch. После чего был собран образ icewm-sysv, в котором нет systemd, но есть udev. Образ нормально устанавливается как в режиме UEFI, так и в legacy.

Вывод: фатальные изменения произошли в udev.
Далее нужно определиться, что это за изменения.
Comment 1 Антон Мидюков 2021-06-02 18:05:55 MSK
Похоже, что не произошёл чрут в установленную систему. Если сделать чрут в этом же live, то grub нормально устанавливается. А такая ошибка происходит при запуске grub-install непосредственно в live.
Comment 2 Leonid Krivoshein 2021-06-02 21:35:12 MSK
Непонятно, как связаны эти сообщения с udev и выводимыми ошибками. Про канонический путь overlay -- надеюсь, речь не о загрузке с bootchain?

После вчерашнего обновления на Сизифе на регулярке Rescue наблюдаю такую картину. При переходе в stage2 из initrd с bootchain можно увидеть на консоли сообщения загрузки, в пропагаторных образах этого не видно, как я понял:

...
INIT: Entering runlevel: 2
Stopping udevd service:                              [ DONE ]
Failed to send exit request: Connection refused
Stopping polld service:                              [ DONE ]
Stopping ueventd service:                            [ DONE ]
...

То есть, в stage1 возможно остался не убитый udevd.
Comment 3 Leonid Krivoshein 2021-06-02 23:05:06 MSK
Created attachment 9397 [details]
Воспроизвёл на bootchain/altboot с установкой mate

У меня давно был зуб на скрипт remount в инсталляторе. Конкретно на этом выпадении в журнал /tmp/remount.log попадает следующее:

...
+ umount_chroot
+ fuser -vv -k -m /mnt/destination
/usr/sbin/install2-remount-functions: line 106: 5838 File size limit exceeded(core dumped) fuser -vv -k -m "$destdir"
...
+ pushd /dev/mapper
/dev/mapper /
+ for i in *_luks
+ /sbin/cryptsetup luksClose '*_luks'
Device *_luks is not active
+ dmsetup remove '*_luks'
device mapper: remove ioctl on \x2a_luks failed: No such device or address
Command failed.
...
+ /sbin/lvm lvchange -ay --noudevsync
<warnings skipped>
  No command with maching syntax recognized.
  Run 'lvchange --help' for more information.
  lvchange -a|--activate y|n|ay VG|LV|Tag|Select ...
  Activate or deactivate an LV.
...

Итого три проблемы, которые надо лечить, не считая мелочи. На данном этапе remount вывел /proc/mounts из 27 строк. На этапе возникновения ошибок там уже 66 строк, overlay встречается дважды, второй раз он смонтирован в /mnt/destination/livecd-root. Но, кажется, у нас и раньше этот ужас присутствовал в desktop installer. Не удивительно, что целевой корень остался смонтированным, так как fuser засегфолтился. Подозреваю, не уложился в лимиты.

# grep /mnt/destination/livecd-root /proc/mounts
33
# grep /mnt/destination/livecd-root /proc/mounts |
    cut -f2 -d' ' |tac |umount
# grep /mnt/destination/livecd-root /proc/mounts
# chroot /mnt/destination grub-install /dev/sda
Выполняется установка для платформы i386-pc.
Установка завершена. Ошибок нет.

И psmisc, и installer-scripts-remount-stage2 обновлялись давно, они не являются прямыми виновниками проблемы. Но в них тоже есть очень нехорошие ошибки (в psmisc -- под вопросом, во втором как минимум три баги сразу).
Comment 4 Leonid Krivoshein 2021-06-03 01:14:00 MSK
(In reply to Leonid Krivoshein from comment #3)
> Не удивительно, что целевой корень остался смонтированным,
> так как fuser засегфолтился. Подозреваю, не уложился в лимиты.
В лимиты и правда не укладывается с -vv, удаление /etc/security/limits.d/* не помогает. Без -vv fuser не сегфолтится, но и проблемы это не решает. Корень livecd видимо должен оставаться смонтированным.

> + /sbin/lvm lvchange -ay --noudevsync
Вот эта команда вообще не нужна. А это легко исправляется добавлением set +f и одной проверкой в цикле:

> Device *_luks is not active
> device mapper: remove ioctl on \x2a_luks failed: No such device or address
> Command failed.
Судя по выводу, ошибка в grub явно есть: зачем grub-probe пытается дёргать overlay, а не пропускает его? Надо понять, это специфично для bootchain/altboot или же с пропагатором такая же картина.
Comment 5 Антон Мидюков 2021-06-03 05:13:08 MSK
(Ответ для Leonid Krivoshein на комментарий #4)
> Судя по выводу, ошибка в grub явно есть: зачем grub-probe пытается дёргать
> overlay, а не пропускает его? Надо понять, это специфично для
> bootchain/altboot или же с пропагатором такая же картина.

Я выше написал, что такая ошибка grub возникает при запуске непосредственно в livecd. А если зачрутиться в устанавливаемую систему, то ок. Т.е. не произошёл чрут в установленную систему и шаг alterator-grub запущен в live системе.
Comment 6 Leonid Krivoshein 2021-06-03 10:06:16 MSK
(In reply to Антон Мидюков from comment #5)
> (Ответ для Leonid Krivoshein на комментарий #4)
> Я выше написал, что такая ошибка grub возникает при запуске непосредственно
> в livecd. А если зачрутиться в устанавливаемую систему, то ок. Т.е. не
> произошёл чрут в установленную систему и шаг alterator-grub запущен в live
> системе.
Так это диск с пропагатором или без разницы? Просто, такие ошибки позволяют выловить и исправить сразу букет других проблем.
Comment 7 AEN 2021-06-03 10:15:58 MSK
(Ответ для Leonid Krivoshein на комментарий #6)
> (In reply to Антон Мидюков from comment #5)
> > (Ответ для Leonid Krivoshein на комментарий #4)
> > Я выше написал, что такая ошибка grub возникает при запуске непосредственно
> > в livecd. А если зачрутиться в устанавливаемую систему, то ок. Т.е. не
> > произошёл чрут в установленную систему и шаг alterator-grub запущен в live
> > системе.
> Так это диск с пропагатором или без разницы? Просто, такие ошибки позволяют
> выловить и исправить сразу букет других проблем.

Да. Но давайте решать другие проблемы отдельно, не надо все в кучу в одном обсуждении.
Comment 8 Антон Мидюков 2021-06-03 20:56:13 MSK
Сравнил точки монтирования на шаге установки grub регулярки за прошлую неделю (исправную) и текущую (неисправную). На исправной на две точки монтирования больше. Это:
/dev/sda3 on /run/alteratord type ext4 (rw,relatime)
/dev/sda3 on /mnt/destination/livecd-root/run/alteratord type ext4 (rw,relatime)

/dev/sda3 - корень устанавливаемой системы.

Это не отрабатывает монтирование каталога с сокетом:
mount -o bind /mnt/destination//var/run/alteratord /var/run/alteratord

По причине того, что отсутствует каталог /mnt/destination/var/run/alteratord
Если его создать, то система устанавливается нормально.

Буду исправлть livecd-install.

Почему изменилось содержимое /mnt/destination/run, мне пока непонятно.
Но выглядит оно так, будто раньше выполнялся systemd-tmpfiles --create в нём.
Думаю, даже стоит монтировать runfs в /mnt/destination/run, а затем выполнять systemd-tmpfiles --create, чтобы мусора не было.

Примечание: /mnt/destination/var/run является симлинком на /mnt/destination/run
Comment 9 Антон Мидюков 2021-06-04 05:54:55 MSK
Нужно это(Ответ для Антон Мидюков на комментарий #8)
> Думаю, даже стоит монтировать runfs в /mnt/destination/run, а затем
> выполнять systemd-tmpfiles --create, чтобы мусора не было.

Это нужно делать в install2-remount-functions.
Comment 10 Repository Robot 2021-06-04 06:57:39 MSK
installer-scripts-remount-stage2-0.5.21-alt1 -> sisyphus:

 Fri Jun 04 2021 Anton Midyukov <antohami@altlinux> 0.5.21-alt1
 - install2-remount-functions: Add mount/umount runfs to destination/run
   (Closes: 40142)