Bug 24446

Summary: Не показывается фоновая картинка меню
Product: Sisyphus Reporter: Dmitry A. Kharitonov <kharpost>
Component: grub2Assignee: Vitaly Kuznetsov <vitty>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P3 CC: aen, boyarsh, kharpost, radik, rider
Version: unstable   
Hardware: all   
OS: Linux   
Bug Depends on:    
Bug Blocks: 23155    
Attachments:
Description Flags
фонт в /boot none

Description Dmitry A. Kharitonov 2010-10-28 23:22:34 MSD
У нас оказывается grub сделан весьма криворуко: перед загрузкой ядра он зачем-то лезет на раздел /usr, хотя, по определению загрузчик должен иметь всё необходимое в разделе /boot. У меня раздел /usr находится на USB, по этому при запуске загрузчика это устройство ещё не проинициализировано и по этому не доступно. В результате загрузчик не находит фонтов и запрещает переход в графический режим и не загружает фоновую картинку меню.
Comment 1 Dmitry A. Kharitonov 2010-10-29 00:59:26 MSD
Created attachment 4629 [details]
фонт в /boot

Перенёс файл фонта в /boot теперь фоновая картинка появляется всегда
Comment 2 Vitaly Kuznetsov 2010-10-29 01:25:20 MSD
Мне не нравится это исправление: grub-mkconfig должен генерить конфиг. Копировать чего-то куда-то он не должен.
Недоступность /usr из grub - это вообще достаточно редкий случай. Можно же просто задать другой GRUB_FONT.
Тривиальным исправлением также будет просто переложить font в /boot из /usr/share/. Но я пока не понял действительно ли это нужно.
Comment 3 Dmitry A. Kharitonov 2010-10-29 07:33:54 MSD
1 Вам совершенно не должно нравится моё решение -- это МОЁ решение, и я его навязывать не собираюсь.
2 Я продемонстрировал вам как можно исправить эту ситуацию и, самое главное, указал на причину этой ошибки.

Если grub-mkconfig должен генерировать только конфиг. Кто же должен обеспечивать работоспособность загрузчика?
До запуска ядра, кроме /boot загрузчика вообще не должно что-то интересовать. Может у меня остальные разделы вообще на сервере? что тогда?

Тривиальное исправление (на уровне пакета) конечно предпочтительнее, тем более, что это совсем не сложно. Где задаётся GRUB_FONT я с первого раза не нашёл (и сейчас не знаю) для меня оказалось проще изменить скрипт
Comment 4 Anton Farygin 2010-10-29 09:24:36 MSD
Кстати, у меня тоже есть конфигурации с недоступным /usr из grub.

Виталик, Дмитрий в данном случае абсолютно прав - всё что нужно для grub должено быть доступно. 

разумным выглядит копирование шрифта.
Comment 5 Dmitry A. Kharitonov 2010-10-29 11:15:56 MSD
Может я дурак?
но GRUB_FONT я действительно не нахожу
[user@eeedima Documents]$ sudo grep -r GRUB_FONT /etc
grep: /etc/ppp/resolv.conf: No such file or directory
/etc/grub.d/00_header~:    cp -v "${GRUB_FONT_PATH}" "${GRUB_PREFIX}"
/etc/grub.d/00_header~:    FONTFILE="${GRUB_PREFIX}${GRUB_FONT_PATH##*/}"
/etc/grub.d/00_header~:if loadfont `make_system_path_relative_to_its_root "${GRUB_FONT_PATH}"` ; then
/etc/grub.d/00_header.org:    prepare_grub_to_access_device `${grub_probe} --target=device "${GRUB_FONT_PATH}"`
/etc/grub.d/00_header.org:if loadfont `make_system_path_relative_to_its_root "${GRUB_FONT_PATH}"` ; then
/etc/grub.d/00_header:    cp "${GRUB_FONT_PATH}" "${GRUB_PREFIX}"
/etc/grub.d/00_header:    FONTFILE="${GRUB_PREFIX}/${GRUB_FONT_PATH##*/}"
grep: /etc/syslog.d/ldap: No such device or address
grep: /etc/syslog.d/klogd: No such device or address
grep: /etc/syslog.d/openvpn: No such device or address
grep: /etc/syslog.d/postfix: No such device or address
[user@eeedima Documents]$ 
[user@eeedima Documents]$ sudo grep -r GRUB_FONT /boot
[user@eeedima Documents]$ 

Где оно задаётся? при компиляции?
Comment 6 Repository Robot 2010-10-30 23:12:35 MSD
grub2-1.98-alt21.20100804 -> sisyphus:

* Fri Oct 29 2010 Vitaly Kuznetsov <vitty@altlinux> 1.98-alt21.20100804
- place default font in /boot/grub (ALT #24446)
- fix initrd finding (ALT #24442)
Comment 7 Dmitry A. Kharitonov 2010-10-31 15:11:05 MSK
Спасибо