- PVSM.RU - https://www.pvsm.ru -

GRUB пингвиньего цвета

Введение

На компьютере загружается Linux, который когда-то был туда установлен. Тогда структура жесткого диска претерпела ряд изменений: были созданы разделы, а также установлен загрузчик. Судя по большинству дистрибутивов, самым популярным в мире Linux является загрузчик GRUB.

Действие этого загрузчика операционной системы происходит с точки зрения пользователя так: пользователь после включения компьютера видит список операционных систем, которые установлены на его компьютер. По оформлению этот список бывает совершенно разным: черно-белым, разноцветным, с пингвинами.

В конце концов по выбору пользователя загружается операционная система.

В центре внимания этот статьи — графической режим GRUB с анимированными пингвинами, которых программист Steffen Winterfeldt заставил ходить взад-вперед и выдавать еще несколько других номеров. Прежде всего — пингвины, а за этим — утилита gfxboot для изменений и тестов конфигурации графического загрузчика.

Еще в статье много информации по конкретным дистрибутивам (Mageia, openSUSE, Ubuntu) с неодинаковыми методами изменения графического загрузчика. Отдельная тема — графический загрузочный экран на основе grub4dos.

Благодарность

Хочу выразить благодарность А.Федорчуку за статью о виртуальной машине VirtualBox и образах операционных систем с сайта osboxes.org, информация из которой очень помогла при написании этой статьи.

Пингвины и gfxboot

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

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

openSUSE

Когда на компьютере установлен GRUB2, настоящей системой испытаний будет возврат к GRUB, когда у осуществляющего его существует недостаток знаний. Далее следует блок-инструкция по переходу к использованию в качестве загрузчика GRUB.

1. Установка GRUB на жесткий диск с помощью команды

sudo zypper in grub

оканчивается сообщением: grub is not the active boot loader.

2. Делаем GRUB активным загрузчиком с помощью оболочки GRUB так, как это отражено на скриншоте. В нем принят допуск, что GRUB установлен на первый раздел первого жесткого диска (hd0,0).

GRUB пингвиньего цвета - 1
Установка кода GRUB в MBR

В выдаче оболочки GRUB в ответ на последнюю команду содержится имя файла /boot/grub/menu.lst.

3. Создадим и отредактируем этот файл с помощью команды

sudo vi /boot/grub/menu.lst

Он будет содержать конфигурацию загрузочного меню, аналог конфигурации загрузочного меню, содержащейся в файле /boot/grub2/grub.cfg. Их синтаксисы по существу родствены друг другу. С некоторыми изменениями текст конфигурационного файла GRUB2 служит основой для текста конфигурационного файла GRUB.

Фрагмент файла /boot/grub2/grub.cfg

menuentry 'openSUSE' --class opensuse --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-99d4f445-3170-4ced-a612-fe255dc11b3c' {
 load_video
 set gfxpayload=keep
 insmod gzio
 insmod part_msdos
 insmod ext2
 set root='hd0,msdos1'
 if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1'  99d4f445-3170-4ced-a612-fe255dc11b3c
 else
  search --no-floppy --fs-uuid --set=root 99d4f445-3170-4ced-a612-fe255dc11b3c
 fi
 echo    'Loading Linux 3.16.6-2-default ...'
 linux   /boot/vmlinuz-3.16.6-2-default root=UUID=99d4f445-3170-4ced-a612-fe255dc11b3c   quiet resume=/dev/sda2 splash=silent quiet showopts
 echo    'Loading initial ramdisk ...'
 initrd  /boot/initrd-3.16.6-1-default
}

и соответствующий ему фрагмент файла /boot/grub/menu.lst

title openSUSE
 root (hd0,0)
 kernel /boot/vmlinuz-3.16.6-2-default root=UUID=99d4f445-3170-4ced-a612-fe255dc11b3c   quiet resume=/dev/sda2 splash=silent quiet showopts
 initrd /boot/initrd-3.16.6-1-default

4. Для включения графического режима GRUB с анимированными пингвинами, с помощью текстового редактора vi добавим в начало файла /boot/grub/menu.lst строку

