- EFISTUB
- Contents
- Preparing for EFISTUB
- Booting EFISTUB
- Using a boot manager
- Using UEFI directly
- efibootmgr
- efibootmgr with .efi file
- kesboot
- More tools
- Using UEFI Shell
- Using a startup.nsh script
- Troubleshooting
- Cannot create a new boot entry with efibootmgr
- Newly created boot entries are removed
- EFISTUB does not work on some Dell systems
- Efi shell boot linux
- 2. UEFI на смену BIOS
- 3. Загрузка в UEFI
- 4. Windows on UEFI/GPT
- Отключение UAC и Windows Defender с командной строки.
- Загрузчик Windows и BootManager.
- 5. Linux on UEFI/GPT
- Работа c ESP в Linux
- 6. FreeBSD on UEFI/GPT
- Создание USB/HDD UEFI Bootable в FreeBSD:
- 7. Dual/Triple/Multiboot Windows,Linux,FreeBSD on UEFI
- DualBoot Linux и Windows
- UEFI DualBoot Windows и FreeBSD
EFISTUB
The Linux kernel supports EFISTUB booting which allows EFI firmware to load the kernel as an EFI executable. The option is enabled by default on Arch Linux kernels, or if compiling the kernel one can activate it by setting CONFIG_EFI_STUB=y in the Kernel configuration. See The EFI Boot Stub for more information.
With EFISTUB a kernel can be booted directly by a UEFI motherboard or indirectly using a boot loader. Using a boot loader is recommended if you have multiple kernel/initramfs pairs and your motherboard’s UEFI boot menu is not easy to use.
Contents
Preparing for EFISTUB
First, you must create an EFI system partition and choose how it is mounted. See EFI system partition#Mount the partition for all available ESP mounting options.
Booting EFISTUB
Using a boot manager
This article or section needs language, wiki syntax or style improvements. See Help:Style for reference.
There are several UEFI boot managers which can provide additional options or simplify the process of UEFI booting — especially if you have multiple kernels/operating systems. See Arch boot process#Boot loader for more information.
Using UEFI directly
UEFI is designed to remove the need for an intermediate bootloader such as GRUB. If your motherboard has a good UEFI implementation, it is possible to embed the kernel parameters within a UEFI boot entry and for the motherboard to boot Arch directly. You can use efibootmgr or UEFI Shell v2 to modify your motherboard’s boot entries.
efibootmgr
To create a boot entry with efibootmgr that will load the kernel:
or create a boot entry with efibootmgr and hibernation on swap partition:
Where /dev/sdX and Y are the drive and partition number where the ESP is located. Change the root= and resume= parameters to reflect your Linux root and swap partitions, see kernel parameters for supported device name formats, and persistent block device naming for how to obtain the corresponding value. If omitted, then the first partition on /dev/sda is used as the ESP.
Note that the -u / —unicode argument in quotes is just the list of kernel parameters, so you may need to add additional parameters (e.g. for suspend to disk or microcode).
After adding the boot entry, you can verify the entry was added properly with:
To set the boot order:
Where XXXX is the number that appears in the output of efibootmgr command against each entry.
efibootmgr with .efi file
This article or section is a candidate for merging with systemd-boot#Preparing a unified kernel image.
If using cryptboot AUR and sbupdate-git AUR to generate your own keys for Secure Boot and sign the initramfs and kernel then create a bootable .efi image, efibootmgr can be used directly to boot the .efi file:
See efibootmgr(8) for an explanation of the options. To include microcode in a unified kernel image, concatenate it with the initramfs and use the resultant image with objtool.
Some UEFI implementations make it difficult to modify the NVRAM successfully using efibootmgr. If efibootmgr cannot successfully create an entry, you can use the bcfg command in UEFI Shell v2 (i.e., from the Arch Linux live iso).
First, find out the device number where your ESP resides with:
In this example, 1 is used as the device number. To list the contents of the ESP:
To view the current boot entries:
To add an entry for your kernel, use:
Where N is the location where the entry will be added in the boot menu. 0 is the first menu item. Menu items already existing will be shifted in the menu without being discarded.
Add the necessary kernel options by creating a file on your ESP:
In the file, add the boot line. For example:
Press F2 to save and then F3 to exit.
Add these options to your previous entry:
Repeat this process for any additional entries.
To remove a previously added item do:
kesboot
You can also simplify and automate the work with EFISTUB using a script from the kesboot-git AUR package. It also contains a pacman hook that can add and remove EFI variables during actions with packages.
First, install the package, and then configure the /etc/kesboot.conf file:
The package also contains a program for the initial configuration of the EFI boot. After mounting the ESP directory, run
More tools
This section is being considered for removal.
Some of the tools above, and more, are briefly discussed in rEFInd#Tools.
Using UEFI Shell
If you do not want to create a permanent boot entry it is possible to launch the kernel from UEFI Shell as if it is a normal UEFI application:
In this case, the kernel parameters are passed as normal parameters to the launched EFISTUB kernel file.
To avoid needing to remember all of your kernel parameters every time, you can save the executable command to a shell script such as archlinux.nsh on your UEFI System Partition, then run it with:
Using a startup.nsh script
Some UEFI implementations do not retain EFI variables between cold boots (e.g. VirtualBox before version 6.1) and anything set through the UEFI firmware interface is lost on poweroff.
The UEFI Shell Specification 2.0 establishes that a script called startup.nsh at the root of the ESP partition will always be interpreted and can contain arbitrary instructions; among those you can set a bootloading line. Make sure you mount the ESP partition on /boot and create a startup.nsh script that contains a kernel bootloading line. For example:
This method will work with almost all UEFI firmware versions you may encounter in real hardware, you can use it as last resort. The script must be a single long line. Sections in brackets are optional and given only as a guide. Shell style linebreaks are for visual clarification only. FAT filesystems use the backslash as path separator and in this case, the backslash declares the initramfs is located in the root of the ESP partition. Only Intel microcode is loaded in the booting parameters line; AMD microcode is read from disk later during the boot process; this is done automatically by the kernel.
Troubleshooting
Cannot create a new boot entry with efibootmgr
This article or section is a candidate for moving to Unified Extensible Firmware Interface#Troubleshooting.
Some kernel and efibootmgr version combinations might refuse to create new boot entries. This could be due to lack of free space in the NVRAM. You can try deleting any EFI dump files:
Or, as a last resort, boot with the efi_no_storage_paranoia kernel parameter. You can also try to downgrade your efibootmgr install to version 0.11.0. This version works with Linux version 4.0.6. See the bug discussion FS#34641, in particular the closing comment, for more information.
Newly created boot entries are removed
The factual accuracy of this article or section is disputed.
Some motherboards may remove boot entries after a couple of boots. This could be due to lack of free space in the NVRAM. To prevent this from occurring, it may help to reduce the amount of Linux boot entries being added by efibootmgr by minimizing your entry creation process, as well as reducing the amount of automatic drive boot entries by the Compatibility Support Module (CSM) by disabling it from your UEFI settings.
EFISTUB does not work on some Dell systems
Several generation Dell BIOSes are wrongly passing the arguments to the bootloader, thus making EFISTUB parse a null command line which normally means unbootable system (see the complete linux-efi thread).
A workaround has been found since Linux 5.10 to correct this behavior (see this commit ). For Linux See also
Источник
Efi shell boot linux
BIOS — Basic Input Output System, это базовая система Ввода-Вывода, то есть набор программ зашитых в микросхему, использовалась ОС MSDOS, более современные ОС практически не используют BIOS.
За исключением процедуры POST — Инициализация и проверка работоспособности аппаратуры.
Если POST выполнен без ошибок, код BIOS начнёт поиск кода загрузчика ОС. Поиск выполняется на доступных и разрешённых в настройках носителях, код BIOS загрузит код загрузчика ОС в память и передаст ему управление.
Недостатки BIOS
- 16-битный код, реальный режим(real-mode)
- Отсутствие прямого доступа к 64-битному железу
- Отсутствие единого стандарта
- Сложность разработки.
2. UEFI на смену BIOS
Дословно Extensible Firmware Interface (EFI) — «расширяемый интерфейс прошивки»
EFI — интерфейс между операционной системой и микропрограммами, управляющими низкоуровневыми функциями оборудования, основное предназначение — корректно инициализировать оборудование при включении системы и передать управление загрузчику операционной системы.
EFI предназначен для замены BIOS, первый стандарт был разработан Intel, затем переработан и название заменено на UEFI (Universal).
Интерфейс, определённый спецификацией EFI, включает таблицы данных, содержащие информацию о платформе, загрузочные и runtime-сервисы, которые доступны для загрузчика операционной системы (ОС) и самой ОС.
Некоторые существующие расширения BIOS, типа ACPI и SMBIOS, также присутствуют в EFI, поскольку не требуют 16-разрядного runtime-интерфейса.
В дополнение к разнообразным службам и сервисам, EFI имеет оболочку — shell environment, для запуска программ, драйверов, создания исполняемых скриптов, для запуска утилит диагностики и обновления прошивок, работы с CD/DVD. Скрипты имеют расширение .nsh .
Достижения UEFI
- Отсутствие ограничений объема разделов и их количества
- Увеличение скорости загрузки
- Безопасность: возможность использования Secure Boot
- Обратная совместимость с BIOS — CSM (Compatibility Support Mode)
- Поддердка сетевой загрузки PXE
- Менеджер загрузки
3. Загрузка в UEFI
Как происходит загрузка в UEFI:
Примечание: в дальнейшем рассматривается только схема разметки GPT GUID Partition Table.
EFI ищет партицию с идентификатором EF00, эта партиция называется ESP (EFI System Partition) и должна быть оформлена как FS:
- FAT16
или - FAT32
однако, такие устройства как floppy, usb могут иметь FAT12 на ESP.
На партиции ESP, EFI по умолчанию ищет файл загручик:
\efi\boot\boot[название архитектуры].efi
например: \efi\boot\bootx64.efi и загружает его.
Далее уже работает сам загрузчик, by default это \efi\boot\bootx64.efi , он ищет корневую FS, на ней bootmanager или ядро, загружает их и передает им дальнейшее управление.
На самом деле, EFI BIOS, находит все ESP партиции, на всех носителях компьютера и на них файлы с расширением efi и если мы захотим загрузиться с какого-то иного носителя, второго диска или флешки, используя клавишу POP-UP меню загрузки BIOS, ну например F8 (у разных производителей могут разные функциональные клавиши), увидим все доступные носители с ESP и загрузчиками.
В отличие от BIOS, для UEFI используются другие ПЗУ, они дешевле, экономичней и имеют NVRAM в которой хранятся указатели на все найденные загрузчки .efi .
Структура ESP партиции выглядит следующим образом:
Примечание: Имена директорий Ubuntu, Debian, FreeBSD — всего лишь пример, можете использовать какие Вам угодно.
4. Windows on UEFI/GPT
Ничего необычно в установке Windows 7/8/10 на GPT из UEFI нет, ОС Windows ставится на диск с разметкой GPT только из UEFI.
Особенности и условия, ничего особенного:
- настройка в UEFI BIOS -> загрузка UEFY Only
- отключить Secure Boot
- как уже было отмечено ранее, использовать официальный носитель с ОС
- или выбрать правильный дистрибутив, если используете самодельные
Ниже показана структура ESP из Windows 7
Программа установки Windows создает ESP на компьютере при следующих условиях:
- ESP еще не создан.
- На диске достаточно места для создания раздела емкостью 100 МБ.
Программа установки Windows создает MSR при следующих условиях:
- MSR еще не создан.
- На диске достаточно места для создания раздела емкостью 128 МБ.
Приоритет создания ESP выше, чем у создания MSR, так как ESP необходим для загрузки компьютера:
https://technet.microsoft.com/ru-ru/library/dd744301(v=ws.10).aspx
Примечание: В Windows 8.x/10 ESP 350MB, а в Windows 10 MSR=0-16MB
Важно: чтобы из командной строки Windows (cmd.exe), можно было смонтировать Системный Раздел ESP, нужно отключить UAC, затем, перезагрузиться, после чего команда: отработает без проблем.
Отключение UAC и Windows Defender с командной строки.
выходим в командную строку Windows:
Пуск -> Выполнить -> cmd.exe -> Запустить от Администратора
Отключаем Windows Defender:
Теперь, если у нас административный account, можно не заботиться о разрешениях «от Администратора».
Снова выходим в командную строку и выполняем следующие действия для монтирования Системного раздела ESP — EFI System Partition:
Ниже показано содержимое ESP записанное при установке Windows 7:
Примечание: В некоторых случаях, команда mountvol не может смонтировать ESP и выдает сообщение о неверном параметре, это возможно при наличии нескольких HDD в системе или по иной причине.
В случае возникновения описанной выше проблемы, вместо одной команды придется выполнить несколько.
Выходим в командную строку и выполняем следующие действия для монтирования Системного раздела ESP — EFI System Partition:
чтобы понять что на каком диске находится:
- выбираем диск командой sel
- смотрим содержимое партиций
смотрим содержимое диска 1 (он пуст)
Из верхнего видно, нам нужен Системный раздел: Раздел 1 Системный 100 Mб 1024 Kб
- выбираем диск 0
- партицию 1
- назначаем букву для монтирования
Все, можем работать с Системным разделом EFI, он смонтирован как диск S:
Загрузчик Windows и BootManager.
Как было сказано ранее, в UEFI NVRAM содержатся настройки, переменные EFI, прописанные и обнаруженные загрузчики с расширением .efi, порядок загрузки и тд и тп.
Для настройки BootLoader и BootManager, Microsoft использует целую ветку в реестре, а работа с ней и управление, осуществляется командой bcdedit.
Посмотреть текущие настройки можно следующим образом:
вариант с лицензионной системы:
строка:
path \EFI\Microsoft\Boot\bootmgfw.efi
говорит об использовании оригинального EFI загрузчика от Microsoft.
Ниже показано что default’ный:
- \EFI\Boot\bootx64.efi
и - \EFI\Microsoft\Boot\bootmgfw.efi
это одна и та же EFI программа, см размер.
В случае хакерской активации через Slic, возможен такой загрузчик:
path \EFI\Microsoft\Boot\windslic.efi
Если установлен загрузчик rEFInd, path должен быть: path \EFI\REFIND\REFIND_X64.EFI
Изменить загрузчик из Windows, можно командой bcdedit: например:
5. Linux on UEFI/GPT
Перед установкой Linux из UEFI, советую настроить BIOS следующим образом;
- загрузка UEFY Only
- отключить Secure Boot
Дистрибутивы Debian/CentOS/Ubuntu — при начальной установке не требуют
вмешательства, установщик правильно разбирается с разметкой:
- если разметка отсутствует создает ESP и прописывает туда загрузчик efi
- если разметка уже есть и ESP партиция в наличии, добавляет туда свой загрузчик и делает его default’ным
Примечание: В EFI/BIOS предлагается выбрать загрузку UEFI Only потому что с ней не будет проблем.
Это связано с реализацией UEFI/BIOS различными производителями.
Загрузка: UEFY, Legacy — должна отрабатывать в последовательности:
- — сначала найти ESP и попытаться загрузиться
- — если ESP на устройствах отсутствуют, перейти к загрузке Legacy(BIOS)
Загрузка на некоторых материнских картах в случае выбора двух режимов; UEFI и затем Legacy может не найти реально существующий EFI-загрузчик на HDD.
Поэтому, лучше установить UEFY Only и установить ОС, а потом можно экспериментировать с настройками BIOS.
Кроме того, есть материнские карты отдельных производителей, у которых загрузчик ищется только в \EFI\Microsoft\Boot\.
Допустим мы ставили Linux на чистый диск из UEFI, посмотрим конфигурацию системы и загрузки GRUB2 + EFI: /dev/sda1 это /boot/efi ESP partition
Посмоотрим разметку диска (GPT):
рекомендую сохранять значение UUID для ESP (может пригодится для grub)
модуль efivars подгружается автоматически при установке из UEFI
благодаря ему, реализован очень полезный функционал, но будьте осторожны с содержимым, которое монтируется в /sys/firmware/efi!
Очень Важно: UEFI NVRAM доступна на запись от root’а, удаление данных в NVRAM, может стать катастрофой для компьютера!
Еще один важный и полезный инструмент, утилита efibootmgr позволяет решать проблемы загрузки.
посмотрим текущее состояние:
текущий загрузчик EFI: BootCurrent: 0004
порядок загрузки EFI: BootOrder: 0004,0000,0001,0002,0003
и смотрим кто у нас 4 или 0004: Boot0004* debian HD(1,800,100000,dfb01231-7608-4325-99e7-5cfc1379d23c)File(\EFI\debian\grubx64.efi)
Все верхние примеры были на базе ОС Debian.
Работа c ESP в Linux
Важно: ESP должна быть смонтирована!
В нижнем примере это выглядит следующим образом:
содержимое ESP при единственной установленой ОС Debian
В Ubuntu отличаться будет лишь названием: /boot/efi/EFI/ubuntu/
Создание GPT разметки в Linux:
- Ubuntu и Debian имеют адаптированную утилиту fdisk для работы с GPT
- или воспользоваться альтернативой: gdisk или parted
Примеры разметки:
- fdisk
- parted
- sgdisk или
Примечание: Комментария и объяснения верхних команд не будет, как ими пользоваться можно прочитать в man
6. FreeBSD on UEFI/GPT
Установка FreeBSD из UEFI на чистый диск проходит без проблем, но если диск уже размечен как GPT и на нем есть ESP партиция, то встраиваться туда FreeBSD не умеет.
Ниже пример чистой установки FreeBSD из UEFI(пусть не смущает что это VM):
- uname
- camcontrol
- gpart
- mount
- монтирование ESP и просмотр содержимого
Загрузка FreeBSD из UEFI коротко, четко и ясно описана в uefi(8)
UEFI firmware ищет загрузчик OS на EFI System Partition (ESP), если не установлен, по умолчанию грузит /efi/Boot/bootx64.efi. Это уже было описано.
По умолчанию FreeBSD устанавливает свой EFI загрузчик: boot1.efi как /efi/Boot/bootx64.efi
- boot1.efi читает /boot.config или /boot/config
- затем ищет на ufs или zfs загрузчик loader.efi и загружает его
- loader.efi загружает ядро — kernel
Создание USB/HDD UEFI Bootable в FreeBSD:
Просто. Далее можем развернуть систему руками, как обычно из /usr/freebsd-dist при загрузке с CD/DVD или Memstick.
Что из себя представляет /boot/boot1.efifat:
Немного смущает что разный размер:
Но ничего страшного, при ручной разметке я использовал /boot/boot1.efi и без автоскрипта для efi-shell startup.nsh
Как во FreeBSD создать свой /boot/boot1.efifat, например, размером 512K:
Верхнее, только в случае отсутствия других ОС на диске, для DUAL/TRIPLE Boot, ESP должна быть достаточного размера, в случае Windows не менее 100MB
Это легко посчитать установив один раз Windows+Linux+FreeBSD.
Как во FreeBSD создать EFI раздел: создать FAT32:
7. Dual/Triple/Multiboot Windows,Linux,FreeBSD on UEFI
Выше была рассмотрена чистая установка трех Операционных систем, на основании которой, можно сделать несколько важных выводов:
- Windows 7/8/10
- использует существующую ESP при установке
- делает собственый загрузчик default’ным, не интегрирует существующие ОС в меню загрузки
- имеет утилиту управления загрузчиком: bcdedit
- Linux
- использует существующую ESP при установке
- делает собственый загрузчик GRUB2-EFI default’ным, добавляет существующие ОС в загрузочное меню
- имеет утилиту управления загрузчиком: efibootmgr
- FreeBSD
- процедура установки не умеет использовать существующую ESP
- не имеет утилит управления загрузчиком
- имеет пакет(порт) grub2-efi для установки и настройки стороннего загрузочного менеджера
На основании данных выводов, можно легко установить указанные ОС вместе на один компьютер:
- на один диск
- на разные диски
- в любом порядке
однако определенный порядок, может упростить настройку загрузки.
При установке двух систем на один диск, удобней следующий порядок:
- 1. Windows затем 2. FreeBSD
- 1. Windows затем 2. Linux
- 1. Linux затем 2. FreeBSD
А в случае установки трех систем на один диск, удобней следующий порядок:
- Windows
- FreeBSD
- Linux
Следует отметить, верхние рекомендации, являются условными, потому что опираются на личное, субъективное мнение.
Кроме того, при установке OS FreeBSD, необходимо:
- использовать ручную разметку диска: Manual
- не создавать ESP партицию
необходимые дополнительные настройки после установки FreeBSD разберем позже.
DualBoot Linux и Windows
Как уже было сказано, при установке первой системой Windows, а затем Linux, проблем не будет.
Не потребуется никаких дополнительных настроек, при установке Linux, будет установлен BootManager Grub2-EFI, grub2 найдет вторую систему и добавит в меню
Меню GRUB2 в Debian будет выглядеть примерно:
в Ubuntu
Разберем что делать, если Windows была установлена позже и как создать меню загрузки в GRUB2.
Нам необходимо создать меню Windows для GRUB2, для этого необходимо загрузить Linux. Это можно сделать двумя способами:
- из Windows с помощью bcdedit
или - используя POP-UP меню BIOS выбрать загрузку Linux
После того как загрузились в Linux, необходимо:
- изменить порядок загрузки через efibootmgr
имеем by default: BootOrder: 0005, где Boot0005* Windows Boot Manager меняем на debian - создать меню загрузки Windows для GRUB2
два варианта:- достаточно выполнить утилиту os-prober (ее используют grub-probe и grub-mkconfig)
- или создать руками /etc/grub.d/40_custom
Все.
UEFI DualBoot Windows и FreeBSD
Недостатки FreeBSD в случае MultiBoot:
- Установщик FreeBSD не умеет интегрировать efi загрузчик в уже существующую ESP
- В FreeBSD отсутствует утилита аналогичная efibootmgr
Существующие решения UEFI Multiboot для FreeBSD:
- порт sysutils/grub2-efi
- сторонний загрузчик rEFInd
Установщик FreeBSD не умеет интегрировать свой загрузчик в уже существующую ESP и система не имеет утилиты манипуляции переменными EFI.
Наименее затратный вариант, если FreeBSD будет установлена первой. При установке нужно проследить чтобы партиция ESP была размером не менее 100MB. В ином случае, разметить вручную Manual
Если OS FreeBSD будет устанавливаться не первой системой:
- разметку диска необходимо выполнить вручную Manual
- ESP создавать НЕ НУЖНО! Должна быть только одна.
- по завершению установки выйти в режим Live CD/USB и установить пакет sysutils/grub2-efi
- или вместо grub2-efi установить из Windows загрузочный менеджер rEFInd
Рассмотрим вариант установки FreeBSD позже остальных ОС с установкой и настройкой sysutils/grub2-efi.
При установке выбираем Manual разметку диска, создаем как минимум freebsd-ufs для корня и freebsd-swap для swap, или устанавливаем zfs на пустую партицию.
Рассмотрим на примере, была установлена OS Windows 7, затем мы установили OS FreeBSD 11.0-Release и после установки вышли в режим Live CD/USB:
— смотрим разметку диска
— задаем под себя переменную PATH и устанавливаем пакетный менеджер pkg:
— устанваливаем пакет grub2-efi
— необходимо смонтировать ESP партицию
— выполняем grub-install — обязательно с ключами или by default будет искать парцтию boot_bios для Non-UEFI загрузки:
— GRUB2 прописал свой загрузчик в:
— создание меню загрузки Windows для grub2-efi
- выполняем grub-mkconfig для создания конфигурации /boot/grub/grub.cfg
- удаляем секцию 10_kfreebsd из /boot/grub/grub.cfg — она создается НЕВЕРНО может мешать:
- создаем свою секцию 40_custom.dist меню загрузки Windows
где root=(hd0,gpt1) это ESP партиция с efi-загрузчиком Windows
— выполняем reboot и завершаем установку FreeBSD
— загружаемся в Windows и используя bcdedit. меняем загрузчик на grub2-efi от FreeBSD:
При использовании rEFInd, не требуется установка grub2-efi, но перед завершением установки FreeBSD необходимо выйти в Live CD/USB, смонтировать партицию ESP и скопировать туда загрузчик FreeBSD:
- монтируем ESP
- создаем директорию FreeBSD и копируем в нее загрузчик
- установку и настройку rEFInd удобней выполнить из Windows, но можно из FreeBSD.
Установка и настройка rEFInd.
- монтируем ESP используя команду mountvol
- Скачиваем rEFInd
- Разворачиваем архив в S:\EFI\refind
- Удаляем все лишние из \EFI\refind
- создаем конфиг refind.conf
- настраиваем в нем нужные нам меню:
- используя bcdedit устанавливаем refind как загрузчик by default
- перезагружаемся и наслаждаемся меню rEFInd
rEFInd имеет достаточное количество настроек и может быть использован как с текстовым меню или графическим с иконками и тд и тп. Используйте документацию и пример refind.conf-sample
Теперь не составит труда настроить загрузку UEFI OS FreeBSD,Linux,Windows: Dual, Triple или MultiBoot.
Источник