Home Wiki > Gfxboot
Sign up | Login

This wiki has been moved and updated recently. If you encounter any issue, please let us know by mail to admin@opensuse.org.

Gfxboot

tagline: Материал из openSUSE

Загрузочный экран.

Графический загрузочный экран

Графический загрузочный экран в openSUSE является расширением обычных текстовых на основе загрузчиков GRUB, lilo и isolinux. С точки зрения пользователя нет никакой видимой разницы между ними. В данной статье описывается, как настроить и изменить загрузочный экран.

Вам потребуется пакет gfxboot (как правило, он уже установлен в openSUSE) и для некоторых из приведенных ниже примеров Вам понадобятся следующие пакеты: gfxboot-devel, qemu и syslinux.

Активация экрана загрузки

Экран загрузки представляет собой cpio-архив, как правило, это /boot/message на установленной системе и /boot/i386/loader/bootlogo на DVD диске. Этот архив должен содержать все нужные gfxboot файлы (за исключением случаев, когда используется isolinux (смотрите ниже)).

grub

Добавить строку

gfxmenu (hd0,1)/boot/message

в файл /boot/grub/menu.lst.

lilo

Добавьте

 message=/boot/message

в файл lilo.conf. lilo определит автоматически, файл /boot/message - это просто текстовый файл или gfxboot-архив.

isolinux

isolinux - это загрузчик, используемый на DVD диске. Основное отличие от GRUB и LILO заключается в том, что gfxboot файлы могут быть прочитаны непосредственно с DVD. Поэтому не все gfxboot-файлы должны быть в cpio-архивах. Нужен только основной gfxboot (обычно называется init).

Добавьте

gfxboot bootlogo

в файл isolinux.cfg.

gfxboot-архив

gfxboot-архив /boot/message является обычным cpio-архивом. Вы можете, в принципе, просмотреть этот архив командой:

cpio -tv </boot/message

Распаковать его в текущую директорию с помощью

cpio -i </boot/message

и переупаковать командой

find . | cpio -o >/boot/message

Но для того, чтобы облегчить себе жизнь, есть утилита gfxboot. Вот некоторые ее основные команды:

  • вывести список файлов в gfxboot-архиве (по умолчанию это /boot/message):
gfxboot --ls
  • добавить или заменить файлы (например, фоновое изображение):
gfxboot --add-files back.jpg
  • просмотреть файл (например, конфигурационный файл):
gfxboot --show-file gfxboot.cfg
  • показать конфигурационный файл
gfxboot --show-config

На самом деле, команд гораздо больше. Попробуйте gfxboot -help для вывода всех команд.

gfxboot на DVD

Как уже отмечалось выше, isolinux может читать файлы gfxboot прямо из файловой системы ISO9660 (Примечание: нет поддержки Rock Ridge). В этом случае вы можете передать каталог с файлами gfxboot в качестве аргумента gfxboot.

Например, установить новый фоновый рисунок Вы можете такой командой:

gfxboot -a cd/boot/i386/loader --add-files back.jpg -b isolinux --test --preview

Ограничение на размер архива

gfxboot, в настоящее время, резервирует для себя 8 МБ. Этот архив загружается в память при запуске. Поэтому он должен быть несколько меньше, чем 8 МБ, чтобы осталось достаточно свободного пространства для нужд gfxboot.

Старая версия gfxboot имеет более жесткие требования к памяти. Но я надеюсь, что 8 МБ будет достаточно для типичной конфигурации.

Конфигурационный файл gfxboot

Многие внутренние переменные могут быть изменены путем редактирования конфигурационных файлов gfxboot - gfxboot.cfg. В файле используется синтаксис типичного INI-файла. Если Вы не хотите редактировать его напрямую, то gfxboot имеет некоторые флаги, которые могут помочь Вам:

  • вывести конфигурационный файл:
gfxboot --show-config
  • изменить конкретный параметр (переменной 'beep' в разделе 'boot'):
gfxboot --change-config boot::beep=0
  • удалить весь раздел:
gfxboot --rm-section 800x600

Имейте в виду, что возможности создать раздел нет. Разделы автоматически создаются, когда Вы добавите к ним переменные. Смотрите снимок экрана приведенный ниже.

Изменение загрузочного экрана

gfxboot поставляется с разными темами. Для экономии места /boot/message не содержит все файлы (например, не все переводы). Полный набор файлов тем находится в /etc/bootsplash/themes.

Тестирование внесенных изменений

