Bug 13367

Summary: [fix 21] grub2: compatibility with ext4 filesystem created by e2fsprogs 1.47.0+
Product: [ROSA-based products] ROSA Fresh Reporter: Mikhail Novosyolov <m.novosyolov>
Component: Packages from MainAssignee: ROSA Linux Bugs <bugs>
Status: VERIFIED FIXED QA Contact: ROSA Linux Bugs <bugs>
Severity: normal    
Priority: Normal CC: a.betkher, a.proklov, pastordidi, v.potapov
Version: AllFlags: v.potapov: qa_verified+
a.proklov: published+
Target Milestone: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Platform: 2021.1 ROSA Vulnerability identifier:
RPM Package: ISO-related:
Bad POT generating: Upstream:
Attachments: gg,png

Description Mikhail Novosyolov 2023-05-14 16:26:37 MSK
******** QA QADVISORY *********

grub2 2.06-4
https://abf.io/build_lists/4440064
https://abf.io/build_lists/4440065
https://abf.io/build_lists/4440066
https://abf.io/build_lists/4440067
https://abf.io/build_lists/4440068
Если на 22kv4/riscv64 не соберется, то и ладно.

Возможность установки на файловую систему ext4, созданную последней версией e2fsprogs, например, из rosa2023.1.
Comment 1 Dmitry Postnikov 2023-05-16 11:33:17 MSK
Created attachment 5886 [details]
gg,png

При обновах ошибка в скриплете.
Comment 2 Dmitry Postnikov 2023-06-07 12:29:56 MSK
e2k и riscv64 не пошли в тестинг

***************************
The update sent to testings
Comment 3 Mikhail Novosyolov 2023-06-07 12:34:16 MSK
А зачем в тестинг? Надо же грабен-костылен починить.
Comment 4 a.betkher 2023-06-07 13:36:08 MSK
Описанная ошибка появляется когда в /boot/efi/EFI/BOOT есть файлы от других ОС. В таком случае грабен-костылен прерывается с ненулевым кодом завершения. И триггер, который его запустил,  в след за ним тоже пишет ошибку. Это ожидаемое поведение скрипта в данной ситуации, по этому достаточно спрятать ошибку триггера.

грабен-костылен
https://abf.io/build_lists/4483504 x86-64
https://abf.io/build_lists/4483503
https://abf.io/build_lists/4483505
https://abf.io/build_lists/4483506
https://abf.io/build_lists/4483507

Advisory:
 - проверить надо с установкой граба. Можно из бага, можно любого.
 - должна уйти ошибка триггера, вместо нее  пояснение почему прерван grub2-install-hooks
