Применение утилиты efibootmgr в Linux для настройки загрузочного меню UEFI

Утилита efibootmgr для командной строки в Linux предоставляет удобные средства для управления UEFI-загрузочным меню. В этом руководстве представлены пять примеров использования efibootmgr. Предполагается, что вы уже установили Linux в режиме UEFI.

Для установки утилиты командной строки efibootmgr воспользуйтесь следующими командами.

sudo apt install efibootmgr

Федора, ЦентОС, РедХат.

sudo dnf install efibootmgr

sudo zypper install efibootmgr

sudo pacman - S efibootmgr

  • Просмотр актуальных параметров
  • Просто выполните команду, указанную ниже. В некоторых дистрибутивах Linux, например, в Debian, её следует запускать с правами sudo.

    efibootmgr

    Данная команда позволяет увидеть текущую активную загрузочную запись (BootCurrent), порядок загрузки, а также все имеющиеся загрузочные записи. Каждая запись определяется загрузочным номером в шестнадцатеричной системе. Звездочка (*) указывает на то, что данная загрузочная запись является активной.

    linux efibootmgr — это утилита для управления загрузочными записями в среде UEFI. Она позволяет добавлять, удалять и изменять порядок загрузки операционных систем и других загрузчиков, установленных на системе с поддержкой UEFI.

    Вы можете также использовать опцию — v для вывода дополнительной информации.

    efibootmgr - v

    Вы сможете ознакомиться с номером раздела EFI, типом таблицы разделов (GPT), UUID этого раздела и загрузочным файлом.

    efibootmgr-show-verbose-information

    На представленном выше скриншоте видно, что мой раздел EFI (ESP) располагается на седьмом разделе жёсткого диска (/dev/sda7). Это таблица разделов GPT.

    Читайте также:  Видеодрайверы в ОС Linux

  • Перестановка последовательности загрузки
  • Сначала зафиксируйте текущую последовательность загрузки. К примеру, вот моя последовательность загрузки:

    0013,0012,0014,0000,0001,0002,0003,000D,0011,0007,0008,0009,000A,000B,000C,000E

    После этого введите следующую команду.

    sudo efibootmgr - o

    Добавьте последовательность загрузки к этой команде.

    sudo efibootmgr - o 0013,0012,0014,0000,0001,0002,0003,000D,0011,0007,0008,0009,000A,000B,000C,000E

    Если вы хотите, чтобы запись 0012 загрузилась первой, просто переместите её влево от 0013 и нажмите Enter.

    sudo efibootmgr - o 0012,0013,0014,0000,0001,0002,0003,000D,0011,0007,0008,0009,000A,000B,000C,000E

  • Внесение информации о загрузке
  • Если на вашем компьютере присутствует несколько дистрибутивов Linux, и один из них не имеет записи для загрузки через UEFI, вы можете создать такую запись самостоятельно.

    Загрузитесь в дистрибутив Linux, который не содержит записи UEFI, и убедитесь, что загрузчик GRUB для EFI установлен в нём.

    sudo apt install grub-efi

    sudo dnf install grub2-efi-modules

    После этого подключите раздел EFI (ESP) к каталогу /boot/efi/. В данном случае /dev/sda7 выступает в роли ESP.

    sudo mount /dev/sda7 /boot/efi/

    После этого необходимо установить загрузчик Grub на ESP.

    sudo grub-install /dev/sda --target=x86_64-efi --efi-directory=/boot/efi/

    x86_64-efi указывает на то, что мы устанавливаем Grub для UEFI. По умолчанию применяется цель i386-pc, которая предназначена для классической BIOS.

    Теперь вы должны заметить новую запись в меню загрузки UEFI, созданную с помощью команды bootmgr. Во время установки Grub сначала копирует файл загрузчика. efi в каталог /boot/efi/EFI/, который обычно называется grubx64.efi. Затем выполняется команда, добавляющая новую запись в меню загрузки UEFI.

    Читайте также:  Все о ядре ОС Linux

    efibootmgr - c - d /dev/sda - p 7 - L - l \EFI\\grubx64.efi

    Новая запись станет первой в очереди загрузки.

    NVMe SSD

    Если у вас установлен NVME SSD, имя диска будет отличаться. Чтобы узнать, как называется ваш диск, выполните следующую команду.

    sudo parted - l

    К примеру, если ваш EFI-раздел расположен на /dev/nvme1n1p9, примонтируйте его в /boot/efi/.

    sudo mount /dev/nvme1n1p9 /boot/efi/

    Установите загрузчик Grub на раздел EFI.

    sudo grub-install /dev/nvme1 --target=x86_64-efi --efi-directory=/boot/efi/

  • Устранение записи о загрузке
  • Представим, что на вашем жёстком диске установлено несколько дистрибутивов Linux, и у вас имеется несколько загрузочных записей, как показано на предыдущем изображении. После того как вы удалили один из дистрибутивов, запись его загрузки всё ещё остаётся. Чтобы убрать эту запись, выполните следующие шаги:

    sudo efibootmgr - b - B

    sudo efibootmgr - b 0014 - B

    Опция — b задает идентификатор загрузки. Опция — B убирает этот идентификатор.

  • Включение или отключение записи загрузки
  • Знак звёздочки рядом с загрузкой указывает на её активное состояние. Если звёздочки отсутствуют, значит, запись неактивна. Чтобы активировать запись, выполните следующие действия:

    sudo efibootmgr - b - a

    Чтобы отключить запись, выполните следующее:

    sudo efibootmgr - b - A

    На моём другом компьютере с Linux Mint меню GRUB всегда скрыто, независимо от предпринимаемых действий. Порой мне требуется загрузить другой дистрибутив, такой как Fedora. В таких случаях я отключаю запись загрузки Linux Mint в меню UEFI. Теперь появляется меню Fedora, которое отображает GRUB.

    Читайте также:  Как установить и настроить антивирус ClamAV на Ubuntu для защиты системы

    Тем не менее, при обновлении до новой версии Linux Mint запись загрузки данной операционной системы будет восстановлена во время процесса обновления.

    Можно настроить файл службы systemd для автоматического отключения записи загрузки в Linux Mint.

    sudo nano /etc/systemd/system/disable-boot-entry.service

    Включите следующую строку в данный файл.

    [Unit] Description=disable Linux Mint Boot Entry After=multi-user. target [Service] Type=oneshot ExecStart=/bin/bash - c '/usr/bin/efibootmgr - b 0008 - A' [Install] WantedBy=multi-user. target

    Сохраните файл и закройте его. После этого включите данную службу.

    sudo systemctl enable disable-boot-entry.service

    Чтобы узнать больше о работе с systemd, ознакомьтесь с данной статьей.

    • Systemd в Linux – это инструмент для управления сервисами, уровнями загрузки и логами.

    Заключение

    Надеюсь, что этот учебник помог вам разобраться с командой Linux efibootmgr. Задумывались ли вы о том, как загрузить ISO-файл без использования загрузочной флешки или CD? Ознакомьтесь с нашим следующим руководством:

    • Как выполнить загрузку ISO-файлов через загрузчик Grub2

    Если этот пост оказался для вас полезным, подписывайтесь на нашу бесплатную рассылку новостей, следите за нами в Twitter или ставьте лайк нашей странице в Facebook. Благодарим вас за посещение!