Bug 40878

Summary: grub-2.06-alt3 сломалась загрузка
Product: Sisyphus Reporter: Alexei Takaseev <taf>
Component: grub-pcAssignee: Николай Костригин <nickel>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: blocker    
Priority: P5 CC: nickel, placeholder, rider
Version: unstable   
Hardware: x86_64   
OS: Linux   
Attachments:
Description Flags
/etc/sysconfig/grub2
none
опции в boot
none
опции в csm none

Description Alexei Takaseev 2021-09-08 16:07:43 MSK
После обновления до grub-2.06-alt3 сломалась загрузка с такой диагностикой

GRUB loading:
error: file '/boot/grub/i386-pc/normal.mod' not found.
Entering rescue mode...
grub rescue>

Откат на 2.06-alt1.rc1 проблему решил

# ls -1 /dev/sd*
/dev/sda
/dev/sda1
/dev/sda2
/dev/sdb
/dev/sdb1
/dev/sdc
/dev/sdc1
/dev/sdd
/dev/sdd1
/dev/sdd2
/dev/sde
/dev/sde1
/dev/sde2
/dev/sdf
/dev/sdf1
/dev/sdf2
/dev/sdf3
/dev/sdf5
/dev/sdf6

Система и загрузчик располагаются на /dev/sdf:

# fdisk -l /dev/sdf
Диск /dev/sdf: 465,76 GiB, 500107862016 байт, 976773168 секторов
Disk model: WDC WDS500G2B0B 
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Тип метки диска: dos
Идентификатор диска: 0xa0e146c6

Устр-во    Загрузочный    начало     Конец   Секторы Размер Идентификатор Тип
/dev/sdf1  *                2048  52430847  52428800    25G            83 Linux
/dev/sdf2               52430848  69208063  16777216     8G            82 Linux своп / Solaris
/dev/sdf3               69208064 976773167 907565104 432,8G             5 Расширенный
/dev/sdf5               69210112 153096191  83886080    40G            83 Linux
/dev/sdf6              153098240 887101439 734003200   350G            83 Linux


На /dev/sda располагается Win10

# fdisk -l /dev/sda
Диск /dev/sda: 223,57 GiB, 240057409536 байт, 468862128 секторов
Disk model: IR-SSDPR-S25A-24
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Тип метки диска: dos
Идентификатор диска: 0x6005c3f8

Устр-во    Загрузочный    начало     Конец   Секторы Размер Идентификатор Тип
/dev/sda1                   2048 467798023 467795976 223,1G             7 HPFS/NTFS/exFAT
/dev/sda2  *           467800064 468856831   1056768   516M            27 Скрытый NTFS WinRE
Comment 1 Николай Костригин 2021-09-08 17:06:36 MSK
Спасибо за информацию.
Покажите, пожалуйста, вывод:
cat /etc/sysconfig/grub2

+ данные о платформе (матплата или модель ноутбука)
Comment 2 Alexei Takaseev 2021-09-09 05:26:26 MSK
Created attachment 9654 [details]
/etc/sysconfig/grub2

Материнская плата:

Base Board Information
        Manufacturer: HUANANZHI
        Product Name: X79
        Version: VAA1
        Serial Number: MB-201805242018
        Asset Tag: To be filled by O.E.M.
        Features:
                Board is a hosting board
                Board is replaceable
        Location In Chassis: To be filled by O.E.M.
        Chassis Handle: 0x0003
        Type: Motherboard
        Contained Object Handles: 0

Еще замечание, устройство /dev/disk/by-id/ata-WDC_WDS500G2B0B_184301A00C96 это SATA SSD в формфакторе M.2, подключенный через такой контроллер:

07:00.0 SATA controller: ASMedia Technology Inc. ASM1062 Serial ATA Controller (rev 02) (prog-if 01 [AHCI 1.0])
        Subsystem: ASMedia Technology Inc. Device 1060
        Flags: bus master, fast devsel, latency 0, IRQ 40, NUMA node 0
        I/O ports at 8050 [size=8]
        I/O ports at 8040 [size=4]
        I/O ports at 8030 [size=8]
        I/O ports at 8020 [size=4]
        I/O ports at 8000 [size=32]
        Memory at dfe10000 (32-bit, non-prefetchable) [size=512]
        Expansion ROM at dfe00000 [disabled] [size=64K]
        Capabilities: [50] MSI: Enable+ Count=1/1 Maskable- 64bit-
        Capabilities: [78] Power Management version 3
        Capabilities: [80] Express Legacy Endpoint, MSI 00
        Capabilities: [100] Virtual Channel
        Kernel driver in use: ahci
