This is Gentoo's testing wiki. It is a non-operational environment and its textual content is outdated.
Please visit our production wiki at https://wiki.gentoo.org
Efibootmgr
Приложение efibootmgr взаимодействует с прошивкой UEFI в системе. Это популярное приложение для изменения настроек EFI с целью создания и изменения загрузочных записей, с помощью которых можно загрузить Linux (или любую другую EFI операционную систему).
Приложение sys-boot/efibootmgr это не загрузчик. Это утилита, которая взаимодействует с прошивкой EFI в системе, которая работает в качестве загрузчика. С помощью efibootmgr можно создавать, менять местами, обновлять и удалять загрузочные записи.
Установка
Ядро
Необходимо включить поддержку CONFIG_EFI_VARS:
Firmware Drivers ---> EFI (Extensible Firmware Interface) Support ---> <*> EFI Variable Support via sysfs
Emerge
У пакета sys-boot/efibootmgr нет каких-либо USE-флагов. Все что нужно сделать - это установить его:
root #
emerge --ask sys-boot/efibootmgr
Конфигурация
EFI vars
Для того, чтобы успешно использовать efibootmgr, должна быть доступна файловая система переменных EFI. Следовательно система должна быть уже загружена в режиме EFI (а не через BIOS в режиме MBR), так как иначе переменные EFI сами по себе не будут доступны. Если система загружена в режиме MBR, перезагрузитесь и настройте все необходимое для загрузки EFI режиме. Обычно, для этого нужно, либо настроить встроенное ПО (BIOS), либо выбор в меню загрузки запись содержащую EFI.
Когда система загружена в EFI режиме запустите следующую команду, чтобы проверить доступность efivarfs:
root #
mount | grep efivars
efivarfs on /sys/firmware/efi/efivars type efivarfs (rw,nosuid,nodev,noexec,relatime)
Если данная файловая система не смонтирована (она должна быть смонтирована через скрипт инициализации sysfs), можно смонтировать ее вручную следующей командой:
root #
mount -t efivarfs efivarfs /sys/firmware/efi/efivars
Смотрите новость OpenRC-0.28.
Предварительные условия =
Если системный раздел EFI (ESP) не существует, он должен быть создан, см. EFI System Partition
Использование
Получение списка загрузочных записей
Чтобы получить список текущих загрузочных записей, используйте опцию --verbose (-v)
:
root #
efibootmgr -v
BootCurrent: 0002 Timeout: 3 seconds BootOrder: 0003,0003,0002,0000,0004 Boot0000* CD/DVD Drive BIOS(3,0,00) Boot0001* Hard Drive BIOS(2,0,00) Boot0002* Gentoo HD(1,800,61800,6d98f360-cb3e-4727-8fed-5ce0c040365d)File(\EFI\boot\bootx64.efi) Boot0003* Hard Drive BIOS(2,0,00)P0: ST1500DM003-9YN16G
Создание загрузочной записи
Чтобы создать загрузочную запись EFI, нужно передать несколько аргументов программе efibootmgr:
--create (-c)
чтобы создать новую запись;--part (-p)
за которой следует номер раздела, на котором находится системный раздел EFI;--disk (-d)
за которой следует диск, на котором находится системный раздел EFI;--label (-L)
за которой следует метка, которую необходимо использовать для загрузочной записи;--loader (-l)
за которой следует путь образа EFI для загрузки
Путь к образу EFI для загрузки должен в качестве разделителя в путях содержать \ (обратный слеш) вместо / (передний слеш).
Например:
root #
efibootmgr -c -d /dev/sda -p 2 -L "Gentoo" -l "\efi\boot\bootx64.efi"
Опционально, дополнительные ядра могут быть установлены и определены прошивкой UEFI. Это особенно полезно когда вы хотите протестировать больше ядер или сделать дуалбут с другой операционной системой. Они будут показаны в окне выбора загрузки, обычно после нажатия правильной комбинации клавиш во время инициализации системы. Последний добавленный вариант загрузки всегда имеет наибольший приоритет, так что он будет по умолчанию. Если правильная комбинация клавиш неизвестна, обратитесь к официальной документации производителя вашего компьютера. Обычно эту информацию несложно найти.
Удаление загрузочной записи
Перед удалением записи, сначала определите, какой ID был у записи.
Чтобы удалить запись Gentoo, которая была показана выше (и имеет идентификатор Boot0002), попросите efibootmgr удалить запись с идентификатором 2, передав в качестве аргументов следующие значения: --bootnum (-b)
это идентификатор, и опция --delete-bootnum (-B)
, означающая, что нужно удалить запись:
root #
efibootmgr -b 2 -B
Удаление
Unmerge
root #
emerge --ask --depclean sys-boot/efibootmgr
Смотрите также
- rEFInd — a boot manager for EFI and UEFI platforms
- Статья EFI stub kernel объясняет, как настроить ядро Linux, чтобы его можно было загрузить непосредственно из EFI
- Альтернативный метод 2: efibootmgr в Gentoo Handbook