Настраиваем GRUB2.

Установка, настройка, эксплуатация.

Модератор: ROOT

Настраиваем GRUB2.

Сообщение ROOT » 18 июл 2017, 00:36

Оглавление


Темы
 Подготовка шрифта 
 Подготовка фоновой картинки 
 Добавление опции discard на коревой раздел (XFS) 
 DSDT 
 Параметры ядра 
 Сочетания клавиш GRUB 
 Добавляем пункты перезапуска и выключения питания 
 Структура каталогов загрузочного раздела для UEFI 
 Структура каталогов загрузочного раздела для BIOS 
 Восстановление GRUB с LiveCD для UEFI 


 Подготовка шрифта 
Генерируем шрифт для grub2
Код: выделить все
grub2-mkfont -s 14 -o /boot/grub2/fonts/DejaVu.pf2 /usr/share/fonts/dejavu/DejaVuSansMono.ttf

-s - размер шрифта
-o - получаемый файл при конвертировании
Подключаем полученный шрифт. Добавляем в файл /etc/sysconfig/grub строку:
Код: выделить все
GRUB_FONT=/boot/grub2/fonts/DejaVu.pf2

 Подготовка фоновой картинки 
Выбираем максимально возможное разрешение исходя из имеющегося оборудования предположим что это 1920x1080. Прописываем след параметры:
Код: выделить все
GRUB_GFXMODE="1920x1080"
GRUB_GFXPAYLOAD_LINUX=1920x1080

Пример файла /etc/sysconfig/grub
Код: выделить все
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_TIMEOUT=15
GRUB_DEFAULT=0
GRUB_DISABLE_SUBMENU="true"
# Запретить искать системы на других дисках
GRUB_DISABLE_OS_PROBER="false"
#GRUB_DEVICE_UUID="74ad28af-6a81-49ce-bdf6-e3a34cb18a94"
#Включить создание образа восстановления
GRUB_DISABLE_RECOVERY="false"
# Основной набор опций ядра
GRUB_CMDLINE_LINUX="net.ifnames=0 rhgb quiet rd.driver.blacklist=nouveau nvidia-drm.modeset=1 video=vesafb:off,efifb:on rootflags=discard vga=845 vconsole.font=ter-u30b vconsole.keymap=ru selinux=0"
# GRUB_VIDEO_BACKEND="efi_gop"
#GRUB_TERMINAL_OUTPUT="gfxterm"
# Список разрешений для графического режима GRUB
GRUB_GFXMODE="1920x1080x32,1280x800x32,1024x768x32,800x600x32,auto"
GRUB_GFXPAYLOAD_LINUX="keep"
# Подключение темы, шрифта, и выбор языка
GRUB_THEME="/boot/grub2/themes/system/theme.txt"
GRUB_FONT="/boot/grub2/fonts/DejaVu.pf2"
GRUB_LANG="ru_RU.UTF-8"
GRUB_ENABLE_BLSCFG="true"

Значение для параметра VGA
  • rhgb - отображает графическую заставку при загрузке системы (Red Hat Graphical Boot)
  • quiet - Подавляет вывод процесса init при загрузке системы
Подбираем изображение соответствующего разрешения и копируем его в /boot/grub2/holiday1.jpeg. Подключаем картинку
Код: выделить все
GRUB_BACKGROUND=/boot/grub2/holiday1.jpeg

Изменить размер изображения до высоты x1080, сохраняя пропорции и выключенным чересстрочным чередование можно так:
Код: выделить все
convert -resize x1080 -interlace none background.jpg background1.jpg

Во избежание отказа загружать картинку у неё должно быть выключено чередование. Для отключения данного параметра можно воспользоваться утилитой convert с параметром -interlace none
Если изображений, которые нужно преобразовать, много, то можно воспользоваться скриптом:
Код: выделить все
cd "каталог с картинками"
mkdir conv
for file in  *.jpg; do convert $file -resize x1080 -interlace none conv/$file; done