gfxmenu (hd0,0)/boot/message

и сделаем вероятность появления пингвинов равной 100% с помощью команды

sudo gfxboot --change-config penguin=100

GRUB пингвиньего цвета - 2
Пингвины

Mageia

Когда на компьютере установлен GRUB, меню с пингвинами делается по-другому. Далее следует соответствующая инструкция.

1. Начало инструкции — на скриншоте.

GRUB пингвиньего цвета - 3
Установка gfxboot и gfxboot-themes

2. В файле /boot/grub/menu.lst вместо строки

gfxmenu (hd0,0)/boot/gfxmenu

вводим строку

gfxmenu (hd0,0)/boot/message

выбираем и настраиваем тему графического загрузочного экрана

gfxboot --new-theme openSUSE
gfxboot --change-config penguin=100

и выходим из сеанса командной оболочки суперпользователя с помощью команды

exit

GRUB пингвиньего цвета - 4
Пингвины

Ubuntu

В этой системе есть gfxboot, gfxboot-themes, grub, но в последнем не работает графический загрузочный экран. Вместо его предлагаются статичные изображения, отображаемые в загрузочном меню с помощью параметра splashimage, указываемого в конфигурационном файле GRUB. В таком случае можно использовать загрузчик grub4dos.

Grub4dos на загрузочной флешке и жестком диске

Границы применения grub4dos шире установки на флеш-накопители, но это, наверное, является главным. Ниже на листинге примерная процедура или схема его установки.

Установка grub4dos на флеш-накопитель

wget https://downloads.sourceforge.net/project/grub4dos/GRUB4DOS/grub4dos%200.4.4/grub4dos-0.4.4.zip
unzip grub4dos-0.4.4.zip
cd grub4dos-0.4.4
sudo ./bootlace.com /dev/sdb

После копирования содержимого каталога grub4dos на флеш-накопитель и загрузки с его помощью компьютера, видим разноцветное загрузочное меню, как на скриншоте.

GRUB пингвиньего цвета - 5
Загрузочное меню grub4dos

После копирования туда же файла /boot/message, полученного способом, описанным выше, и замены содержимого файла menu.lst другим, содержащим строку

gfxmenu /message

получаем все тех же пингвинов.

На жестком диске grub4dos можно вызвать из GRUB, введя в его конфигурационный файл описание соответствующего пункта меню:

default 0
timeout 0
title grub4dos
 kernel (hd0,5)/grub.exe --config-file="map (rd) (fd0); map --hook; chainloader (fd0)+1; rootnoverify (fd0)"
 initrd (hd0,5)/myfloppy.img

Это действует, если на шестом разделе жесткого диска с fat12 или fat32 имеются файлы grub.exe и myfloppy.img, последний из которых — файл-образ загрузочной дискеты. В нем объединены файлы из архива grub4dos-0.4.4.zip. Далее следует несколько команд, выполнение которых провоцирует добавление на диск необходимого для загрузки grub4dos файла myfloppy.img

sudo mkfs.msdos -С myfloppy.img 1440
sudo ./bootlace.com --floppy myfloppy.img
mkdir dos
sudo mount -o loop myfloppy.img dos
sudo cp grub4dos-0.4.4/* dos
sudo vi dos/menu.lst

Осталось добавить в каталог к файлам grub.exe и myfloppy.img файл message, заменить содержимое файла dos/menu.lst на что-то подобное тому, что воспроизведено на следующем листинге и отмонтировать файл-образ myfloppy.img с помощью команды

sudo unmount /dev/loop0

чтобы получить результат, неоднократно ранее полученный в этой статье.

Содержимое конфигурационного файла menu.lst для grub4dos

default 0
timeout 3
gfxmenu /message
title Ubuntu
 root (hd0,0)
 chainloader +1

title Reboot
 reboot

Автор: mikhaylovns

Источник [1]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/linux/246380

Ссылки в тексте:

[1] Источник: https://habrahabr.ru/post/322586/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best