UEFI: различия между версиями
м (→Примечания: поправки) |
(переработано на корню, HOWTO осталось в старых ревизиях и более не нужно) |
||
Строка 1: | Строка 1: | ||
[[Category:Devel]] | [[Category:Devel]] | ||
[[Category:Distributions]] | [[Category:Distributions]] | ||
= Поддержка UEFI в ALT Linux = | = Поддержка UEFI в ALT Linux = | ||
== Цель == | == Цель == | ||
Обеспечить возможность совместного использования с ОС, установленными в UEFI-режиме, | Обеспечить возможность совместного использования с ОС, установленными в UEFI-режиме, без мороки с переключением BIOS/UEFI; предоставить возможность использования UEFI-«железа» без CSM<ref>2013: такое уже начинает появляться</ref>. | ||
== Состояние == | == Состояние == | ||
Бета. Нормально устанавливаемся на bare metal и в мультизагрузку с, например, openSUSE 12.2 и Windows 8. | |||
Для сборки образов требуется свежий Sisyphus, в т.ч.: | |||
* {{pkg|mkimage}} 0.2.5+ (для SB — 0.2.7+)<ref>рекомендуется также {{pkg|mkimage-profiles}} 0.9.8+ или свежий гит {{pkg|mkimage-profiles-desktop}}</ref> | |||
* {{pkg|xorriso}} 1.2.4[http://git.altlinux.org/people/mike/packages/?p=libisofs.git;a=commitdiff;h=786a1a8f11f1e6d0e39daf938992f104fdf25a5d +] | |||
* {{pkg|syslinux}} 4.04-alt5+<ref>в апстриме syslinux нужное добавлено в 4.06</ref> | |||
* {{pkg|evms}} 2.5.5-alt30+ | |||
* {{pkg|guile-evms}} 0.4-alt14+ | |||
* {{pkg|alterator-vm}} 0.4.2-alt1+ | |||
== Результат == | == Результат == | ||
По состоянию на | По состоянию на февраль 2013 года начальная поддержка UEFI включена в альфу [[Альт Линукс 7.0 Кентавр|Centaurus 7.0]] и [[Regular|регулярные сборки образов]]; последние также включают подписанный загрузчик и публичный ключ для работы без отключения Secure Boot. | ||
Реализация поддерживает запись на CD/DVD-болванку или USB-флэшку и загрузку в EFI mode или Legacy mode. Проверена на ASUS/Gigabyte UEFI и MacBook/MBP EFI. | |||
== Применение == | |||
Как обычно; [http://www.rodsbooks.com/efi-bootloaders/principles.html отличия] состоят в разбивке и установке загрузчика: | |||
* требуется подключить в {{path|/boot/efi}} существующий или новый FAT32-раздел с GPT-типом ESP (EFI System Partition) размером ~100—500 Мб; | |||
* модуль установки загрузчика предложит вариант «EFI», с которым стоит согласиться<ref>при установке загрузчика в MBR или раздел, а не ESP, загрузка в EFI mode не пройдёт</ref>. | |||
Следует устанавливать 64-битные дистрибутивы; запуск 32-битного дистрибутива возможен в режиме BIOS/CSM (Compatibility Support Module), а в режиме EFI такая установка не будет сочтена загрузочной<ref>OVMF в составе virtualbox обычно загружает EFI Shell, а поведение фирмварей на железе варьирует от представления меню пунктов загрузки до перехода к настройкам</ref>. | |||
При загрузке с образа в EFI-режиме загрузчиком будет графический rEFInd либо совсем текстовое ELILO, в BIOS-режиме — синяя текстовая либо брендированная графическая менюшка SYSLINUX. | |||
После собственно загрузки и логина именем root в EFI-режиме должны отработать команды | |||
modprobe efivars | |||
efibootmgr | |||
— в BIOS-режиме вторая из них скажет | |||
Fatal: Couldn't open either sysfs or procfs directories for accessing EFI variables. | Fatal: Couldn't open either sysfs or procfs directories for accessing EFI variables. | ||
Try 'modprobe efivars' as root. | Try 'modprobe efivars' as root. | ||
''' | {{attention|Не пытайтесь запускать '''efibootmgr''' на оборудовании '''Apple''', [http://www.rodsbooks.com/efi-bootloaders/installation.html известны] случаи повреждения его firmware таким образом.}} | ||
При загрузке установленной системы типичным на сегодня будет почти обычный {{pkg|grub2-efi}}. | |||
=== Secure Boot === | |||
Если нет возможности отключить (зайдя в firmware по Del или F2 и поискав в секциях Boot или Security) — можно подтвердить ключ, добавленный в упомянутые сборки по пути {{path|EFI/enroll/altlinux.cer}}<ref>в ранних образах был по пути {{path|EFI/BOOT/altlinux.cer}}</ref>. Пошаговая процедура описана на [http://www.rodsbooks.com/efi-bootloaders/secureboot.html rodsbooks.com] (потребуются не все шаги). | |||
=== VirtualBox === | === VirtualBox === | ||
Желательна ветка 4.2 и выше, в 4.1 реализация EFI несколько странная и крайне задумчивая. Требуется 64-битный экземпляр со включенной галкой "EFI" в настройках материнской платы. ISO рекомендуется подключать через SATA-, а не IDE-контроллер (спасибо vsu@ за подсказку). | Желательна ветка 4.2 и выше, в 4.1 реализация EFI несколько странная и крайне задумчивая. Требуется 64-битный экземпляр со включенной галкой "EFI" в настройках материнской платы. ISO рекомендуется подключать через SATA-, а не IDE-контроллер (спасибо vsu@ за подсказку). Диск — динамический на 10Gb или больше, чтобы по возможности отрабатывала авторазбивка. | ||
Получить доступ к настройкам можно быстрым нажатием F8, пока промелькивает логотип VirtualBox. | Получить доступ к настройкам можно быстрым нажатием F8, пока промелькивает логотип VirtualBox. | ||
Следует отметить, что NVRAM на виртуальном железе VirtualBox не переживает выключение экземпляра (это известная [http://www.virtualbox.org/ticket/11177 проблема]). Т.е. установщик/efibootmgr не может добавить ссылку на grub, а если добавить её руками, она исчезнет при следующем запуске экземпляра. Объезд упомянут по этой же ссылке: выполнить в ещё загруженной системе | |||
echo "fs0:\EFI\altlinux\grubx64.efi" > /boot/efi/startup.nsh | |||
=== KVM === | === KVM === | ||
Нужно загрузить экземпляр kvm с [http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=OVMF TianoCore firmware]. | Нужно загрузить экземпляр kvm с [http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=OVMF TianoCore firmware]. | ||
= | <div id="HOWTO"></div> | ||
== Самостоятельная сборка == | |||
== | Достаточно хорошая поддержка сборки UEFI-загружаемых гибридных образов<ref>бывшие здесь секции HOWTO и про live-uefi-*.iso уже окультурены и обобщены в указанных пакетах, потому более не требуются</ref> добавлена в {{pkg|mkimage}} 0.2.7; в качестве образца можно использовать example4 из документации пакета, а суть требуемых изменений в профиле сводится к: | ||
* добавлению в инсталер {{pkg|dosfstools}} ({{pkg|efibootmgr}} будет вытянут текущим {{pkg|alterator-grub}}); | |||
* добавлению в базовую устанавливаемую систему {{pkg|grub2-efi}}; | |||
* добавлению в {{path|modules}} для {{pkg|propagator}} {{path|kernel/drivers/firmware}} ради {{path|efivars.ko}}; | |||
* передаче mkimage переменной <tt>EFI_BOOTLOADER</tt> со значением <tt>elilo</tt> либо <tt>refind</tt><ref>другие типы бутлоадеров ещё не реализованы, см. {{path|tools/mki-copy-efiboot}}</ref><ref>что автоматически приведёт к добавлению в <tt>BOOT_TYPE</tt> значения <tt>efiboot</tt></ref>. | |||
== Примечания == | == Примечания == | ||
<references /> | |||
== Linkdump == | == Linkdump == | ||
Важное: | |||
* http://www.rodsbooks.com/efi-bootloaders/index.html | * http://www.rodsbooks.com/efi-bootloaders/index.html | ||
* https://wiki.archlinux.org/index.php/UEFI | * https://wiki.archlinux.org/index.php/UEFI | ||
* http://en.opensuse.org/KVM/UEFI_Secure_boot_using_qemu-kvm | * http://en.opensuse.org/KVM/UEFI_Secure_boot_using_qemu-kvm | ||
Разное: | |||
* http://www.opennet.ru/opennews/art.shtml?num=36068 | |||
** http://www.opennet.ru/opennews/art.shtml?num=36077 | |||
* http://www.suse.com/blogs/uefi-secure-boot-overview/ | * http://www.suse.com/blogs/uefi-secure-boot-overview/ | ||
* http://www.suse.com/blogs/uefi-secure-boot-plan/ | * http://www.suse.com/blogs/uefi-secure-boot-plan/ | ||
Строка 145: | Строка 84: | ||
** https://bugs.launchpad.net/ubuntu-cdimage/+bug/1062737 | ** https://bugs.launchpad.net/ubuntu-cdimage/+bug/1062737 | ||
* http://download.intel.com/support/motherboards/server/sr9000mk4u/sb/d71474002_sr9000mk4u_efi_userguide.pdf | * http://download.intel.com/support/motherboards/server/sr9000mk4u/sb/d71474002_sr9000mk4u_efi_userguide.pdf | ||
* [[MacBookPro]] | |||
[[MacBookPro]] |
Версия от 13:09, 22 февраля 2013
Поддержка UEFI в ALT Linux
Цель
Обеспечить возможность совместного использования с ОС, установленными в UEFI-режиме, без мороки с переключением BIOS/UEFI; предоставить возможность использования UEFI-«железа» без CSM[1].
Состояние
Бета. Нормально устанавливаемся на bare metal и в мультизагрузку с, например, openSUSE 12.2 и Windows 8.
Для сборки образов требуется свежий Sisyphus, в т.ч.:
- mkimage 0.2.5+ (для SB — 0.2.7+)[2]
- xorriso 1.2.4+
- syslinux 4.04-alt5+[3]
- evms 2.5.5-alt30+
- guile-evms 0.4-alt14+
- alterator-vm 0.4.2-alt1+
Результат
По состоянию на февраль 2013 года начальная поддержка UEFI включена в альфу Centaurus 7.0 и регулярные сборки образов; последние также включают подписанный загрузчик и публичный ключ для работы без отключения Secure Boot.
Реализация поддерживает запись на CD/DVD-болванку или USB-флэшку и загрузку в EFI mode или Legacy mode. Проверена на ASUS/Gigabyte UEFI и MacBook/MBP EFI.
Применение
Как обычно; отличия состоят в разбивке и установке загрузчика:
- требуется подключить в /boot/efi существующий или новый FAT32-раздел с GPT-типом ESP (EFI System Partition) размером ~100—500 Мб;
- модуль установки загрузчика предложит вариант «EFI», с которым стоит согласиться[4].
Следует устанавливать 64-битные дистрибутивы; запуск 32-битного дистрибутива возможен в режиме BIOS/CSM (Compatibility Support Module), а в режиме EFI такая установка не будет сочтена загрузочной[5].
При загрузке с образа в EFI-режиме загрузчиком будет графический rEFInd либо совсем текстовое ELILO, в BIOS-режиме — синяя текстовая либо брендированная графическая менюшка SYSLINUX.
После собственно загрузки и логина именем root в EFI-режиме должны отработать команды
modprobe efivars efibootmgr
— в BIOS-режиме вторая из них скажет
Fatal: Couldn't open either sysfs or procfs directories for accessing EFI variables. Try 'modprobe efivars' as root.
При загрузке установленной системы типичным на сегодня будет почти обычный grub2-efi.
Secure Boot
Если нет возможности отключить (зайдя в firmware по Del или F2 и поискав в секциях Boot или Security) — можно подтвердить ключ, добавленный в упомянутые сборки по пути EFI/enroll/altlinux.cer[6]. Пошаговая процедура описана на rodsbooks.com (потребуются не все шаги).
VirtualBox
Желательна ветка 4.2 и выше, в 4.1 реализация EFI несколько странная и крайне задумчивая. Требуется 64-битный экземпляр со включенной галкой "EFI" в настройках материнской платы. ISO рекомендуется подключать через SATA-, а не IDE-контроллер (спасибо vsu@ за подсказку). Диск — динамический на 10Gb или больше, чтобы по возможности отрабатывала авторазбивка.
Получить доступ к настройкам можно быстрым нажатием F8, пока промелькивает логотип VirtualBox.
Следует отметить, что NVRAM на виртуальном железе VirtualBox не переживает выключение экземпляра (это известная проблема). Т.е. установщик/efibootmgr не может добавить ссылку на grub, а если добавить её руками, она исчезнет при следующем запуске экземпляра. Объезд упомянут по этой же ссылке: выполнить в ещё загруженной системе
echo "fs0:\EFI\altlinux\grubx64.efi" > /boot/efi/startup.nsh
KVM
Нужно загрузить экземпляр kvm с TianoCore firmware.
Самостоятельная сборка
Достаточно хорошая поддержка сборки UEFI-загружаемых гибридных образов[7] добавлена в mkimage 0.2.7; в качестве образца можно использовать example4 из документации пакета, а суть требуемых изменений в профиле сводится к:
- добавлению в инсталер dosfstools (efibootmgr будет вытянут текущим alterator-grub);
- добавлению в базовую устанавливаемую систему grub2-efi;
- добавлению в modules для propagator kernel/drivers/firmware ради efivars.ko;
- передаче mkimage переменной EFI_BOOTLOADER со значением elilo либо refind[8][9].
Примечания
- ↑ 2013: такое уже начинает появляться
- ↑ рекомендуется также mkimage-profiles 0.9.8+ или свежий гит mkimage-profiles-desktop
- ↑ в апстриме syslinux нужное добавлено в 4.06
- ↑ при установке загрузчика в MBR или раздел, а не ESP, загрузка в EFI mode не пройдёт
- ↑ OVMF в составе virtualbox обычно загружает EFI Shell, а поведение фирмварей на железе варьирует от представления меню пунктов загрузки до перехода к настройкам
- ↑ в ранних образах был по пути EFI/BOOT/altlinux.cer
- ↑ бывшие здесь секции HOWTO и про live-uefi-*.iso уже окультурены и обобщены в указанных пакетах, потому более не требуются
- ↑ другие типы бутлоадеров ещё не реализованы, см. tools/mki-copy-efiboot
- ↑ что автоматически приведёт к добавлению в BOOT_TYPE значения efiboot
Linkdump
Важное:
- http://www.rodsbooks.com/efi-bootloaders/index.html
- https://wiki.archlinux.org/index.php/UEFI
- http://en.opensuse.org/KVM/UEFI_Secure_boot_using_qemu-kvm
Разное:
- http://www.opennet.ru/opennews/art.shtml?num=36068
- http://www.suse.com/blogs/uefi-secure-boot-overview/
- http://www.suse.com/blogs/uefi-secure-boot-plan/
- http://www.suse.com/blogs/uefi-secure-boot-details/
- http://cdimage.debian.org/cdimage/unofficial/efi-development/upload4/
- https://help.ubuntu.com/community/UEFI
- https://wiki.archlinux.org/index.php/UEFI_Bootloaders
- https://felipec.wordpress.com/2012/01/18/efi-adventures/
- http://mjg59.dreamwidth.org/4957.html
- http://download.intel.com/support/motherboards/server/sr9000mk4u/sb/d71474002_sr9000mk4u_efi_userguide.pdf
- MacBookPro