Вам не обязательно перезагружаться, чтобы просмотреть свои последние изменения. К счастью, в gfxboot имеется функция теста перед сборкой. Виртуальная машина должна быть установлена и настроена на корректную работу (Qemu подойдет лучше всего, но vmware, vbox или bochs также поддерживаются).

Просто добавьте --preview к Вашей команде gfxboot. Это поможем Вам увидеть загрузочный экран в мини-системе, запущенной в виртуальной машине.

Если вы добавите --test, то изменения не будут внесены в конфигурационный файл загрузчика.

Например:

gfxboot --change-config penguin=100 --test --preview

покажет Вам тему Пингвин без изменения файла /boot/message.

Темы

Если у Вас есть несколько установленных тем, то Вы можете переключить на тему foo выполнив команду:

gfxboot --update-theme foo

Языки

Поддерживается довольно большое число языков, но не все они были добавлены в gfxboot-архив. Команда

gfxboot --add-languages de_DE fr_FR ja_JP --default-language ja_JP

добавит немецкий, французский и японский, а также устанваливает языком по умолчанию японский.

Раскладки клавиатуры

Чтобы переключиться на русскую раскладку, используйте:

--change-config keymap=ru_RU

Фоновая картинка

С новым фоном.

Фоновая картинка названа back.jpg. Вы можете просто заменить её (изображение должнобыть в формате jpeg):

gfxboot --add-file back.jpg


Позиция меню

Меню увеличенное & перемещенное.

Допустим, Вы хотите переместить меню влево:

gfxboot --change-config 800x600::mainmenu.pos=70,10

Размер меню

Как правило, показывается только 8 позиций (можно выделить больше). Если Вы хотите добавить больше пунктов, то воспользуйтесь примером

gfxboot --change-config mainmenu.entries=12


Цвета

Может быть, желтый будет выглядеть лучше (цвета задаются в виде значений 24 бит RGB):

gfxboot --change-config mainmenu.normal.fg=0xffff00

Шрифт

Заменен шрифт.

Замена шрифта может оказаться немного сложным занятием, если Вы хотите включить глифы для всех поддерживаемых языков. Если Вам нужно только типичное европейское начертание, то это довольно просто:

  • сначала установите пакет gfxboot-devel
  • выполните команду:
gfxboot-font -v -c ISO-8859-15 -f planetbe:size=24 big.fnt >big.log

Эта команда установит глифы из шрифта 'Planet Benson 2'. Вы можете использовать любой шрифт FreeType 2. Заметьте, что Вы должны указать реальное имя файла в качестве аргумента, а не имя шрифта. Здесь используется planetbe.ttf из пакета свободных TTF-шрифтов.

Лог-файл полезен для отладки. Он показывает, из каких шрифтов были взяты глифов и как они выглядят.

Теперь, когда у Вас есть нужный шрифт, можно выполнить команду:

gfxboot --change-config font.large=big.fnt 800x600::mainmenu.pos=200,50


Размер экрана

Загрузочный экран 1152x864.

gfxboot опирается на VESA Video BIOS для установки видеорежима. По этому будьте внимательны - не все разрешения экрана, которые можно установить на вашем рабочем столе KDE или GNOME, доступны. Если есть сомнения, проверте список доступных режимов. gfxboot использует 24 разрядные режимы, но, если нет доступных подходящих 24 разрядных - перейдет к 16 разрядным.

hwinfo --framebuffer


Создайте новую секцию в gfxboot.cfg для ваших новых размеров экрана:

gfxboot --change-config 1152x864::screen.size=1152,864 1152x864::mainmenu.pos=400,200 1152x864::bootopt.pos=200,750
gfxboot --change-config layout=1152x864,boot
# or layout=1152x864,install if for DVD


Установки меню

Если Вы обратите внимание на фотографии выше, то увидите, что хотя isolinux.cfg только ярлыки rescue, графический экран показывает Rescue System. Это потому, что существует внутренний список меню строки которого следует заменить.

Если Вы не хотите перекомпилировать тему, то есть два способа как повлияниять на способ вывлда gfxboot ярлыков в меню:

  1. it replaces underscores ('_') with spaces (lilo & isolinux don't allow spaces in labels); if you dont' want this, turn it off (gfxboot --change-config _2space=0)
  2. if you need translations for your menu, you can create files translations.<locale> that consist of alternating lines with original text and translations. For example:
# cat translations.de_DE
install_xxx
Installiere XXX
install_foo
Installiere Foo

Заметьте, что вам почти наверняка будет нужен файл translations.en со вторым методом.