Comment 3 Николай Костригин 2021-09-09 18:46:44 MSK
(Ответ для Alexei Takaseev на комментарий #2)
[...] 
> Материнская плата:
> 
> Base Board Information
>         Manufacturer: HUANANZHI
>         Product Name: X79
>         Version: VAA1
[...]

Судя по видео [1] Ваша плата поддерживает UEFI и 2!!! режима CSM.
По выбранному компоненту для бага (grub-pc) и типу разметки дисков (dos) я предполагаю, что Вы используете CSM.
Однако есть прецеденты, когда кривая фирмварь дезинформирует вышележащие компоненты о режиме работы железа, рапортуя некую смесь UEFI+BIOS.

Если несложно, приведите, пожалуйста, настройки UEFI/CSM (можно фото), а также вывод утилит:

sudo efibootmgr -v
mokutil --sb-state

Есть ли иные ОС на партициях дисков sdb-sde?
Не было ли проблем при обновлении, что могло привести к смешиванию модулей от старой версии с загрузчиком новой или наоборот?

Я попытался воссоздать подобие Вашей конфигурации в ВМ, но на ней обновление alt1.rc1 -> alt3 происходит без проблем.

# lsblk -f
NAME   FSTYPE FSVER  LABEL                           UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
sda                                                                                                      
├─sda1 ntfs          Зарезервировано системой        C862952562951970                                    
├─sda2 ntfs                                          CEC4971FC497093B                                    
└─sda3 ntfs                                          CA10D0B410D0A8A9                                    
sdb                                                                                                      
sdc                                                                                                      
sdd                                                                                                      
sde                                                                                                      
sdf                                                                                                      
├─sdf1 ext4   1.0                                    762fa804-3131-431a-823b-120aaa4c50d3   10,2G    52% /
├─sdf2 swap   1                                      93343ba1-3f0c-44ee-8f50-9326cfb18adc                [SWAP]
├─sdf4                                                                                                   
├─sdf5 ext4   1.0                                    3415610d-6cbd-4930-9bd1-00461997f4cb    1,8G     0% /var/ftp
├─sdf6 ext4   1.0                                    0c930904-4798-4e37-9231-69acefec0f3f    1,8G     2% /opt
└─sdf7 ext4   1.0                                    57d1114f-9065-45cc-8a35-a9dae4b8491d    2,5G     0% /var/www
sr0    iso966 Joliet ALT 9.2RC1 Workstation K x86_64 2021-07-28-09-05-01-00



[root@hex-disker ~]# fdisk -l /dev/sda
Диск /dev/sda: 32 GiB, 34359738368 байт, 67108864 секторов
Disk model: QEMU HARDDISK   
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Тип метки диска: dos
Идентификатор диска: 0x059403c2

Устр-во    Загрузочный   начало    Конец  Секторы Размер Идентификатор Тип
/dev/sda1  *               2048   104447   102400    50M             7 HPFS/NTFS/exFAT
/dev/sda2                104448 66039280 65934833  31,4G             7 HPFS/NTFS/exFAT
/dev/sda3              66039808 67104767  1064960   520M            27 Скрытый NTFS WinRE
[root@hex-disker ~]# fdisk -l /dev/sdf
Диск /dev/sdf: 32 GiB, 34359738368 байт, 67108864 секторов
Disk model: QEMU HARDDISK   
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Тип метки диска: dos
Идентификатор диска: 0x9da2584c

Устр-во    Загрузочный   начало    Конец  Секторы Размер Идентификатор Тип
/dev/sdf1  *               2048 50724863 50722816  24,2G            83 Linux
/dev/sdf2              50724864 52819967  2095104  1023M            82 Linux своп / Solaris
/dev/sdf4              52819968 67102719 14282752   6,8G             5 Расширенный
/dev/sdf5              52822016 57012223  4190208     2G            83 Linux
/dev/sdf6              57014272 61204479  4190208     2G            83 Linux
/dev/sdf7              61206528 67102719  5896192   2,8G            83 Linux


[1] https://www.youtube.com/watch?v=BOUF5ffQezo
Comment 4 Alexei Takaseev 2021-09-10 07:28:27 MSK
Created attachment 9656 [details]
опции в boot
Comment 5 Alexei Takaseev 2021-09-10 07:33:06 MSK
Created attachment 9657 [details]
опции в csm

# efibootmgr -v
EFI variables are not supported on this system.

# mokutil --sb-state
EFI variables are not supported on this system


на /dev/sdb (обычный SATA SSD) размещена Windows 10:

# fdisk -l /dev/sdb
Диск /dev/sdb: 223,57 GiB, 240057409536 байт, 468862128 секторов
Disk model: IR-SSDPR-S25A-24
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Тип метки диска: dos
Идентификатор диска: 0x6005c3f8

Устр-во    Загрузочный    начало     Конец   Секторы Размер Идентификатор Тип
/dev/sdb1                   2048 467798023 467795976 223,1G             7 HPFS/NTFS/exFAT
/dev/sdb2  *           467800064 468856831   1056768   516M            27 Скрытый NTFS WinRE
Comment 6 Alexei Takaseev 2021-09-10 07:33:47 MSK
# lsblk -f
NAME   FSTYPE FSVER LABEL                    UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
sda                                                                                              
└─sda1 ntfs         E                        A4C84749C8471946                      125,4G    37% /mnt/windows_e
sdb                                                                                              
├─sdb1 ntfs                                  64C0AC5DC0AC3768                      170,4G    24% /mnt/windows_c
└─sdb2 ntfs                                  8AC65373C6535F0F                                    
sdc                                                                                              
└─sdc1 xfs                                   18256556-ace6-4d1f-af3d-4fcefe31cacd  530,5G    43% /mnt/sdc5
sdd                                                                                              
├─sdd1 ntfs                                  50B2BCAE7E9A90EF                       28,5G    60% /mnt/windows_d
└─sdd2 xfs                                   3af98506-761c-47ad-9b33-2ca81a75383a  896,6G    32% /mnt/films
sde                                                                                              
├─sde1 xfs                                   7020b12f-b4e7-4426-8c66-247d57b2369e                
└─sde2 ntfs         Зарезервировано системой 942E6CC82E6CA548                                    
sdf                                                                                              
├─sdf1 xfs                                   a884e01f-97ee-47f5-8007-94f441b1bf1d    8,2G    67% /
├─sdf2 swap   1                              cc291a91-3e82-4874-8ce9-0b0c689c5f60                [SWAP]
├─sdf3                                                                                           
├─sdf5 xfs                                   19327cd4-ef4e-43da-962a-97bc3a5182ef    8,2G    79% /var
└─sdf6 xfs                                   4730158b-640b-4f69-93ec-2b3e0a662c38  159,1G    55% /mnt/sdb5
Comment 7 Николай Костригин 2021-09-10 09:45:06 MSK
sdf1 xfs(Ответ для Alexei Takaseev на комментарий #6)
> # lsblk -f
> [...]
> sdf                                                                         
> ├─sdf1 xfs                                  
> a884e01f-97ee-47f5-8007-94f441b1bf1d    8,2G    67% /

То, что ФС - xfs было неочевидно. Можно попробовать второй заход на воспроизведение.
Comment 8 Николай Костригин 2021-10-01 19:16:42 MSK
(Ответ для Alexei Takaseev на комментарий #6)
> # lsblk -f
> [...]
> sdf                                                                         
> 
> ├─sdf1 xfs                                  
> a884e01f-97ee-47f5-8007-94f441b1bf1d    8,2G    67% /
> [...]

Причина, скорее всего, в [1].
Я соберу для тестирования версию с предложенным патчем в задании 286273.
Потестируете?

[1] https://lists.gnu.org/archive/html/grub-devel/2021-08/msg00123.html
Comment 9 Alexei Takaseev 2021-10-01 19:19:29 MSK
(Ответ для nickel@altlinux.org на комментарий #8)
> (Ответ для Alexei Takaseev на комментарий #6)
> > # lsblk -f
> > [...]
> > sdf                                                                         
> > 
> > ├─sdf1 xfs                                  
> > a884e01f-97ee-47f5-8007-94f441b1bf1d    8,2G    67% /
> > [...]
> 
> Причина, скорее всего, в [1].
> Я соберу для тестирования версию с предложенным патчем в задании 286273.
> Потестируете?
> 
> [1] https://lists.gnu.org/archive/html/grub-devel/2021-08/msg00123.html

Хорошо, проверю.
Comment 10 Alexei Takaseev 2021-10-04 05:36:49 MSK
grub-common-2.06-alt4.x86_64
grub-efi-2.06-alt4.x86_64
grub-pc-2.06-alt4.x86_64


Система загружается нормально.
Comment 11 Repository Robot 2021-10-04 16:46:36 MSK
grub-2.06-alt4 -> sisyphus:

 Fri Oct 01 2021 Nikolai Kostrigin <nickel@altlinux> 2.06-alt4
 - add upstream-fs-xfs-Fix-unreadable-filesystem-with-v4-superblock patch
   (closes: #40878)
Comment 12 Николай Костригин 2021-10-05 10:26:57 MSK
(Ответ для Alexei Takaseev на комментарий #10)
> grub-common-2.06-alt4.x86_64
> grub-efi-2.06-alt4.x86_64
> grub-pc-2.06-alt4.x86_64
> 
> 
> Система загружается нормально.

Спасибо за отчет и помощь в тестировании.