efibootmgr: Управление диспетчером загрузки UEFI
Введение
`efibootmgr` — утилита для управления записями загрузки UEFI (UEFI boot entries).
Позволяет:
- просматривать текущие записи (Boot####),
- добавлять новые,
- менять порядок загрузки,
- удалять ненужные записи.
Просмотр записей загрузки
Чтобы увидеть список загрузочных записей:
- Код: выделить все
efibootmgr
Для подробного вывода с указанием путей:
- Код: выделить все
efibootmgr -v
Пример:
- Код: выделить все
BootCurrent: 0003
Timeout: 1 seconds
BootOrder: 0003,0001,0002
Boot0001* Fedora HD(1,....)/EFI/fedora/shimx64.efi
Boot0002* Windows Boot Manager HD(1,....)/EFI/Microsoft/Boot/bootmgfw.efi
Boot0003* UEFI Shell HD(1,....)/EFI/tools/Shellx64.efi
Добавление новой записи (пример UEFI Shell)
Чтобы добавить запись для UEFI Shell:
- Код: выделить все
efibootmgr -c -d /dev/sda -p 1 -l '\EFI\tools\Shell.efi' -L 'UEFI Shell'
Где:
- `-c` — создать новую запись,
- `-d /dev/sda` — устройство с EFI-разделом,
- `-p 1` — номер раздела,
- `-l` — путь к EFI-файлу (относительно ESP),
- `-L` — метка записи, отображаемая в меню UEFI.
Изменение порядка загрузки
Для установки своего порядка загрузки:
- Код: выделить все
efibootmgr -o 0006,0003,0002,0007,0005,0004,0008
Где `Boot0006`, `Boot0003` и т.д. — номера записей из вывода команды `efibootmgr`.
Удаление записи загрузки
Чтобы удалить ненужную запись (например, `Boot0008`):
- Код: выделить все
efibootmgr -b 0008 --delete-bootnum
Работа при включённом Secure Boot
Secure Boot — это функция проверки цифровых подписей EFI-загрузчиков и драйверов.
При активном Secure Boot в UEFI могут быть ограничения на изменение загрузочных записей.
Если команда `efibootmgr` возвращает ошибку “Operation not permitted”, возможны причины:
- Secure Boot активен и не разрешает модификацию переменных загрузчика.
- Система использует “Setup Mode” или “User Mode” и защищает EFI переменные.
- Работа выполняется не от имени root.
Чтобы временно отключить Secure Boot:
- Код: выделить все
mokutil --disable-validation
reboot
После перезагрузки подтвердите действие в меню “Machine Owner Key (MOK)” и выберите “Disable validation”.
Теперь `efibootmgr` сможет изменять записи.
Если Secure Boot нужно оставить включённым, но разрешить работу с загрузчиком, можно добавить собственный ключ MOK:
- Код: выделить все
mokutil --import my_key.der
reboot
После подтверждения ключа можно использовать подписанные загрузчики (например, свой shim или grub).
Проверить состояние Secure Boot:
- Код: выделить все
mokutil --sb-state
Пример вывода:
- Код: выделить все
SecureBoot enabled
Platform is in user mode
Советы и предостережения
- EFI System Partition должна быть смонтирована (обычно `/boot/efi`).
- Пути к файлам чувствительны к регистру и требуют обратных слешей (`\`).
- При удалении записей проверяй, что не удаляешь текущую (`BootCurrent`).
- Некоторые UEFI-прошивки не сохраняют порядок, заданный через efibootmgr.
- Если ничего не работает — проверь Secure Boot и переменные UEFI через `dmesg | grep EFI`.
Заключение
`efibootmgr` — мощный инструмент управления UEFI-загрузкой.
С его помощью можно добавлять и удалять записи, менять порядок, создавать загрузку с UEFI Shell.
При активном Secure Boot потребуется внимательность — система может блокировать изменения.
Работай аккуратно, проверяй содержимое `/boot/efi` и всегда имей Live-диск для восстановления.