Bug 36624

Summary: grub-mkconfig не видит ещё две OS Linux на втором диске.
Product: Sisyphus Reporter: Горев Андрей <nekapitan2009>
Component: grubAssignee: Николай Костригин <nickel>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P3 CC: klark, nickel, placeholder, rider
Version: unstable   
Hardware: all   
OS: Linux   
Bug Depends on: 37224    
Bug Blocks:    

Description Горев Андрей 2019-04-18 12:16:51 MSK
айден образ linux: /boot/vmlinuz-3.10.32-std-def-alt1
Найден образ initrd: /boot/initrd-3.10.32-std-def-alt1.img
Найден Windows 7 на /dev/sda1
Найден Windows 7 на /dev/sdb1
Found memtest image: /boot/memtest-5.01.bin
завершено

   На диске /dev/sdb ещё две OS Linux (Ubuntu & Debian) помимо Windows 7. До обновления системный grub-mkconfig всё делал без вопросов. Обновился и теперь руками приходится вписывать ещё две конфы.
Comment 1 Николай Костригин 2019-04-18 14:33:57 MSK
Спасибо за отчет.
Можно еще вывод 
#fdisk -l /dev/sd*
и
#lsblk
Comment 2 Anton Farygin 2019-04-18 14:34:32 MSK
lsblk -f
Comment 3 Николай Костригин 2019-09-12 15:48:43 MSK
По результатам изысканий:

grub-mkconfig действительно не видит GNU/Linux-систем на соседнем (по отношению к системной root партиции) физическом диске из-за проблем с os-prober, которые, в свою очередь, видимо, вызваны взаимодействием с device-mapper.

тестировалось на вот такой конфигурации:

$ lsblk -f
NAME   FSTYPE  LABEL                UUID                                 FSAVAIL FSUSE% MOUNTPOINT
sda                                                                                     
├─sda1 ntfs    System Reserved      52D464CCD464B43F                                    
├─sda2 ntfs                         3EF871C9F8717FC7                                    
├─sda3 ext4                         09d325c7-5528-470b-b5b5-70d1c7ba0629                
├─sda4                                                                                  
├─sda5 ext4                         e142009a-5f53-4a6e-838f-f16799b56f28                
├─sda6 ext4                         b9f2e6dd-c6e6-45ea-837b-b8ba9b0b1611                
└─sda7 swap                         cb1f4962-da18-46e8-9932-b5786f76c48c                
sdb                                                                                     
├─sdb1 ntfs    System Reserved      52D464AAD446B43F                                    
├─sdb2 ntfs                         3EF839C8FF727FC7                                    
├─sdb3 ext4                         ec3ee769-2fab-4208-b3d1-68d0650c0a90  155,1M    27% /boot
├─sdb4                                                                                  
└─sdb5 ext4                         cd8a024f-62e8-4ae0-8a18-e5893937d989   18,1G    35% /

при этом нормальный вывод grub-entries:

