...

воскресенье, 26 февраля 2017 г.

[recovery mode] 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 в 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



Пингвины

Mageia


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

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


Установка 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



Пингвины

Ubuntu


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

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


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

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


wget http://ift.tt/2lXkeNY
unzip grub4dos-0.4.4.zip
cd grub4dos-0.4.4
sudo ./bootlace.com /dev/sdb


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


Загрузочное меню 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

Комментарии (0)

    Let's block ads! (Why?)

    Комментариев нет:

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