Управление загрузкой

Процедура загрузки

  • При старте устройства происходит POST (Power-On Self Test), проверяющий работоспособность аппаратных компонентов

  • После этого происходит загрузка BIOS или UEFI в зависимости от системы

  • Независимо от типа загрузки в предыдущей стадии далее загружается GRUB

    • GRUB Bootloader загружает ядро, позволяя через меню при необходимости изменить параметры этой загрузки

  • Ядро загружается вместе с initramfs, который содержит необходимые для пуска системы драйвера

  • После загрузки ядра работу перехватывает systemd, который проходит через две фазы:

    • Старт базовых компонентов (примонтирование девайсов, разделов)

    • Старт сервисов и служб

  • Далее пользователь получает доступ к системе и возможность залогиниться

Grub2 Runtime

  • Runtime - параметры, применяемые только в текущем сеансе, до следующей перезагрузки

  • Из меню Grub2 необходимо нажать "e" для изменения настроек

  • При нажатии "с" совершается переход в командный режим Grub

    • Из командного режима "help" отобразит доступные опции

  • Grub2 по-умолчанию дает возможность выбрать для загрузки три последних ядра

  • Одной из опций является Rescue Kernel - ядро с ограниченном набором модулей, но с максимальной вероятностью безпроблемной загрузки

  • По-умолчанию набор опций следующий:

    • load_video - загрузка видеодрайвера

    • set gfx_payload=keep - режим видео

    • insmod gzio - активация модуля сжатия

    • linux ($root)/<kernel> - ядро для загрузки

    • root=/dev/mapper/rhel-root ro

    • crash/kernel=auto - запись дампа сбоя

    • lvm <volume>

    • rhgb - redhat graphical boot

    • quiet - без вывода информации

    • initrd /dev/initram<name>.img - initram образ

Grub2 Persistent

  • Persistent - настройки, которые сохраняются при перезагрузке

  • Данные параметры настраиваются в /etc/default/grub

  • После внесения изменений в настройки необходимо пересобрать grub.cfg

    • grub2-mkconfig -o /boot/grub2/grub.cfg для BIOS систем

    • grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg для EFI систем

Systemd таргеты

  • Таргет systemd - группа файлов инициализации загрузки

  • Часть трагетов - изолируемые (isolatable), они определяют конечное состояние, в котором загружается система

    • emergency.target - для загрузки минимального набора сервисов, используется для отладки проблем

    • rescue.target - также ограниченный набор сервисов, но с большим их числом

    • multi-user.target - обынчый запуск без графики

    • graphical.target - обычный запуск с графикой

  • При активации юнита, он добавляется к определенному таргету

  • Параметры самого таргета можно посмотреть через systemctl

  • Все сервисы, которые привязаны к таргету отображаются как симлинки в /etc/systemd/system/<name>.target

  • Зависимости таргетов доступны в systemctl list-dependencies

Настройка Default таргета

  • systemctl get-default отображает текущий таргет по-умолчанию

  • systemctl set-default устанавливает таргет по-умолчанию

  • systemctl start graphical.target - загрузит GUI

  • Загрузка в нужный таргет:

    • В grub2 использовать systemctl.unit=<name>.target в параметрах загрузки

    • В текущей системе systemctl isolate <name>.target

Last updated

Was this helpful?