Примечание: При преобразовании файла в формат JPEG обязательно используйте параметр «-interlace NONE», чтобы убедиться, что результирующее изображение JPEG не чересстрочное — если, конечно, вы не хотите чересстрочное изображение. Чересстрочное изображение рисуется в несколько проходов. Часто используется в Интернете, где читатель может просмотреть изображение с низким разрешением, состоящее из ранних проходов, прежде чем будет загружено все изображение. Изображение без чересстрочной развертки рисуется за один проход.
статус данного флага можно посмотреть утилитой file:
Код: выделить все
{ 22:20 MSK, 17 июня, Ср } { root@sergey.free-adm.ru } { /boot/grub2/themes/system } ✓
# > file fireworks1.png
fireworks1.png: PNG image data, 1600 x 900, 8-bit/color RGB, interlaced

{ 22:24 MSK, 17 июня, Ср } { root@sergey.free-adm.ru } { /boot/grub2/themes/system } ✓
# > file fireworks.png
fireworks.png: PNG image data, 2048 x 1536, 8-bit/color RGB, non-interlaced

Для файла jpg утилита file данный параметр не показывает, но отключение его так же приводит картинку в отображаемое GRUB'ом состояние.

Обновляем конфигурацию загрузчика
Код: выделить все
grub2-mkconfig -o /boot/grub2/grub.cfg



 Добавление опции discard на коревой раздел (XFS) 
Включить TRIM для файловой системы можно, если добавить discard в опции монтирования. Однако для корневой файловой системы опции нужно передавать, из загрузчика GRUB, параметрами ядра. Редактируем /etc/sysconfig/grub добавляя в строку rootflags=discard ro
Код: выделить все
GRUB_CMDLINE_LINUX="... rootflags=discard ro ..."

Обновляем конфигурацию загрузчика
Код: выделить все
grub2-mkconfig -o /boot/grub2/grub.cfg

после перезапуска на корневом разделе появляется опция discard


 DSDT 
dnf install iasl
Получаем текущее состояние таблицы ACPI
Код: выделить все
cat /sys/firmware/acpi/tables/DSDT > dsdt.aml

Создаём файл для подключения aml к grub
e /etc/grub.d/01_acpi
Код: выделить все
#! /bin/sh -e
# Uncomment to load custom ACPI table
GRUB_CUSTOM_ACPI="/boot/dsdt.aml"

# DON'T MODIFY ANYTHING BELOW THIS LINE!

libdir=/usr/share

. ${libdir}/grub/grub-mkconfig_lib

# Load custom ACPI table
if [ x${GRUB_CUSTOM_ACPI} != x ] && [ -f ${GRUB_CUSTOM_ACPI} ] && is_path_readable_by_grub ${GRUB_CUSTOM_ACPI}; then
    echo "Found custom ACPI table: ${GRUB_CUSTOM_ACPI}" >&2
    prepare_grub_to_access_device `${grub_probe} --target=device ${GRUB_CUSTOM_ACPI}` | sed -e "s/^/  /"
    cat << EOF
acpi (\$root)`make_system_path_relative_to_its_root ${GRUB_CUSTOM_ACPI}`
EOF
fi

Назначаем право исполнения на файл
Код: выделить все
chmod a+x /etc/grub.d/01_acpi

Файл dsdt.aml кладём в /boot/

После этого запускаем обновление конфигурации grub
Код: выделить все
grub-mkconfig -o /boot/grub/grub.cfg

В результате будет несколько строк с описанием прогресса, там должно написать про успешно найденную таблицу:
Код: выделить все
...
Found custom ACPI table: /boot/dsdt.aml
...

И, наконец, обновляем initramfs загруженного ядра
Код: выделить все
dracut -f

и перезапускаем
Код: выделить все
reboot

снова прочитать таблицу, чтобы проверить, действительно Вы используете свой собственный DSDT.
Код: выделить все
cat /sys/firmware/acpi/tables/DSDT > dsdt.aml

и декомпилировать его с помощью
Код: выделить все
iasl -d dsdt.aml


