Bug 38051

Summary: Предложения по улучшению детектирования установленных ОС
Product: Sisyphus Reporter: ruslandh <ruslandh>
Component: os-proberAssignee: Anton V. Boyarshinov <boyarsh>
Status: NEW --- QA Contact: qa-sisyphus
Severity: enhancement    
Priority: P5 CC: boyarsh, nickel, ruslandh, zerg
Version: unstable   
Hardware: all   
OS: Linux   
Attachments:
Description Flags
Пример возможной реализации /usr/lib/os-probes/mounted/90linux-distro none

Description ruslandh 2020-02-07 15:38:18 MSK
Created attachment 8586 [details]
Пример возможной реализации  /usr/lib/os-probes/mounted/90linux-distro

Предлагаю внести следующие улучшения :
 
1 определять версию Linux по началу названия файла *-release (пример предлагаемы изменнений прилагаю)
2 Если возможно взять имя дистрибутива из его файла настройки загрузчика, то взять его (тем более, что в advanced режиме так и делается)
3. Добавить к os-prober возможность использования белого и черного списка, 
например из 
/etc/os-prober/white_list  и /etc/os-prober/black_list

Если есть файл с white_list, то пропускать на проверку дальше диски и разделы из него, если нет, то все
Если есть файл с blacl_list, то  не пропускать на проверку диски и разделы прописанные в нём, даже если они есть в белом списке.
Comment 1 ruslandh 2020-02-07 15:45:35 MSK
И да, уберите слово "Unknown" - достаточно написать просто Linux и раздел загрузки. Оно не несёт никакого смысла, а только вызывает подзрение у заказчиков, что ему подсуенули недоделанную стстему.
Comment 2 Sergey V Turchin 2020-02-07 17:33:59 MSK
(Ответ для ruslandh на комментарий #1)
> И да, уберите слово "Unknown"
Или заменить на Generic.

> - достаточно написать просто Linux
Слишком жирно для какого-то Unknown. ;-)
Comment 3 Sergey V Turchin 2020-02-07 17:36:21 MSK
(Ответ для ruslandh на комментарий #0)
> 1 определять версию Linux по началу названия файла *-release
Этот костыль нужен только при отсутствии /etc/os-release.
Comment 4 Николай Костригин 2020-02-07 17:44:30 MSK
В grub есть GRUB_OS_PROBER_SKIP_LIST

http://git.altlinux.org/people/nickel/packages/?p=grub.git;a=blob;f=grub/util/grub.d/30_os-prober.in;h=515a68c7aa023afa1fae5fd5d79d450cf76a9935;hb=5d7cce0ded7bb3ddc4bd88c39b0720753837452a#l125

Кстати, текущее состояние связки grub + os-prober 1.77 можно потестировать из задания 245634, а результаты и критику оставить тут:
https://bugzilla.altlinux.org/show_bug.cgi?id=37224
Comment 5 ruslandh 2020-02-07 21:33:09 MSK
Новая версия всё равно поймала лишний Linux, если подключен внешний SSD с установленным Linux,

"критику" - да какая критика - сами такие ;-)
Comment 6 ruslandh 2020-02-07 21:38:37 MSK
(Ответ для Sergey V Turchin на комментарий #3)
> (Ответ для ruslandh на комментарий #0)
> > 1 определять версию Linux по началу названия файла *-release
> Этот костыль нужен только при отсутствии /etc/os-release.

Возможно, но когда это будет в большинстве дистрибутивах, тогда возможно будет и так.

ps Generic-Linux, можно и так ;-)
Comment 7 ruslandh 2020-02-07 21:49:02 MSK
(Ответ для nickel@altlinux.org на комментарий #4)

> В grub есть GRUB_OS_PROBER_SKIP_LIST

Да, но толку от него немного. Он скореее для одного конкретного раздела, который есть в компьютере. 
Гораздо практичнее, если бы был белый список. Там можно-бы было, например прописать разделы, которые должны быть опробованы. 

Хоть по UUID, хоть по /dev/id/,,,

Такое решение гораздо менее трудоёмкое, и легко может быть проконтролировано или изминено пользователем.

Тем более в grub2.conf уже есть информация о   /dev/id/,,, , которое использует grub,

Число внутренних компонентов компьютера всегда ограничено и меньше по объёму, чем возможное число внешних носителей, которое может быть подключено к компьютеру.
Comment 8 Николай Костригин 2020-02-12 11:14:22 MSK
(Ответ для ruslandh на комментарий #5)
> Новая версия всё равно поймала лишний Linux, если подключен внешний SSD с
> установленным Linux,

Давайте с обсуждением результатов переместимся в багу [1], чтобы не засорять эту тему?

[1] https://bugzilla.altlinux.org/show_bug.cgi?id=37224