# grub-entries 
0       ALT Workstation K 9.0 BETA
1>0     Advanced options for ALT Workstation K 9.0 BETA>ALT Workstation K 9.0 BETA, vmlinuz
1>1     Advanced options for ALT Workstation K 9.0 BETA>ALT Workstation K 9.0 BETA, vmlinuz (recovery mode)
1>2     Advanced options for ALT Workstation K 9.0 BETA>ALT Workstation K 9.0 BETA, 4.19.72-std-def-alt1
1>3     Advanced options for ALT Workstation K 9.0 BETA>ALT Workstation K 9.0 BETA, 5.2.11-un-def-alt1
1>4     Advanced options for ALT Workstation K 9.0 BETA>ALT Workstation K 9.0 BETA, 5.0.8-un-def-alt1
2       Windows 7 (loader) (on /dev/sda1)
3       ALT Workstation K 8.3  (Centaurea Ruthenica) (on /dev/sda5)
4>0     Advanced options for ALT Workstation K 8.3  (Centaurea Ruthenica) (on /dev/sda5)>ALT Workstation K 8.3 (on /dev/sda5)
4>1     Advanced options for ALT Workstation K 8.3  (Centaurea Ruthenica) (on /dev/sda5)>ALT Workstation K 8.3, vmlinuz (on /dev/sda5)
4>2     Advanced options for ALT Workstation K 8.3  (Centaurea Ruthenica) (on /dev/sda5)>ALT Workstation K 8.3, vmlinuz (recovery mode) (on /dev/sda5)
4>3     Advanced options for ALT Workstation K 8.3  (Centaurea Ruthenica) (on /dev/sda5)>ALT Workstation K 8.3, 4.19.35-un-def-alt0.M80P.1 (on /dev/sda5)
4>4     Advanced options for ALT Workstation K 8.3  (Centaurea Ruthenica) (on /dev/sda5)>ALT Workstation K 8.3, 4.19.16-un-def-alt0.M80P.1 (on /dev/sda5)
4>5     Advanced options for ALT Workstation K 8.3  (Centaurea Ruthenica) (on /dev/sda5)>ALT Workstation K 9.0 BETA (Centaurea Ruthenica) (на /dev/sdb5) (on /dev/sda5)
4>6     Advanced options for ALT Workstation K 8.3  (Centaurea Ruthenica) (on /dev/sda5)>ALT Workstation K 8.3  (Centaurea Ruthenica) (на /dev/sda5) (на /dev/sdb5) (on /dev/sda5)
4>7     Advanced options for ALT Workstation K 8.3  (Centaurea Ruthenica) (on /dev/sda5)>ALT Workstation K 8.3 (на /dev/sda5) (на /dev/sdb5) (on /dev/sda5)
4>8     Advanced options for ALT Workstation K 8.3  (Centaurea Ruthenica) (on /dev/sda5)>ALT Workstation K 8.3, vmlinuz (на /dev/sda5) (на /dev/sdb5) (on /dev/sda5)
4>9     Advanced options for ALT Workstation K 8.3  (Centaurea Ruthenica) (on /dev/sda5)>ALT Workstation K 8.3, vmlinuz (recovery mode) (на /dev/sda5) (на /dev/sdb5) (on /dev/sda5)
4>10    Advanced options for ALT Workstation K 8.3  (Centaurea Ruthenica) (on /dev/sda5)>ALT Workstation K 9.0 BETA (Centaurea Ruthenica) (на /dev/sdb5) (на /dev/sda5) (на /dev/sdb5) (on /dev/sda5)
4>11    Advanced options for ALT Workstation K 8.3  (Centaurea Ruthenica) (on /dev/sda5)>ALT Workstation K 8.3  (Centaurea Ruthenica) (на /dev/sda5) (на /dev/sdb5) (на /dev/sda5) (на /dev/sdb5) (on /dev/sda5)
4>12    Advanced options for ALT Workstation K 8.3  (Centaurea Ruthenica) (on /dev/sda5)>ALT Workstation K 8.3 (на /dev/sda5) (на /dev/sdb5) (на /dev/sda5) (на /dev/sdb5) (on /dev/sda5)
4>13    Advanced options for ALT Workstation K 8.3  (Centaurea Ruthenica) (on /dev/sda5)>ALT Workstation K 8.3, vmlinuz (на /dev/sda5) (на /dev/sdb5) (на /dev/sda5) (на /dev/sdb5) (on /dev/sda5)
4>14    Advanced options for ALT Workstation K 8.3  (Centaurea Ruthenica) (on /dev/sda5)>ALT Workstation K 8.3, vmlinuz (recovery mode) (на /dev/sda5) (на /dev/sdb5) (на /dev/sda5) (на /dev/sdb5) (on /dev/sda5)
5       Debian GNU/Linux (9.4) (on /dev/sda6)
6>0     Advanced options for Debian GNU/Linux (9.4) (on /dev/sda6)>Debian GNU/Linux (on /dev/sda6)
6>1     Advanced options for Debian GNU/Linux (9.4) (on /dev/sda6)>Debian GNU/Linux, with Linux 4.9.0-8-amd64 (on /dev/sda6)
6>2     Advanced options for Debian GNU/Linux (9.4) (on /dev/sda6)>Debian GNU/Linux, with Linux 4.9.0-8-amd64 (recovery mode) (on /dev/sda6)
6>3     Advanced options for Debian GNU/Linux (9.4) (on /dev/sda6)>Debian GNU/Linux, with Linux 4.9.0-6-amd64 (on /dev/sda6)
6>4     Advanced options for Debian GNU/Linux (9.4) (on /dev/sda6)>Debian GNU/Linux, with Linux 4.9.0-6-amd64 (recovery mode) (on /dev/sda6)
7       Windows 7 (loader) (on /dev/sdb1)
8       Memtest86+-5.01

а в состоянии, когда бага проявляется, полностью отсутствуют упоминания о 
ALT Workstation K 8.3 и Debian.

Вывод grub-mkconfig содержит упоминания об установленных системах, но в grub.cfg данные не попадают.