Проверка успешного переопределения ????????
dmesg | grep ACPI
Код: выделить все
Look for clues that suggest an override, for example:
[    0.000000] ACPI: Override [DSDT-   A M I], this is unsafe: tainting kernel
[    0.000000] ACPI: DSDT 00000000be9b1190 Logical table override, new table: ffffffff81865af0
[    0.000000] ACPI: DSDT ffffffff81865af0 0BBA3 (v02 ALASKA    A M I 000000F3 INTL 20130517)



 Параметры ядра 
Для изменения параметров ядра нужно отредактировать соответствующий пункт меню в GRUB. Для редактирование меню выберите его (стрелками) и нажмите клавишу "e". Находим строку linuxefi - для загрузки в EFI режиме или linux16 - для загрузки в режиме BIOS.

  • Загрузка в текстовый режим добавьте параметр 3 (просто цифру 3).
  • Запуск в однопользовательском режиме (single mode) добавьте параметр single или просто цифру 1
  • Удалив параметры rhgb и quiet вы отключаете показ красивого, но бесполезного, экрана загрузки и вместо него увидите все логи и все ошибки, если они будут.
  • Иногда вы, возможно, не сможете использовать single метод. В этих случаях вы можете указать ядру Linux использовать другой init так:
    Код: выделить все
    init=/bin/bash


 Сочетания клавиш GRUB 
  • CTRL+x или F10 - Для завершения редактирования параметров и загрузки системы
  • ESC - выход из режима редактирования или режима командной строки
  • Ctrl+с - из режима редактирования запускает командную строку GRUB
  • c - запускает командную строку GRUB из меню выбора вариантов запуска


 Добавляем пункты перезапуска и выключения питания 
Добавить в файл /etc/grub.d/40_custom следующие строки
Код: выделить все
menuentry "Reboot the PC" { reboot }
menuentry "Power Off" { halt }



 Структура каталогов загрузочного раздела для UEFI 
Настраиваем GRUB2.
Структура разделов

Настраиваем GRUB2.
Структура каталога /boot

Настраиваем GRUB2.
Файлы Grub в /etc

Настраиваем GRUB2.
Пример загрузочного меню EFI



 Структура каталогов загрузочного раздела для BIOS 



 Восстановление GRUB с LiveCD для UEFI 
Чтобы узнать, какая прошивка используется на вашем компьютере, выполните следующую команду:
Код: выделить все
[ -d /sys/firmware/efi ] && echo UEFI || echo BIOS

Вывод возвращает только UEFI или BIOS, в зависимости от прошивки, установленной на вашем компьютере.

В системах с прошивкой UEFI обновлены пакеты shim и GRUB RPM, которые, в свою очередь, обновляют файлы загрузчика, находящиеся на системном томе EFI. Причины переустановки включают устранение неполадок при ранней загрузке и после непреднамеренного использования команды grub2-install, что приводит к неподдерживаемой конфигурации в системах UEFI.

Удалите следующие файлы:
Код: выделить все
rm /boot/efi/EFI/fedora/grub.cfg
rm /boot/grub2/grub.cfg

Удаление двух файлов grub.cfg запустит сценарий в grub2-common для воссоздания этих файлов.

Переустановите следующие пакеты:
Код: выделить все
dnf reinstall shim-* grub2-efi-* grub2-common

Не используйте команду grub2-install в системах UEFI. В этих системах загрузчики находятся в RPM-пакетах shim и grub-efi. При переустановке этих пакетов загрузчики переустанавливаются в надлежащее место в / boot / efi / на системном томе EFI.

============
Из-за отсутствия установленного пакета grub2-efi-x64-modules в составе LiveCD восстановление загрузчика оканчивается неудачей. Доустанавливаем необходимый пакет и устанавливаем GRUB.
Код: выделить все
dnf install grub2-efi-x64-modules
Для желающих поддержать
Карта SB: 5469 4009 6510 2267
Аватар пользователя
ROOT
Администратор
 
Сообщений: 417
Зарегистрирован: 01 авг 2011, 09:36
Откуда: Моск. обл., г. Железнодорожный

Вернуться в Fedora

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron