2017-07-02

Настройка rEFInd

Немного ранее мы рассмотрели установку загрузчика rEFInd на флешку и на жесткий диск компьютера под управлением ОС Windows. В этом материале, разберем настройку данного загрузчика.




Что будем грузить!?


В качестве тестового содержимого будут, как и прежде, выступать образы livecd  со страницы http://www.bootdev.ru/p/iso.html. А именно Hiren's BootCDSystemRescueCdDr.Web LiveDisk 

Напомню что rEFInd исключительно EFI загрузчик, и хоть в его возможностях заявлена возможность грузить старые версии ОС, надеяться на чудеса не стоит, все зависит от конкретного исполнения CSM (Compatibility Support Module) вашей материнской платы.


Подготовка


На данный момент, у нас уже должна быть флешка с установленным загрузчиком rEFInd (Об этом рассказывалось в предыдущей статье).


Из программ понадобятся 7-Zip архиватор, текстовый редактор Notepad++, программа для просмотра и конвертации изображений XnView, виртуальная машина VirtualBox и BOOTICE.


Настройка фонового изображения


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


rEFInd позволяет настраивать внешний вид меню, а именно фоновое изображение и миниатюры пунктов загрузки. Допустимый формат изображений BMP и PNG.

Начнем с фонового изображения. Если выбранная картинка в JPG формате, то конвертируем ее с помощью программы XnView, или любой другой подобной, в PNG формат.


Скопируем подготовленное изображение в папку EFI\boot на флешке.


Внесем необходимые изменения в файл конфигурации загрузчика. Для этого открываем в этой же папке файл refind.conf любым текстовым редактором, в моем случае Notepad++.

Небольшое отступление. Перед тем как продолжить, замечу, что файл конфигурации refind.conf содержит в виде комментариев, строчек начинающихся со знака "#", достаточно подробное описание с примерами, практически всех параметров загрузчика. Поэтому далее, если данный параметр присутствует, но закомментирован, то я буду использовать таковые путем разкомментирования и внесениея соответсвующих поправок. Либо просто добавлять новое описание вблизи закомментированного.

Выполняем поиск по фразе #banner.


Добавим после найденных закомментированных примеров свое описание, а именно следующий текст banner bg.png.


Параметр banner как вы наверно догадались отвечает за фоновое изображение загрузчика. Сохраним изменения и проверим результат в виртуальной машине.


Как видно из полученного результата, из-за того, что фоновое изображение имеет большое разрешение, отличное от разрешения загрузчика, мы можем наблюдать только часть картинки.

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


Проверяем результат внесенных изменений.


Теперь все как было задумано 😊.


Добавляем содержимое


Перейдем к добавлению указанного ранее содержимого. Изображения соответствующих пунктов загрузки будет рассмотрено вместе с описанием загрузки конкретных элементов. Приступим...


SystemRescueCD


Открываем скачанный образ, в моем случае systemrescuecd-x86-5.0.2.iso, в архиваторе 7-Zip, и извлекаем в корень флешки файл sysrcd.dat и папку isolinux.



Переименовываем папку isolinux в srcd.


Удаляем из папки srcd все кроме файлов rescue64 и initram.igz.



Добавим пункт меню загрузчика rEFInd. Для этого возвращаемся к редактированию файла конфигурации refind.conf и дописываем в самый конец следующий текст.

menuentry "SystemRescueCD" {
 loader /srcd/rescue64
 initrd /srcd/initram.igz
 options "scandelay=1"
}


Разберем данный текст. Ключевое слово menuentry говорит загрузчику что далее последует описание пункта меню. Отображаемый заголовок пункта описывается после слова menuentry в двойных кавычках.

Далее в фигурных скобках, в так называемом блоке, описываются параметры загрузки текущего пункта. Параметр loader указывает загрузчику какой исполняемый файл нужно грузить, это может быть либо ядро ОС, либо *.efi файл. Параметр initrd предназначен для загрузки файла виртуальной файловой системы располагающейся в оперативной памяти. Параметр options передает дополнительные параметры загрузки ядру ОС, передаваемые параметры обязательно указываются в двойных кавычках.

Параметры загрузки к каждому из livecd можно достать в файлах конфигурации их загрузчиков. К примеру для SystemRescueCD данные параметры были взяты из конфигурационного файла загрузчика isolinux файл isolinux\isolinux.cfg.


Сохраним внесенные изменения и загрузимся с флешки.


Новый пункт появился. Иконка используемая загрузчиком по умолчанию не очень красивая, изменим ее. Закинем для этого изображение иконки в формате PNG в папку EFI\boot. В моем случае это файл SRCD.png.



Добавим в блок описания пункта меню параметр icon предназначенного для указания файла иконки пункта меню. Описание будет следующим icon /EFI/boot/SRCD.png.


Сохраняемся и проверяем результат.


Как видно, на изображении пункта меню присутствует иконка жесткого диска, указывающая на тип носителя. Она перегораживает основное изображение пункта меню. Отключим отображение миниатюр типа носителей. Для этого в конфигурационный файл нужно добавить параметр hideui badges.


Сохраняем конфиг и смотрим на результат.


И последний штрих, увеличим размер отображаемый размер иконки пункта меню. Прописываем для этого следующий параметр big_icon_size 200.


Сохраняемся и проверяем.


То что нужно 😀. Теперь осталось только проверить работоспособность созданного пункта.




Все работает 😉. Переходим к следующему дистрибутиву.


Dr.Web LiveDisk


Из скачанного образа Dr.Web LiveDisk, на текущий момент это drweb-livedisk-900-cd.iso, извлекаем в корень флешки папки .disk и casper.


Я намерено опустил этап копирования изображения пункта меню, все аналогично предыдущему дистрибутиву.

Добавляем в конец файла конфигурации refind.conf следующий текст.

menuentry "Dr.Web LiveDisk" {
 icon /EFI/boot/DLCD.png
 loader /casper/vmlinuz
 initrd /casper/initrd.lz
 options "boot=casper quiet splash --"
}



Приведу скриншот оригинального текста конфигурационного файла загрузчика isolinux данного дистрибутива.


Сохраняем изменения и проверяем результат.




Отлично. Двигаемся дальше.


Hiren's BootCD


Очень старый livecd, поддержка загрузки в UEFI отсутствует. Но я не просто так включил его в список. Он будет выступать в роли проверки способности загрузчика rEFInd грузить старые ОС.

Распакуем папку HBCD из образа Hiren's.BootCD.15.2.iso в корень флешки.


Теперь установим в mbr область флешки запись загрузчика grub4dos. Делается это с помошью программы BOOTICE. Данный процесс подробно уже был описан здесь.

Теперь скопируем файл grldr из папки HBCD в корень флешки.


Добавим в файл конфигурации refind.conf параметр scanfor internal,hdbios,external,biosexternal,optical,cd,manual.


Данный параметр отвечает за поиск содержимого для загрузки. К сожалению прописать самостоятельным пунктом в меню, загрузку BIOS версий загрузчиков или MBR области в rEFInd нельзя.

Так как в виртуальной машине VirtualBox отсутсвует CSM модуль,


остальные снимки результатов будут с реального компьютера (фото монитора).







Итог


rEFInd оказался очень удобным. Настройка его проста за счет наличия в самом файле конфигурации подробных описаний и примеров всех настроек. Причем настраивается только самое нужное, остальное он сделает сам. Легкая настройка внешнего вида. И наличие автоматического поиска установленных ОС и  EFI приложений очень привлекательны на фоне других загрузчиков.

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

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