# update-grub
Генерируется файл настройки grub …
Найден образ linux: /boot/vmlinuz
Найден образ initrd: /boot/initrd.img
Найден образ linux: /boot/vmlinuz-std-def
skipping symlink: /boot/vmlinuz-std-def
Найден образ linux: /boot/vmlinuz-4.19.72-std-def-alt1
Найден образ initrd: /boot/initrd-4.19.72-std-def-alt1.img
Найден образ linux: /boot/vmlinuz-un-def
skipping symlink: /boot/vmlinuz-un-def
Найден образ linux: /boot/vmlinuz-5.2.11-un-def-alt1
Найден образ initrd: /boot/initrd-5.2.11-un-def-alt1.img
Найден образ linux: /boot/vmlinuz-5.0.8-un-def-alt1
Найден образ initrd: /boot/initrd-5.0.8-un-def-alt1.img
*device-mapper: remove ioctl on osprober-linux-sda5  failed: Устройство или ресурс занято
Command failed.*
*device-mapper: remove ioctl on osprober-linux-sda6  failed: Устройство или ресурс занято
Command failed.*
Найден Windows 7 на /dev/sda1
Найден ALT Workstation K 8.3  (Centaurea Ruthenica) на /dev/sda5
Найден Debian GNU/Linux 9 (stretch) на /dev/sda6
Найден Windows 7 на /dev/sdb1
Found memtest image: memtest-5.01.bin

Видно неотключенные партиции osprober*, которые запуском blkdeactivate можно отключить.
После этого несколько повторных запусков update-grub могут привести (с переменным успехом) к появлению записей об одной из двух (!) Linux-систем  на соседнем диске в grub.cfg.

# lsblk -f
NAME                  FSTYPE  LABEL                UUID                                 FSAVAIL FSUSE% MOUNTPOINT
sda                                                                                                    
├─sda1                ntfs    System Reserved      52D464CCD464B43F                                    
├─sda2                ntfs                         3EF871C9F8717FC7                                    
├─sda3                ext4                         09d325c7-5528-470b-b5b5-70d1c7ba0629                
├─sda4                                                                                                 
├─sda5                ext4                         e142009a-5f53-4a6e-838f-f16799b56f28                
│ └─osprober-linux-sda5
│                     ext4                         e142009a-5f53-4a6e-838f-f16799b56f28                
├─sda6                ext4                         b9f2e6dd-c6e6-45ea-837b-b8ba9b0b1611                
│ └─osprober-linux-sda6
│                     ext4                         b9f2e6dd-c6e6-45ea-837b-b8ba9b0b1611                
└─sda7                swap                         cb1f4962-da18-46e8-9932-b5786f76c48c                
sdb                                                                                                    
├─sdb1                ntfs    System Reserved      52D464AAD446B43F                                    
├─sdb2                ntfs                         3EF839C8FF727FC7                                    
├─sdb3                ext4                         ec3ee769-2fab-4208-b3d1-68d0650c0a90  155,1M    27% /boot
├─sdb4                                                                                                 
└─sdb5                ext4                         cd8a024f-62e8-4ae0-8a18-e5893937d989   18,1G    35% /
sr0                   iso9660 Debian 9.4.0 amd64 1 2018-03-10-11-41-22-00



Ошибка не проявляется, если использовать grub2.02-alt15+ совместно с os-prober-1.70 вместо 1.74.

Еще было замечено, что ошибка не проявляется в связке grub2.02-alt15 + os-prober-1.74 если используется ядро std-def 4.19 и проявляется на ядрах un-def 5.{0,2}. Это не очень вяжется с тем, что у топикстартера ядро вообще 3.10.32-std-def-alt1. 

Горев Андрей, прошу проверить решение с откатом версии os-prober до 1.70 на Вашей конфигурации.
Comment 4 Николай Костригин 2019-09-20 13:39:46 MSK
Чтобы не потерялась история:

14.09.2019 15:25, Горев Андрей пишет:

          Команды grub-entries в ALTLinux 8.2 не нашёл. В дистрибутиве тоже нет - проверить не смог.
    update-grub сотворил нормально. Все OS видны с обоих дисков. Версии grub, os-prober и ядра:
    grub-pc-2.02-alt14
    os-prober-1.70-alt1
    4.9.173-std-def-alt0.M80P.1
     
        Стоит самое последнее из дистрибутива ALTLinux 8.2. То есть для std-def должно быть всё тип-топ.
Comment 5 Николай Костригин 2019-09-20 13:40:32 MSK
Да, действительно, команда grub-entries еще не бэкпортирована в p8 (есть в grub начиная релиза alt15, исправлена в alt16).

По сути - это фильтр, выводящий только структуру загрузочных записей из файла /boot/grub/grub.cfg

Спасибо, что проверили.
Comment 6 Repository Robot 2020-02-21 14:10:49 MSK
grub-2.02-alt24 -> sisyphus:

 Thu Feb 20 2020 Nikolai Kostrigin <nickel@altlinux> 2.02-alt24
 - introduce compatibility with os-prober 1.77 (closes: #36624)
   + remove grub-2.00-debian-uefi-os-prober patch
   + add alt-os-prober-compat patch
   + spec: add libfuse-devel to BR to support grub-mount feature
 - spec: replace deprecated PreReq with Requires(pre) for efibootmgr