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

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

Модератор: ROOT

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

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

Оглавление


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


 Подготовка шрифта 
Генерируем шрифт для 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_TIMEOUT=5
GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true
GRUB_LANG="ru_RU.UTF-8"
GRUB_DISABLE_SUBMENU=true
GRUB_FONT=/boot/grub2/fonts/DejaVu.pf2
GRUB_GFXMODE="1920x1080"
GRUB_GFXPAYLOAD_LINUX=1920x1080
GRUB_GFXPAYLOAD_LINUX=keep
GRUB_BACKGROUND=/boot/grub2/holiday1.jpeg
GRUB_CMDLINE_LINUX="net.ifnames=0 crashkernel=auto rhgb quiet vga=845"
GRUB_DISABLE_RECOVERY="true"

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

Если картинка не захотела отображаться, то скорее всего включено чередование. Для отключения данного параметра можно воспользоваться утилитой convert:
Код: выделить все
convert -interlace none background.jpg background1.jpg

статус данного флага можно посмотреть утилитой 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
...

И, наконец, воссоздадите свой initrd ????
Код: выделить все
dracut /boot/initramfs-$(uname -r).img $(uname -r) --force

и перезапускаем
Код: выделить все
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-uefi0.png
Структура разделов

grub2-uefi1.png
Структура каталога /boot

grub2-uefi2.png
Файлы Grub в /etc

grub2-uefi3.png
Пример загрузочного меню EFI



 Структура каталогов загрузочного раздела для BIOS 
Для желающих отблагодарить
SB: 4274320029755744
QIWI: +79175241450
Аватар пользователя
ROOT
Администратор
 
Сообщений: 137
Зарегистрирован: 01 авг 2011, 09:36
Откуда: Моск. обл., г. Железнодорожный

Вернуться в Fedora

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

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