Смена графического меню загрузчика GRUB и темы bootsplash
Как сменить фоновое изображение системного загрузчика GRUB.
Для тех кто не в курсе в Mandriva 2009, присутствует возможность смены картинки через графический интерфейс, но это не интересно.
Редактируем gfxmenu, bootsplash в Mandriva 2007 Spring
Задумался над сменой стандартного графического меню загрузчика GRUB и графической темы загрузки системы bootsplash.
Насчет bootsplash можно было использовать темы, которые идут с дистрибутивом, но мне захотелось чего-то оригинального.
Начнем с графического меню загрузчика, способ, который я использовал дает возможность замены стандартной картинки на свою.
И выглядит он малость изощренным. Я не претендую на правильность реализации, но на эту тему не нашел конкретной документации.
В каталоге /boot можно найти файл gfxmenu вот он и отвечает за графическое меню загрузчика, создаем в домашнем каталоге (или где вам удобнее) каталог я его назвал gfx, копируем в него /boot/gfxmenu запускаем консоль переходим в каталог gfx и выполняем команду:
В каталоге появятся файлы внутренности gfxmenu, теперь необходимо переместить gfxmenu из этого каталога, дабы он не попал в новый файл графического меню.
Следующая команда
Получаем список файлов в этом каталоге, он нам понадобиться попозже, единственное, что в файле 111 надо найти и удалить строчку 111 (нам не нужно, чтобы наш файл со списком файлов присутствовал в списке).
Теперь создаем картинку, которую мы ходим видеть, сохраняем её с разрешением 800х600 и качеством jpg 0.75.
Называем его back.jpg и заменяем им одноименный файл в папке gfx.
Теперь мы готовы собрать наше графическое меню. В консоли переходим в каталог gfx и выполняем команду
Этой командой создается файл mymenu и в него включаются файлы из списка 111.
Теперь из под рута (Обратите внимание (hd0,X) это условное обозначение и указывает загрузчику с какого раздела загрузить ядро, у меня этот параметр равен (hd0,5)):
1. копируем наш файл mymenu в каталог /boot
2. правим /boot/grub/menu.lst строку gfxmenu (hd0,Х)/gfxmenu к виду gfxmenu (hd0,Х)/mymenu
Сохраняем перезагружаемся и наслаждаемся видом графического меню загрузчика.
Теперь займемся bootsplash.
Здесь я приведу лишь свои действия для создания собственного bootsplash, более подробно можно почитать здесь .
Первое создаем картинку с разрешением 1024х768 сохраняем в формате jpg с качеством 0.75, для порядка называем bootsplash-1024x768.jpg.
Чтобы не было бардака я решил сложить мою тему в те же каталоги, что и системные.
Под рутом идем в каталог /usr/share/bootsplash/themes создаем каталог для своей темы ну например "my" внутри каталога "my" создаем каталог "images",теперь в каталог /usr/share/bootsplash/themes/my/images копируем нашу картинку bootsplash-1024x768.jpg
и создаем символическую ссылку на него командой
Теперь идем в каталог /etc/bootsplash/themes создаем каталог "my" в нем каталог "config".
Теперь нам необходимо создать конфигурационный файл для нашей темы, я с ним не стал возиться,
а просто скопировал из документации по ссылке выше вот пример:
Сохраняем его под именем bootsplash-1024x768.cfg в каталоге /etc/bootsplash/themes/my/config.
В файле /etc/sysconfig/bootsplash необходимо исправить строчку THEME=Mandriva к виду THEME=my
Есть два способа внедрения bootsplash в initrd.
Первый способ это создать собственный initrd:
Если все сделали то остается выполнить две команды от имени рута:
где initrd-2.6.17-13.img образ загрузки, который будет содержать нашу тему;
2.6.17-13mdv это ядро, для которого он предназначен.
вставляем нашу тему в наш образ, если файл конфигурации темы корректен, то сообщений не должно быть.
Последний штрих в нашей затее это редактирование /boot/grub/menu.lst
Строки (Обратите внимание (hd0,X) это условное обозначение и указывает загрузчику с какого раздела загрузить ядро,
у меня этот параметр равен (hd0,5))title linux
Приводим к виду title linux
kernel (hd0,X)/vmlinuz BOOT_IMAGE=2.6.17-13 root=/dev/sda1 resume=/dev/sdb5 splash=silent mem=1024M vga=791
initrd (hd0,X)/initrd-2.6.17-13.img
Хочу обратить внимание на параметр vga в нашем случае он должен быть равен 791, то есть разрешению 1024х768.
Если он будет равен 788 (800х600) то мы не увидим нашего творения.
Сохраняем и перезагружаем компьютер и наслаждаемся видом.
Способ второй внедрение bootsplash в существующий initrd.
Рекомендую сделать backup существующего initrd.
Дефолтный initrd лежит в корне каталога /boot и называется initrd-2.6.17-13mdv.img.
Чтобы внедрить в него свою тему выполняем команду из под рута:
Осталось сменить в /boot/grub/menu.lst параметр vga=788 на vga=791, то есть получим: title linux
Собственно всё, перезагружаем компьютер и смотрим, что получилось.
Удачи вам.
Попов Виктор.
Для тех кто не в курсе в Mandriva 2009, присутствует возможность смены картинки через графический интерфейс, но это не интересно.
Редактируем gfxmenu, bootsplash в Mandriva 2007 Spring
Задумался над сменой стандартного графического меню загрузчика GRUB и графической темы загрузки системы bootsplash.
Насчет bootsplash можно было использовать темы, которые идут с дистрибутивом, но мне захотелось чего-то оригинального.
Начнем с графического меню загрузчика, способ, который я использовал дает возможность замены стандартной картинки на свою.
И выглядит он малость изощренным. Я не претендую на правильность реализации, но на эту тему не нашел конкретной документации.
В каталоге /boot можно найти файл gfxmenu вот он и отвечает за графическое меню загрузчика, создаем в домашнем каталоге (или где вам удобнее) каталог я его назвал gfx, копируем в него /boot/gfxmenu запускаем консоль переходим в каталог gfx и выполняем команду:
$ cpio -idmv <gfxmenu
В каталоге появятся файлы внутренности gfxmenu, теперь необходимо переместить gfxmenu из этого каталога, дабы он не попал в новый файл графического меню.
Следующая команда
$ ls > 111
Получаем список файлов в этом каталоге, он нам понадобиться попозже, единственное, что в файле 111 надо найти и удалить строчку 111 (нам не нужно, чтобы наш файл со списком файлов присутствовал в списке).
Теперь создаем картинку, которую мы ходим видеть, сохраняем её с разрешением 800х600 и качеством jpg 0.75.
Называем его back.jpg и заменяем им одноименный файл в папке gfx.
Теперь мы готовы собрать наше графическое меню. В консоли переходим в каталог gfx и выполняем команду
$ cpio -of < 111 > mymenu
Этой командой создается файл mymenu и в него включаются файлы из списка 111.
Теперь из под рута (Обратите внимание (hd0,X) это условное обозначение и указывает загрузчику с какого раздела загрузить ядро, у меня этот параметр равен (hd0,5)):
1. копируем наш файл mymenu в каталог /boot
2. правим /boot/grub/menu.lst строку gfxmenu (hd0,Х)/gfxmenu к виду gfxmenu (hd0,Х)/mymenu
Сохраняем перезагружаемся и наслаждаемся видом графического меню загрузчика.
Теперь займемся bootsplash.
Здесь я приведу лишь свои действия для создания собственного bootsplash, более подробно можно почитать здесь .
Первое создаем картинку с разрешением 1024х768 сохраняем в формате jpg с качеством 0.75, для порядка называем bootsplash-1024x768.jpg.
Чтобы не было бардака я решил сложить мою тему в те же каталоги, что и системные.
Под рутом идем в каталог /usr/share/bootsplash/themes создаем каталог для своей темы ну например "my" внутри каталога "my" создаем каталог "images",теперь в каталог /usr/share/bootsplash/themes/my/images копируем нашу картинку bootsplash-1024x768.jpg
и создаем символическую ссылку на него командой
# ln -s /usr/share/bootsplash/themes/my/images/bootsplash-1024x768.jpg /usr/share/bootsplash/themes/my/images/silent-1024x768.jpg
Теперь идем в каталог /etc/bootsplash/themes создаем каталог "my" в нем каталог "config".
Теперь нам необходимо создать конфигурационный файл для нашей темы, я с ним не стал возиться,
а просто скопировал из документации по ссылке выше вот пример:
# This is the configuration file for the 1024x768 bootsplash picture.
# This file is necessary to specify the coordinates of the text box on the
# splash screen.
version=3
# should the picture be displayed?
state=1
# fgcolor is the text foreground colour.
# bgcolor is the text background (i.e. transparent) colour.
fgcolor=7
bgcolor=0
# (tx, ty) are the (x, y) coordinates of the text window in pixels.
# tw/th is the width/height of the text window in pixels.
tx=40
ty=116
tw=944
th=612
# ttf message output parameters
text_x=20
text_y=20
text_size=22
text_color=0xeef4ff
# name of the picture file (full path recommended)
jpeg=/usr/share/bootsplash/themes/my/images/bootsplash-1024x768.jpg
silentjpeg=/usr/share/bootsplash/themes/my/images/silent-1024x768.jpg
progress_enable=1
# background
box silent noover 512 732 1000 752 #04045498
box silent inter 512 733 512 751 #99ccff #99ccff #324bb0 #526bb0
box silent 512 733 1000 751 #99ccff #99ccff #324bb0 #526bb0
# black border
box silent 512 732 1000 732 #313234
box silent 512 752 1000 752 #eef4ff
box silent 512 732 512 752 #313234
box silent 1000 732 1000 752 #eef4ff
# text box (left, top)
box 35 111 35 729 #313234
box 36 111 985 111 #313234
# (right, bottom)
box 985 112 985 729 #eef4ff
box 36 729 985 729 #eef4ff
# box itself
box noover 36 112 984 728 #04045498
overpaintok=1
LOGO_CONSOLE=vt
В файле /etc/sysconfig/bootsplash необходимо исправить строчку THEME=Mandriva к виду THEME=my
Есть два способа внедрения bootsplash в initrd.
Первый способ это создать собственный initrd:
Если все сделали то остается выполнить две команды от имени рута:
# mkinitrd /boot/initrd-2.6.17-13.img 2.6.17-13mdv
где initrd-2.6.17-13.img образ загрузки, который будет содержать нашу тему;
2.6.17-13mdv это ядро, для которого он предназначен.
# /usr/share/bootsplash/scripts/make-boot-splash /boot/initrd-2.6.17-13.img 1024x768
вставляем нашу тему в наш образ, если файл конфигурации темы корректен, то сообщений не должно быть.
Последний штрих в нашей затее это редактирование /boot/grub/menu.lst
Строки (Обратите внимание (hd0,X) это условное обозначение и указывает загрузчику с какого раздела загрузить ядро,
у меня этот параметр равен (hd0,5))title linux
kernel (hd0,X)/vmlinuz BOOT_IMAGE=linux root=/dev/sda1 resume=/dev/sdb5 splash=silent mem=1024M vga=788
initrd (hd0,X)/initrd.img
Приводим к виду title linux
kernel (hd0,X)/vmlinuz BOOT_IMAGE=2.6.17-13 root=/dev/sda1 resume=/dev/sdb5 splash=silent mem=1024M vga=791
initrd (hd0,X)/initrd-2.6.17-13.img
Хочу обратить внимание на параметр vga в нашем случае он должен быть равен 791, то есть разрешению 1024х768.
Если он будет равен 788 (800х600) то мы не увидим нашего творения.
Сохраняем и перезагружаем компьютер и наслаждаемся видом.
Способ второй внедрение bootsplash в существующий initrd.
Рекомендую сделать backup существующего initrd.
Дефолтный initrd лежит в корне каталога /boot и называется initrd-2.6.17-13mdv.img.
Чтобы внедрить в него свою тему выполняем команду из под рута:
# /usr/share/bootsplash/scripts/make-boot-splash /boot/initrd-2.6.17-13mdv.img 1024x768
Осталось сменить в /boot/grub/menu.lst параметр vga=788 на vga=791, то есть получим: title linux
kernel (hd0,X)/vmlinuz BOOT_IMAGE=linux root=/dev/sda1 resume=/dev/sdb5 splash=silent mem=1024M vga=791
initrd (hd0,X)/initrd.img
Собственно всё, перезагружаем компьютер и смотрим, что получилось.
Удачи вам.
Попов Виктор.