Comment 5 Mikhail Novosyolov 2023-06-07 13:53:17 MSK
(In reply to a.betkher from comment #4)
> Описанная ошибка появляется когда в /boot/efi/EFI/BOOT есть файлы от других
> ОС. В таком случае грабен-костылен прерывается с ненулевым кодом завершения.
> И триггер, который его запустил,  в след за ним тоже пишет ошибку. Это
> ожидаемое поведение скрипта в данной ситуации, по этому достаточно спрятать
> ошибку триггера.
> 
> грабен-костылен
> https://abf.io/build_lists/4483504 x86-64
> https://abf.io/build_lists/4483503
> https://abf.io/build_lists/4483505
> https://abf.io/build_lists/4483506
> https://abf.io/build_lists/4483507
> 
> Advisory:
>  - проверить надо с установкой граба. Можно из бага, можно любого.
>  - должна уйти ошибка триггера, вместо нее  пояснение почему прерван
> grub2-install-hooks

Оно выдало странный, пугающий и запутывающий вывод:

/boot/efi /
/boot/efi/EFI /boot/efi /
mv: указанная цель 'BOOT/BOOTx64.efi' не является каталогом
/boot/efi /
/
Comment 6 Mikhail Novosyolov 2023-06-07 14:05:49 MSK
Добавил set -x в /usr/sbin/grub2-install-hooks и сделал dnf reinstall grub2 grub2-efi

  Запуск скриптлета: grub2-2.06-17.x86_64                                                                                                                                                 4/4 
+ ID=rosa
+ GRUBDIR=/boot/grub2
+ MNTPOINT=/boot/efi
+ '[' -d /sys/firmware/efi ']'
++ arch
+ ARCH=x86_64
+ echo x86_64
+ grep -q 86
++ find /boot -name 'rosa-iso-build*'
+ '[' '/boot/efi/rosa-iso-build_42509
/boot/efi/rosa-iso-build_43195' ']'
+ losetup
+ grep -q LiveOS/rootfs.img
++ df -h /boot
++ read
++ awk '{print $1; exit}'
++ sed 's/[[:digit:]]*$//'
+ grub2-install /dev/sdb
Выполняется установка для платформы x86_64-efi.
Установка завершена. Ошибок нет.
+ update-grub2
Updating /boot/grub2/locale..
Генерируется файл настройки grub …
Найдена тема: /boot/grub2/themes/rosa/theme.txt
Найден фон: /boot/grub2/themes/rosa/terminal_background.png
Найден образ linux: /boot/vmlinuz-6.1.20-generic-2rosa2021.1-x86_64
Найден образ initrd: /boot/initrd-6.1.20-generic-2rosa2021.1-x86_64.img
Найден образ linux: /boot/vmlinuz-5.15.103-generic-1rosa2021.1-x86_64
Найден образ initrd: /boot/initrd-5.15.103-generic-1rosa2021.1-x86_64.img
Найден образ linux: /boot/vmlinuz-5.10.176-generic-1rosa2021.1-x86_64
Найден образ initrd: /boot/initrd-5.10.176-generic-1rosa2021.1-x86_64.img
Found pcmemtest image: /boot/pcmemtest
Предупреждение: os-prober will be executed to detect other bootable partitions.
Its output will be used to detect bootable binaries on them and create new boot entries.
Найден Windows Boot Manager на /dev/sdb1@/EFI/Microsoft/Boot/bootmgfw.efi
Найден ROSA Fresh rootfs 13.0 на /dev/sdb2
Найден Adélie Linux 1.0 (Release Candidate 2) на /dev/sdb2
Найден ROSA Fresh rootfs 13.0 на /dev/sdb2
Найден ROSA Fresh rootfs 12.4 на /dev/sdb2
Найден ROSA Desktop Fresh R11.1 EE 2016.1 Desktop на /dev/sdb2
Найден ROSA Enterprise Linux Server release 6.9 (Helium) на /dev/sdb2
Добавляется элемент загрузочного меню для настроек микропрограммы UEFI …
завершено
+ '[' -d /boot/grub2 ']'
+ pushd /boot/efi
/boot/efi /
++ ls -1d EFI efi Efi
++ tail -n1
+ EFIDIR=EFI
+ '[' EFI ']'
+ pushd EFI
/boot/efi/EFI /boot/efi /
+ df -t vfat ./
+ '[' -d rosa ']'
++ ls -1d BOOT boot Boot
++ tail -n1
+ BOOTDIR=BOOT
+ '[' BOOT ']'
+ mkdir -p BOOT
++ ls -1 BOOT
+ '[' 'AllocPages.efi
bltgrid.efi
debughook.efi
drv0.efi
drv0_use.efi
exit.efi
FreePages.efi
grub.cfg
grubx64.efi
lfbgrid.efi
mmia32.efi
mmx64.efi
modelist.efi
printenv.efi
rosa.readme
route80h.efi
setdbg.efi
setjmp.efi
shimia32.efi
shimx64.efi
t2.efi
t3.efi
t4.efi
t5.efi
t6.efi
t7.efi
t8.efi
tcc.efi
t.efi
unsetdbg.efi' ']'
+ '[' '!' -f BOOT/rosa.readme ']'
+ PREFIX=x64
+ '[' x86_64 '!=' x86_64 ']'
+ rm -f BOOT/AllocPages.efi BOOT/bltgrid.efi BOOT/debughook.efi BOOT/drv0.efi BOOT/drv0_use.efi BOOT/exit.efi BOOT/FreePages.efi BOOT/grub.cfg BOOT/grubx64.efi BOOT/lfbgrid.efi BOOT/mmia32.efi BOOT/mmx64.efi BOOT/modelist.efi BOOT/printenv.efi BOOT/rosa.readme BOOT/route80h.efi BOOT/setdbg.efi BOOT/setjmp.efi BOOT/shimia32.efi BOOT/shimx64.efi BOOT/t2.efi BOOT/t3.efi BOOT/t4.efi BOOT/t5.efi BOOT/t6.efi BOOT/t7.efi BOOT/t8.efi BOOT/tcc.efi BOOT/t.efi BOOT/unsetdbg.efi
+ cp -f rosa/AllocPages.efi rosa/bltgrid.efi rosa/debughook.efi rosa/drv0.efi rosa/drv0_use.efi rosa/exit.efi rosa/FreePages.efi rosa/grub.cfg rosa/grubx64.efi rosa/lfbgrid.efi rosa/mmia32.efi rosa/mmx64.efi rosa/modelist.efi rosa/printenv.efi rosa/route80h.efi rosa/setdbg.efi rosa/setjmp.efi rosa/shimia32.efi rosa/shimx64.efi rosa/t2.efi rosa/t3.efi rosa/t4.efi rosa/t5.efi rosa/t6.efi rosa/t7.efi rosa/t8.efi rosa/tcc.efi rosa/t.efi rosa/unsetdbg.efi BOOT/
+ mv BOOT/shimia32.efi BOOT/shimx64.efi BOOT/BOOTx64.efi
mv: указанная цель 'BOOT/BOOTx64.efi' не является каталогом
+ cat
+ popd
/boot/efi /
+ popd
/
Comment 7 Dmitry Postnikov 2023-06-07 14:08:09 MSK
Добавляется элемент загрузочного меню для настроек микропрограммы UEFI …
завершено
/boot/efi /home/user
/boot/efi/EFI /boot/efi /home/user
EFI/BOOT must be empty or contain Rosa bootloaders. Aborting /usr/sbin/grub2-install-hooks
47
Comment 8 a.betkher 2023-06-07 15:01:38 MSK
> EFI/BOOT must be empty or contain Rosa bootloaders. Aborting /usr/sbin/grub2-install-hooks

