Был ли у вас опыт работы с загрузчиками в Linux (GRUB, systemd-boot)?

«Был ли у вас опыт работы с загрузчиками в Linux (GRUB, systemd-boot)?» — вопрос из категории Linux, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, я работал с загрузчиками при администрировании серверов и настройке рабочих станций. Основной опыт — с GRUB 2, который является стандартом для большинства дистрибутивов.

Типичные задачи и настройки:

  1. Конфигурация параметров ядра: Редактирование файла /etc/default/grub для добавления параметров, таких как quiet для подавления вывода, nomodeset для проблем с видеодрайверами или selinux=0 (временно для отладки). После изменений необходимо выполнить:
    grub-mkconfig -o /boot/grub/grub.cfg  # Для систем на BIOS/MBR
    # Или для UEFI:
    grub-mkconfig -o /boot/efi/EFI/[distro]/grub.cfg
  2. Восстановление загрузчика: При переустановке другой ОС или повреждении MBR/UEFI загрузчика.
    • Для BIOS: загружался с LiveCD, монтировал корневую файловую систему и выполнял chroot, затем grub-install /dev/sdX.
    • Для UEFI: проверял наличие раздела ESP (EFI System Partition) и правильность его монтирования в /boot/efi.
  3. Работа с systemd-boot: Имею опыт настройки в дистрибутивах, где он используется по умолчанию (например, некоторые конфигурации Arch Linux). Конфигурация заключается в редактировании файлов в /boot/loader/entries/, которые определяют параметры загрузки для каждого ядра.

Для автоматизации (Infrastructure as Code): Использовал инструменты вроде grubby (в RHEL/CentOS) для программного изменения параметров ядра или настраивал образы системы (Packer) с предустановленными параметрами в GRUB.