Устанавливал племяннику alt, столкнулся с тем, что наш /etc/grub.d/30_os-prober в упор не видел винды на отдельном ssd. После расследования оказалось, что 30_os-prober полагается на свойство устройства /removable ( /sys/block/${DEVICE_KDNAME}/removable ), однако ssd с виндой внутри был подключен в плату расширения - китайский sata3 PCIE контроллер (на мат плате был только SATA2) который из коробки был в eSATA3 режиме (плюсы: можно более длинный кабель, hotplug). Раз он hotplug, то в ядре он /removable, но по факту нет. подобная фигня случается и под винды тоже https://winitpro.ru/index.php/2019/04/11/sata-ssd-disk-otobrazhaetsya-removable/ Надо бы усложнить логику. Например, добавить в /etc/sysconfig/grub2 поддержку переменных явного списка устройств removable и not_removable: что-то вроде GRUB_OVERRIDE_REMOVABLE_DEVICES="..." GRUB_OVERRIDE_NOT_REMOVABLE_DEVICES="..." Возможно, лучше считать устройства, подключенные через SATA, not_removable по умолчанию. К примеру, если устройств /removable смотреть еще его udevadm info --query=all и если там ID_ATA_SATA=1, то если дополнительно не выставлено UDISKS_SYSTEM_INTERNAL=0 то полагать, что это не /removable. а иначе (если выставлено UDISKS_SYSTEM_INTERNAL=0) полагать, что это все же /removable. Выставить UDISKS_SYSTEM_INTERNAL=0 можно через udev rules, для случаев, когда eSATA там не случайно, а именно для hotplugging.
Спасибо за подробную диагностику и предложенные решения. Поэкспериментирую.
еще бы посоветовал посмотреть на 30_os-prober в других дистрибутивах, fedora, mageia, opensuse в поисках вдохновения и интересного кода. там 30_os-prober совсем другой.