Тут все как задумано. Пойдет?

> Добавил set ....
Проблема проявляется когда установлен gnu-efi. Теперь должно работать и с ним.

https://abf.io/build_lists/4483526
https://abf.io/build_lists/4483527 - x86_64
https://abf.io/build_lists/4483528
https://abf.io/build_lists/4483529 
https://abf.io/build_lists/4483530
Comment 9 Dmitry Postnikov 2023-06-07 17:03:36 MSK
(In reply to a.betkher from comment #4)
> Описанная ошибка появляется когда в /boot/efi/EFI/BOOT есть файлы от других
> ОС. В таком случае грабен-костылен прерывается с ненулевым кодом завершения.
> И триггер, который его запустил,  в след за ним тоже пишет ошибку. Это
> ожидаемое поведение скрипта в данной ситуации, по этому достаточно спрятать
> ошибку триггера.
> 
> грабен-костылен
> https://abf.io/build_lists/4483504 x86-64
> https://abf.io/build_lists/4483503
> https://abf.io/build_lists/4483505
> https://abf.io/build_lists/4483506
> https://abf.io/build_lists/4483507
> 
> Advisory:
>  - проверить надо с установкой граба. Можно из бага, можно любого.
>  - должна уйти ошибка триггера, вместо нее  пояснение почему прерван
> grub2-install-hooks

(In reply to a.betkher from comment #8)
> > EFI/BOOT must be empty or contain Rosa bootloaders. Aborting /usr/sbin/grub2-install-hooks
> 
> Тут все как задумано. Пойдет?
> 
> > Добавил set ....
> Проблема проявляется когда установлен gnu-efi. Теперь должно работать и с
> ним.
> 
> https://abf.io/build_lists/4483526
> https://abf.io/build_lists/4483527 - x86_64
> https://abf.io/build_lists/4483528
> https://abf.io/build_lists/4483529 
> https://abf.io/build_lists/4483530

***************************
The update sent to testings
Comment 10 Vladimir Potapov 2023-06-13 11:46:28 MSK
grub2-2.06-17
https://abf.io/build_lists/4440064
https://abf.io/build_lists/4440065
https://abf.io/build_lists/4440066

grub2-install-hooks-0.3-11
https://abf.io/build_lists/4483526
https://abf.io/build_lists/4483527 - x86_64
https://abf.io/build_lists/4483528
https://abf.io/build_lists/4483529 
https://abf.io/build_lists/4483530

************************ Advisory **********************
New ext4 format setup capability
********************************************************
QA Verified