КДПВ. Бут-менеджер rEFInd с темой оформления Regular.

На сегодняшний день практически все уже слышали про технологию UEFI. Говорить о том, что это такое и зачем оно нужно, я не собираюсь. Сегодня я бы хотел описать простейший сценарий установки Dual Boot системы с полной поддержкой UEFI, а также рассмотреть отдельно установку и настройку бут-менеджера rEFInd. Возможно вы уже видели подобные мануалы и гайды, но я постараюсь донести весьма доходчиво суть того, что мы будем делать и зачем. В других мануалах вы лишь смотрите за «магией» картежника и пытаетесь её повторить, делая, зачастую, элементарные ошибки. Кому эта тема интересна — прошу под кат.

В целом UEFI призвана наоборот упросить процесс загрузки, а не усложнить его. К примеру, посредством этой технологии компьютер можно загружать ОС и вовсе без прослойки в лице GRUB / LILO / etc, загрузчиком может выступать сама UEFI. Однако этот метод имеет свои недостатки, например, вам придется повозиться после обновления ядра, можно, разумеется, написать скрипт, но в целом этим и занимается grub2-efi

Итак, давайте сформируем примерный список наших действий, некоторым хватит прочесть его и уже взяться за дело. Собственно тут будет всего четыре пункта. Пятый и шестой пункт опционален.

  1. Запись образа Windows 10 (8/8.1) на диск/флешку.
  2. Установка Windows 10 на часть диска.
  3. Запись образа Linux-дистрибутива с поддержкой EFI (большинство) на диск/флешку.
  4. Установка Linux-дистрибутива на оставшуюся часть диска.
  5. Установка и конфигурация rEFInd.
  6. Удаление GRUB и полный переход на rEFInd.


На первый взгляд всё очень просто, всего 4 базовых пункта, но тут есть огромное количество нюансов.

Ошибки делают на всех этапах: входят в режим Legacy-bios, указывают не тот загрузочный раздел, просто не понимают, что делают и т.д. В конечном итоге всё это приводит к массе боли и страданиям на форумах, в чатах, и т.д. На деле же всё нереально просто, нужно просто понимать, что ты делаешь на каждом этапе и проверять себя.

Сначала немного теории


UEFI видит только один специальный ESP-раздел, обычно он имеет размер 100-200 мегабайт и форматирован в FAT32 (бывает в FAT16), в нем содержаться папки с названиями а-ля Boot, Microsoft, Fedora, Ubuntu и т.д. Если вы перепробовали достаточное количество ОС и никогда не форматировали этот раздел, то там могло набраться приличное количество папок. К примеру, у меня было 2 живых оси и лежало около 6 папок.

P.S. CodeRush подсказал, что поддерживаются все FS, если на них есть соответствующие драйверы:
Это неверно. UEFI видит все разделы, для ФС которых в конкретной реализации прошивки имеются драйверы. ESP же отличается от остальных разделов только тем, что а) для FAT драйвер иметь обязательно и б) на разделе ESP осуществляется поиск загрузчиков и автоматическое создание соответсвующих переменных BootXXXX, если загрузчики нашлись.


В самих папках лежат исполняемые файлы .efi которые и выступают в роли загрузчиков ОС. В папке debian вы наверняка обнаружите файл grubx64.efi, а в папке Microsoft – bootmgr.efi.

Большинство Linux-дистрибутивов монтируют ESP-раздел к /boot/efi, то есть загрузчик Debian будет лежать примерно на таком пути: /boot/efi/EFI/debian/grubx64.efi

C директорией разобрались, а что дальше?

А дальше нужно понимать, что существует ещё порядок загрузки, которым можно руководить с помощью утилиты efibootmgr, если у вас её нет, то можете скачать через свой пакетный менеджер, во всех стандартных репозиториях она присутствует. Для начала можете просто ввести эту команду и увидеть список порядка загрузки, а также все UEFI-записи. Если хотите разобраться с утилитой, то курите ман и читайте интернеты, в целом она весьма простая. Злой Windows как раз-таки тут и затирает наш GRUB и ставит Windows Boot Manager первым приоритетом, поэтому его приходится восстанавливать. Скажу лишь как редактировать записи:
efibootmgr -b <номер записи> -<модификатор редактирования> <параметр модификатора>
К примеру, efibootmgr -b 0 -B означает удалить запись 0.

P.S. CodeRush и другие комментаторы заметили, что efibootmgr является весьма опасной утилитой и отмечают, что гораздо безопасней пользовать EFI Shell.

По факту GRUB можно вообще не трогать, потому что он наверняка так и лежит в папке EFI/<название дистрибутива>, нужно лишь восстановить запись и выставить первый приоритет, но зачем что-то копать если можно chroot’нуться и ввести grub-install? В большинстве случаев он сделает всё сам.

Кстати, стоит не забывать, что базовым функционалом efibootmgr обладает и сам, собственно, UEFI, он умеет читать эти записи и выстраивать приоритеты. Но сам просматривать ESP-разделы и добавлять новые записи он не умеет, эти обязанности возложены на EFI Shell и операционные системы.

P.S. CodeRush
Еще как умеет, и это умение требуется спецификацией начиная с UEFI 2.2 (SecureBoot появился в UEFI 2.3.1C).


И на последок: Все ваши действия в efibootmgr записываются в NVRAM! В большинстве случае UEFI умеет восстанавливать битый NVRAM каждый раз проверяя его и перезаписывая, в случая неполадок. Однако некоторые недобросовестные производители выпускают сырые прошивки и можно получить самый настоящий кирпич. К примеру ноутбуки с UEFI на базе Phoenix SCT окирпичиваются! Так что перед тем как продолжить читать, удостоверьтесь, что ваша модель материнской карты или ноутбука, устойчива к таким экспериментам.

P.S. Уже после написания большей части статьи я вспомнил про Secure Boot. Обычно UEFI тянет его за собой, но в большинстве случаев его можно весьма просто отключить в настройках UEFI. Многие Linux-дистрибутивы поддерживают его, но я всё же рекомендую его отключить, так как он может потянуть за собой массу проблем.

Базовый экскурс в теорию закончен.

Теперь можно перейти к практике


Дисклеймер: Сразу оговорю, что я предпочитаю стерильные условия и сам делаю полную переустановку с помощью проверенных лично мной утилит. Если вы будете использовать другие утилиты, то, пожалуйста, не пишите почему у вас что-то не получается на том или ином этапе. Мой вариант проверен сотнями переустановок друзьям и коллегам.

Первым делом нам нужно записать Windows


Потому что если поставить Windows второй, то она затрет загрузчик. Восстановить? Без проблем. Но зачем возня, если можно сразу сделать всё по уму? Впрочем я всё равно обговорю нюансы восстановления чуть позже в конце статьи.

В отличии от Linux, Windows записать гораздо проще, на мой взгляд. Первый способ до возможно многим знаком, нужно просто зайти в cmd.exe от имени администратора и ввести эти команды. Не сложно заметить, то тут нет абсолютно никакой магии. Мы просто форматируем флешку в FAT32:

diskpart
list disk
select disk <номер флешки>
clean
create partition primary
select partition 1
active
format fs fat32 quick
assign
exit


После этого нужно просто открыть ISO-файл архиватором и перекинуть содержимое на чистую флешку. Всё, UEFI-флешка готова. На Linux можно сделать всё аналогичным образом, просто форматируем в FAT32 и копируем содержимое.

Полученную флешка должна отлично загружаться любым ПК с поддержкой UEFI.

Кстати, обратимся к теории: наш образ с Windows 10 содержит папочку efi, в ней как раз лежит всё добро для начала загрузки, которое должен увидеть наш UEFI. Поэтому простого форматирования и копирования в большинстве случаев хватает для большинства ПК.


Однако я предпочитаю второй способ с использованием утилиты Rufus. Он меня никогда не подводил. Однако это Windows-only способ. На Linux-системах использование ddresque для создания загрузочной флешки Windows НЕ РАБОТАЕТ. Так что пробуйте другие утилиты, если первый способ с простым форматирование не помог.

Всё что вам будет нужно: выбрать вашу флешку, выставить параметр «Схема раздела и тип системного интерфейса» на «GPT для компьютеров с UEFI», и нажать старт. Остальные параметры трогать не нужно. Лучше использовать флешки помельче (на 8-16 гигабайт).

Наверняка один из способов должен был прокатить, лично я ни разу с проблемами на этом этапе не встречался, главное чтобы компьютер поддерживал UEFI.

Поэтому перейдем к этапу установки


После загрузки в UEFI-режиме делаем всё по стандартной схеме, но на этапе выбора типа установки выбираем «экспертную», то есть мы разметим раздел сами. Размечать рекомендую аккуратно, особенно если дисков много. Наконец, выбрав диск, удалите все существующие разделы. Создайте один раздел с нужным вам размером, к примеру, 150 гигабайт. (Если вы предпочитаете создавать два и более разделов для ОС и файлов — без проблем, создавайте). Выберете этот раздел кликом мышки и нажмите «Далее». И если вы всё сделали верно, то Windows попросит вас создать дополнительные. Обязательно отвечайте «Да». Система создаст три раздела. Два своих для системных нужд и один тот самый нужный нам EFI-раздел. У меня он по нумерации всегда второй, всего получится 4 раздела, включая пользовательский NTFS. Если установщик не предложил создать разделы или создал всего один, то значит вы загрузились в Legacy-режиме и нужно перезаписывать флешку, что-то пошло не так. К сожалению редактор разделов Windows-установщика крайне слаб по возможностям, поэтому пробовать размечать разделы под будущий Linux тут смысла нет, оставляем это место попросту свободным. Дальше устанавливаем всё в штатном режиме.

Кстати, один из признаков правильной установки Windows в UEFI-режиме, появление логотипа производителя материнской карты / ноутбука / планшета при загрузке. Во многих UEFI (к примеру от ASUS и ASRock) есть отдельная настройка для этого. Так что если логотипа нет, но всё остальное прошло как по маслу, то ничего страшного в этом нет.

Тонко настраивать Windows на данный момент не рекомендую, так как если что-то пойдет не так, то возможно придется переустановить.


Записываем Linux?


Ага. После входа в Windows рекомендую сразу скачать образ выбранного вами дистрибутива и записать его аналогичным образом через Rufus. Правда в случае с Linux-дистрибутивами Rufus может спросить массу вопросов, к примеру он может попросить подгрузить загрузчик syslinux с интернета или выбрать режим записи образа: ISO или DD. На все вопросы отвечаем «Да.», то есть да, скачиваем последнюю версию syslinux и записываем в режиме ISO. Проверено на Ubuntu (и её вариациях Server, Mate, GNOME), Fedora, RHEL7, Debian и других.

До Dual Boot буквально один шаг


В отличии от Windows большинство дистрибутивов имеют отличную индикацию UEFI-режима. К примеру Debian в своем установщике черным по белому пишет, что система запущенна в UEFI-mode. Другие дистрибутивы проявляют это странным grub-загрузчиком, который выглядит «как-то не так».

Думаю если вы собрались ставить Linux, то вы наверняка сами знаете как ставить ваш любимый дистрибутив, поэтому я не буду заострять внимание на подробностях установки отдельно взятого дистрибутива. Потому что этот этап до боли прост. Если вы уже действительно прогрузились в UEFI-режиме и установили Windows как надо, то Dual Boot уже практически в кармане.

Итак всё что вам потребуется сделать при установке Linux:
Выбрать раздел /dev/sda2 (в вашем случае это может быть другой раздел) и указать точку монтирования — /boot/efi. Всё. Нет, правда, всё. Разумеется не забудьте разметить ext4 / Btrfs / ReiserFS / XFS / JFS раздел, примонтировать его в корень /. Кому нужен swap (если нужен) создайте и его. Дальше установщик вашего дистрибутива сделает всё сам, установит в директорию EFI/<название дистрибутива> свой GRUB и найдет запись Windows (EFI/microsoft).

Данная логика была проверена во всех вышеозначенных дистрибутивах. То есть повторюсь ещё раз: Главное показать вашему дистрибутиву где у вас этот заветный ESP-раздел и куда надо ему кидать загрузчик. Он его не форматирует, а просто добавляет GRUB. А вот уже сам GRUB вершит магию, изменяет приоритеты загрузки и т.д. Замечу, что некоторые дистрибутивы сами монтируют этот раздел куда надо, так как видят флаги ESP и BOOT. К примеру в установщике Debian нужно просто создать пользовательский раздел и всё.


Наводим красоту, ставим rEFInd


К сожалению счастью я болею сильной формой перфекционизма. И простой GRUB2 меня не устраивал, больно он страшный и не красивый. Беглый гуглинг рассказал мне о BURG, «красивом» форке GRUB, но он был заброшен и на данный момент скорее мертв, чем жив. К счастью для UEFI-машин есть отличная альтернатива — rEFInd. rEFInd является форком, заброшенного ныне rEFIt, а также его логическим продолжением. Первый создавался в первую очередь для Mac'ов и работы рядом с Boot Camp, нынешний форк такой узкой специализации не имеет и подходит практически для любых конфигураций.

Стоит сразу заметить, что rEFInd НЕ является загрузчиком. Это так называемый Boot Manager, он вызвает другие .efi-бинарники к исполнению, а также может направить UEFI на запуск ядра прямо с раздела /boot. Другими словами то есть систему загружает не он, а сам UEFI. Для Multi-Boot машин является отличным решением. Сам по себе rEFInd является .efi-приложением, собранным средствами UEFI Shell. Сам находится в директории EFI/refind/refind_x64.efi


Помимо того, что можно выбирать между уже установленными системами на ПК, приятным плюсом можно выделить автоматическое обнаружение загрузочных флешек и дисков. На КПДВ это можно увидеть. У меня имеется загрузочная флешка с Debian (не установщиком, а полноценной ОС) и можно увидеть удобную индикацию того, что это именно флешка, а не что-то другое. Если у вас имеется несколько ядер, то их список можно увидеть по нажатию клавиши F2. Помимо этого в файле /boot/refind_linux.conf можно задать несколько вариантов с разными параметрами ядра (например первый — стандартный для загрузки GUI, второй — безопасный режим без видеодрайвера и т.д, можно сделать дюжину вариантов, по умолчанию всего три). Также в папку EFI/tools можно накидать различных .efi-бинарников, к примеру UEFI Shell или memtest86+. rEFInd их автоматически подхватит и покажет в нижнем ряду как утилиты.

Еще пара скринов







Хотите также?


Процесс установки из под Linux необычайно прост. Все способы описаны на официальном сайте, устанавливать можно практически из любой ОС. Для начала посетите эту страничку и скачайте .deb- или .rpm-пакет.

Если у вас редкий дистрибутив вроде Slackware или Gentoo, то лично я вам помочь не смогу, но на сайте есть обычный .zip-архив и другие варианты установки, так что если уж вы работаете в подобных дистрибутивах, то наверняка поставить своими силами вы сможете без проблем.


Сделайте бэкап EFI-директории:
cp -r /boot/efi/EFI /boot/EFI.bkp
После загрузки пакета, выполните:
cd Downloads или cd Загрузки
И установите пакет:
sudo dpkg -i <имя пакета>.deb или sudo dnf install <имя пакета>.rpm
В моем случае dpkg не мог иногда подтянуть зависимости, если у вас возникнут такие же трудности, то установите gdebi (sudo apt-get install gdebi) и выполните sudo gdebi <имя пакета>.deb.

Если у вас RHEL или CentOS, то используйте yum вместо dnf.

В логах установки пакета можно отследить лог установки rEFInd, в котором возможно будут ошибки их надо сразу отследить. Однако по моему опыту ошибок не возникает, если всё сделать правильно. Проверить результат работы установщика rEFInd можно, воспользовавшись утилитой efibootmgr, там первым приоритетом должна должен быть именно rEFInd Boot Manager.

Установить rEFInd повторно, если пакет уже установлен, можно с помощью команды:
refind-install
Установку rEFInd первым приоритетом можно произвести в ручную, с помощью команды:
refind-mkdefault

Перезагружаемся.

Всё очень страшно и откуда у меня столько ОС?


Да, всё страшно, пока. На самом деле ОС у вас всего две. Просто rEFInd собрал все .efi-бинарники и ещё отобразил ОС с возможностью загрузки напрямую. Для исправления этого недоразумения мы удалим лишнее, напишем свой конфиг и поставим красивую тему на rEFInd.

Первым делом зайдите в Linux, выбрав один из рабочих пунктов загрузки. В меню должен быть пункт для загрузки БЕЗ использования grubx64.efi! В разделе /boot проще работать из под администратора (потому у команду cd не хватает привелегий, а sudo она не работает), так что su и вводим пароль root'а.

Этот пункт не зря опциональный, потому что если у вас недостаточно опыта, то можно очень просто что-то сломать и не заметить. Рекомендую подготовить флешку с рабочим LiveCD, чтобы проводить восстановление, в случае неожиданностей.

Наша первая задача — удалить лишние директивы загрузки, их запросто может быть штук 6, а системы всего две.

Заходим в директорию:
cd /boot/efi/EFI && ls
Вероятно тут будет пять папок:
BOOT, microsoft, <ваш дистрибутив>, refind и tools.
Если будет что-то лишнее — смело удаляйте.

Способ 1 (через очищение, опаснее):
Убедившись что вы загрузились через rEFInd (!) и НЕ использовали для этого GRUB можете смело удалить папку вашего дистрибутива. Перезагрузитесь и проверьте, можете ли вы загрузиться в ваш Linux. Если можете, то вероятно в меню загрузки осталось 4 директивы: Windows, Linux и два странных пункта, которые приводят (скорее всего) к загрузке Linux. Можно было догадаться, что это .efi-бинарники из папки EFI/BOOT. Папку можно удалить полностью. НО! Убедитесь, что у вас есть бэкап. Перазагружаемся. Всё отлично?

Удаляем GRUB:
sudo apt-get remove grub2 grub2-efi grub grub-efi
Или:
sudo dnf remove grub2

Теперь можно ставить тему.

Некоторые UEFI другие директории вовсе не видят. Поэтому небольшой work around для таких систем существует. Удаляем папку BOOT, переименовываем папку refind в папку BOOT, а также сам файл refind_x64.efi в bootx64.efi. Перезагружаемся.


Способ 2 (через конфиг rEFInd, безопаснее):
Этот способ гораздо безопаснее, потому что удалять и что либо трогать мы не будем, мы добьемся резальтата правильной настройкой конфига. Сам конфиг лежит тут: /boot/efi/EFI/refind/refind.conf
Чтобы настроить свой набор директив загрузки нужно использовать два параметра scanfor и menuentry, после настройки должен получится примерно такой конфиг:

# Сканируем записи созданные ручкуами, флешки и оптически приводы
scanfor manual,external,optical
# Пункт для загрузки Linux
menuentry Linux {
loader /EFI/ubuntu/grubx64.efi
icon /EFI/refind/icons/os_linux.png
}
# Пункт для загрузки Windows 10
menuentry "Windows 10" {
loader \EFI\Microsoft\Boot\bootmgr.efi
icon /EFI/refind/icons/os_win.png
}


Разумеется это только часть конфига, другие параметры можно взять из примера

Мой конфиг на базе первого способа с комментариями

# Ожидание в секундах перед авто-выбором ОС
timeout 20
# Скринсервер через 300 секунд, если ничего не выбрали,
# но нажали любую клавишу и отменили автовыбор
screensaver 300
# Разрешение бут-менеджера
resolution 1280 1024
# Использовать графику при загрузке Linux. Этот параметр позволит загружать ОС с красивой Plymouth
# заставкой в разрешении указанном выше
use_graphics_for linux
scanfor internal,external,optical,netboot,biosexternal
# Подключение темы
include themes/refind-theme-regular/theme.conf


Отдельно про Plymouth можно почитать здесь.

Включение красивой темы

С этим всё просто, чуть выше последняя строчка конфига указывает на .conf-файл темы. Сами темы желательно класть в папку /boot/efi/EFI/refind/themes. По-умолчанию её нет, создайте через mkdir.
Заходим в директорию themes и просто пишем git clone https://github.com/munlik/refind-theme-regular.git. В конфиге прописываем строку include themes/refind-theme-regular/theme.conf
Другие темы можно посмотреть на оф. сайте.

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

Пожалуй на этом всё. Мы получили красивый бут-менеджер для выбора нужной ОС с полной поддержкой UEFI. Пункт с установкой rEFInd наиболее сложный, а поэтому опциональный, большинству хватит grub2-efi.

На последок небольшое видео от меня:

Наверняка закралось приличное количество ошибок в тексте, буду рад, если вы отпишите о них мне ЛС.
Поделиться с друзьями
-->

Комментарии (53)


  1. Meklon
    16.05.2016 14:53
    +2

    Спасибо огромное, поиграю на досуге. Откровенно говоря, я таки не понял до сих пор преимуществ использования EFI. У меня уже сто лет Grub2 и все работает. Такой же список всех ОС и вариантов ядер. В чем преимущество объективное кроме «модно, стильно, красивая тема»?

    Кстати, а почему не на Хабр?


    1. grozaman
      16.05.2016 15:03

      На хабре какие-то странные преобразования. В направлении «Разное» нет хабов попросту. А другие направления не подходят вовсе. Поэтому решил здесь, хабы вроде подходящие. К тому же опасался критики, статья всё же не сильно продвинутая в техническом плане, основная сложность тут пожалуй только с rEFInd. С ним действительно можно получить массу проблем и убить выходные.

      По поводу самого UEFI. На мой взгляд он попросту упрощает многие вещи в плане загрузчика, выступая сам в его роли. Поиграв пару дней, решив массу интересных проблем, стало понятно, что предыдущая модель была даже сложнее. На мой взгляд схожую ситуацию сейчас можно наблюдать в противостоянии systemd / sysvinit / upstart.


    1. CodeRush
      16.05.2016 17:38
      +3

      Преимущества объективно:
      — понятный и стандартный 64(реже 32)-битный интерфейс вместо 16-битного набора костылей, программных прерываний, ресетов через порт клавиатуры и передачи управления на MBR.
      — для загрузки ОС больше не нужны соственнно загрузчики, и даже вот эти «системы управления загрузкой» вроде rEFInd нужны только тем, кого по каким-то непонятным причинам не устраивает стандартное меню выбора загрузочного устройсва.
      — отсутсвие легаси времен царя гороха позволяет использовать прошивку в качестве корня доверия, с SecureBoot и TPM measured boot, и быть уверенным, что загрузчик не подменен атакующим на такой же, только с бэкдором.
      — то же самое отсутствие костылей ускоряет загрузку, особенно это ускорение заметно на системах с большим количеством OROMов, например, в аппаратным RAID-контролером, но даже на обычном ноутбуке видно невооруженным глазом.
      — значительно более простая расширяемость, в том числе и конечным пользователем, через подсистему DriverXXXX/KeyXXXX, о которой надо бы написать статью, а то она пока не очень известна массам
      — много других, но конечный пользователь их не замечает и это правильно

      Есть и недостатки, основной — UEFI-загрузчик имеет доступ к большему количеству «мяса и кишок» прошивки, и потому к нему должна быть более высокая степень доверия, чем к старому коду из MBR/PBR. Именно поэтому совет по отключению SecureBoot, который в этой статье дается — он крайне вредный, и лучше научиться пользоваться этой технологией, чем отключать ее лишь потому, что она «слишком сложная» и с ней «бывают проблемы».


      1. grozaman
        16.05.2016 17:46

        К сожалению у меня компьютер при установке Ubuntu 16.04 не видит даже клавиатуру со включенным SecureBoot. Я сам люблю использовать новые технологии. Если у читающих есть достаточно свободного времени, то пусть попробуют поставить свой дистрибутив со включенным SecureBoot, может получится поставить без особых проблем. Если использовать PS/2-клавиатуру, то можно добраться до середины установки и Ubuntu сама попросит его отключить, что весьма интересно…

        Насчет использования rEFInd. Да, с одной стороны это несколько лишнее, если твоя материнская карта и так предлагает красивый юзер интерфейс для выбора ОС, но увы, мне для смены ОС нужно зайти в UEFI-меню, внести изменения в порядок загрузки, сохранить их, перезапустить и наконец войти куда надо. Я меняю ОС достаточно часто, на дню раза два запросто, поэтому для это серьезная потеря времени. Считаю что мой способ более универсальный и неприхотливый к оборудованию, а так же расширяет возможности кастомизации (под rEFInd сделана масса неплохих тем, к тому же с необычной простотой можно нарисовать свою за вечер).

        Те кто используют одну ОС и вовсе могут освоить EFISTUB.


        1. CodeRush
          16.05.2016 18:05
          +1

          Почему не пользоваться всплывающим меню по F10/F11/F12 для выбора загрузочного устройства вместо того, чтобы в BIOS Setup заходить?


          1. grozaman
            16.05.2016 18:07

            У меня нет такой возможности, при запуске системы внизу справка о том, что можно нажать F2 или Del. Обе клавиши заводят в ASUS EZ Mode.


            1. Mixaill
              16.05.2016 18:22

              Попробуйте ESC.


              1. grozaman
                16.05.2016 18:26

                Специально пошел проверил.
                Не работает: ESC, F8, F9, F10, F11, F12. Работают только две вышеозначенные клавиши. Честно говоря не вижу смысла разрабам ASUS пилить фичу и не писать о ней при загрузке.


                1. CodeRush
                  16.05.2016 18:34

                  Что за модель ноутбука?
                  BBS Popup (то самое меню выбора устройства) есть практически во всех прошивках последних 5 лет, но иногда его нужно включать отдельно. Проверьте свою прошивку на наличие Advanced Mode в дополнение к EZ Mode, возможно, нужное меню и его горячая клавиша просто отключены по умолчанию.


                  1. grozaman
                    16.05.2016 18:36

                    У меня не ноутбук. У меня десктоп с матерью Asus Sabertooth 990FX R2.0.
                    В Advanced Mode порыться надо, может быть действительно просто отключено…


        1. arantar
          16.05.2016 20:06

          А чем виртуальные машины не устраивают?


          1. grozaman
            16.05.2016 20:06

            Photoshop и игрушки в виртуальной машине как-то не очень работают.
            Со скоростью SSD мне проще переключить систему (дело нескольких секунд, на запуск VM столько же почти уходит).


            1. arantar
              16.05.2016 20:24

              А в Linux вы что запускаете такого, чего нельзя в VM?
              Я в своё время предпочел именно VM реальной, т.к. всегда всё можно вернуть на свои места, если что-то пойдет не так. (:


              1. grozaman
                16.05.2016 20:25

                Я же ответил: Photoshop (различные удобные утилиты сопровождающие его) и игрушки. Для всех них нужны мощные вычислительные ресурсы видеокарты.


                1. arantar
                  16.05.2016 20:38

                  Просто не думал, что есть Photoshop под Linux. С играми там как, насколько я знаю бедновато.


                  1. grozaman
                    17.05.2016 00:03

                    Так вы мне предлагаете запускать виртуалку под Linux или под Windows? :) Я про первое. Linux я просто люблю и сидеть в нем через виртуалку не очень интересно.


                    1. arantar
                      17.05.2016 02:02

                      Под Windows. (:
                      Просто мне казалось всегда неудобным наличие более одной физической ОС на одном ПК. В одной системе одни файлы/программы, в другой — другие, частенько не доступные из другой ОС.


                      1. grozaman
                        17.05.2016 07:14

                        Ну у меня есть раздел форматированный в NTFS. Его видят все системы. Там и обмениваю все.


      1. ValdikSS
        19.05.2016 16:14

        Нужно заметить, что TPM Measured Boot и с BIOS вполне возможен и используется.


  1. alexws54tk
    16.05.2016 16:06

    Прочитал статью про rEFInd. Заинтересовался этой модной пакостью в очередной раз-таки потыкать её.
    Пару предложений высказал в личку.


  1. CodeRush
    16.05.2016 17:58
    +1

    Поправлю немного фактических неточностей:

    UEFI видит только один специальный ESP-раздел, обычно он имеет размер 100-200 мегабайт и форматирован в FAT32 (бывает в FAT16)
    Это неверно. UEFI видит все разделы, для ФС которых в конкретной реализации прошивки имеются драйверы. ESP же отличается от остальных разделов только тем, что а) для FAT драйвер иметь обязательно и б) на разделе ESP осуществляется поиск загрузчиков и автоматическое создание соответсвующих переменных BootXXXX, если загрузчики нашлись.

    Но сам просматривать ESP-разделы и добавлять новые записи он не умеет, эти обязанности возложены на EFI Shell и операционные системы.
    Еще как умеет, и это умение требуется спецификацией начиная с UEFI 2.2 (SecureBoot появился в UEFI 2.3.1C). Я советую полностью отказаться от использования efibootmgr, т.к. утилита эта имеет давнюю историю порчи вполне валидных переменных на платах с прошивками на кодовой базе Insyde H2O и Phoenix SCT. Если вам не нравится управление загрузчиками и приоритетами из BIOS Setup — используйте команду bcfg из UEFI Shell, она работает значительно лучше и проблем с ней я не видел ни разу, в отличие от.


    1. grozaman
      16.05.2016 18:01

      Спасибо за правки!
      Разбирался сам, литературы на русском маловато. Кстати, у меня на одном из компьютеров UEFI 2.1 вроде как, поэтому не знал, что UEFI уже научился так делать. Добавлю в пост чуть позже, пока нет под рукой компьютера.
      И ещё: А как завести поддержку других ФС? И почему, к примеру, Fedora ругается, что раздел загрузчика должен быть именно в FAT32 и не дает себя установить?


      1. CodeRush
        16.05.2016 18:32
        +1

        Поддержка других ФС добавляется соотвествующими драйверами, которые с ESP может грузить как сама прошивка, так и системы управления загрузкой вроде rEFInd. Почему ругается установщик — он расчитан на систему «среднего» пользователя, у которого в прошивке никаких драйверов, кроме FAT, нет, и он не будет разбираться, почему после установки на загрузчика раздел EXT4 он не появился в списке.


        1. grozaman
          16.05.2016 18:35

          Именно эти файлы устанавливает rEFInd, если видит ОС на специфической FS (у меня debian лежит на btrfs, rEFInd заботливо скачал btrfs_x64.efi и положил в папочку drivers). Спасибо за ответы.


          1. CodeRush
            16.05.2016 18:38

            Без rEFInd то же самое делается добавлением этого драйвера в переменную DriverXXXX, и он будет грузиться самой прошивкой, если она поддерживает спецификацию UEFI не ниже 2.3.


  1. en1gma
    16.05.2016 18:44
    -2

    К примеру, посредством этой технологии компьютер можно загружать ОС и вовсе без прослойки в лице GRUB / LILO / etc, загрузчиком может выступать сама UEFI.

    в целом, не верно. то, что в случае некоторых ос мы можем EFISTUB — это отдельный разговор.
    Запись образа Windows 10 (8/8.1) на диск/флешку.
    Установка Windows 10 на часть диска.

    проще сразу wim/esd развернуть
    UEFI видит только один специальный ESP-раздел

    нет, видит всё, лезет туда, на что есть драйвера. в esp ищет *.efi
    efibootmgr

    лучше забыть и настраивать из шелла
    сам, собственно, BIOS, он умеет читать эти записи и выстраивать приоритеты.

    какой такой BIOS?
    Но сам просматривать ESP-разделы и добавлять новые записи он не умеет, эти обязанности возложены на EFI Shell и операционные системы.

    нэ-нэ-нэ…
    Все ваши действия в efibootmgr записываются в NVRAM

    аха… прям сам…
    В большинстве случае BIOS умеет восстанавливать битый NVRAM каждый раз проверяя его и перезаписывая, в случая неполадок.

    хрена с два… как бы не наоборот… и какой опять BIOS?
    с BIOS на базе Phoenix SCT окирпичиваются

    не только. и какой опять BIOS?
    но я всё же рекомендую его отключить

    великолепно.
    не пишите почему у вас что-то не получается на том или ином этапе

    учитывая выше и ниже сказанное — великолепно…
    Не сложно заметить, то тут нет абсолютно никакой магии. Мы просто форматируем флешку в FAT32:

    аха, только вот за этим скрывается куча всего. на флешке создаётся таблица разделов (куча флешек идёт завода с флоппи-стайл форматированием), записываются загрузчики и т.д. но нет, мы же просто форматируем флешку(!!!!!, флешку, блин) в FAT32
    После этого нужно просто открыть ISO-файл архиватором и перекинуть содержимое на чистую флешку. Всё, UEFI-флешка готова. На Linux можно сделать всё аналогичным образом, просто форматируем в FAT32 и копируем содержимое.

    просто за вас уже всё сделали
    Поэтому перейдем к этапу установки

    в этом разделе и паре следующих всё прекрасно, практически каждое слово.
    Наводим красоту, ставим rEFInd

    и далее сводится к тому, что распакуем архив и поменяем приоритеты. ну и про нескучные обои…


    1. grozaman
      16.05.2016 18:59

      Именно поэтому я опубликовал статью на Geektimes, а не на Habrahabr.
      Ошибки исправлю. Старался подать нормальным человеческим языком, а не расписывать 33 варианта установки так, сяк, эдак, получилось выбрать только что-то одно. Теорию которую описал вывел практически эмпирически, тупо потому что нет ни одной статьи на русском языке в которой доходчиво (!), без сотни терминов описано происходящее.


    1. CodeRush
      16.05.2016 19:08
      +1

      Замечу про BIOS — называть нынешнюю прошивку BIOS'ом вполне можно, т.к. и «по букве» (т.е. как базовая система ввода-вывода) и по духу (т.е. как motherboard firmware) термин вполне подходящий. UEFI — это вообще говоря только интерфейс между прошивкой и OS, и реализовывать его может что угодно, даже coreboot или Uboot.
      Короче: термин уже стал нарицательным, и не стоит ругать за него.


      1. grozaman
        16.05.2016 19:11

        Я тоже писал этот термин как нарицательное, но теперь уже всё в статье заменил, наверно так будет всё же корректней и прозрачней.


  1. SovGVD
    16.05.2016 19:43

    Интересная тема. Есть x86 планшетник с Android и Windows10, UEFI, захотелось поставить хоть какой нибудь Linux дистрибутив. Но вот проблема — ни один не хочет ставиться. Происходит так (на примере Ubuntu, если вырубить сплеш, чтобы видно что происходит): жму F7, вылезает менюшка откуда грузится (или аналогично через BIOS настройки через EFI Shell), GRUB загружается, тыркаю Live или установку, ядро прогружается, дальше огромное полотно stdin: I/O error, внизу сообщение о том что образ не найдет и BusyBox, не реагирующий на клавиатуру (через USB-otg, в GRUB работает).
    Перепробовал множество нагугленных вариантов, но ничего не и не помогло. Возможно кто-то сталкивался?
    Legacy mode не нашел. LiveUSB например с Android 6 загружается нормально.


    1. CaptainFlint
      16.05.2016 21:07

      А какая модель планшета? Вообще, с линуксами под планшеты всё очень заморочено, там часто стоят редкие специфические устройства, под которые драйвера фиг найдёшь, а если и найдёшь, то фиг соберёшь.
      Можно попробовать ROSA Fresh (уефный 32-битный образ), кое-какие доделки для планшетов мы там в своё время реализовывали.


      1. SovGVD
        16.05.2016 21:18

        Onda v919, на вид больше похоже на ПК без клавиатуры, чем на планшет. Но вот ни готовые образа, ни установочные не работают, ни с 32, ни с 64 битным загрузчиком (там несколько странно, из биоса shell ругается на 32 битные efi, а если из меню по f7, то ругается что не поддежрживает 64 битные). Есть подозрение что после загрузки ядра не видны устройства, но с другой стороны android 6 почти тоже linux и там проблемы нет, за исключением не работающего отображения уровня зарядки.
        Образ попробую, малоли.


    1. Cr558
      16.05.2016 22:07

      А откуда «ставитесь»? С какого носителя, какая там ФС и т.п.?


      1. SovGVD
        16.05.2016 23:02

        C USB флешки, сделанной разными методами (dd, unetbootin, rufus, убунтовая приблуда и еще чего то пробовал, ФС видимо FAT32), выбирая её в boot menu (по F7) или запуская efi файлик через shell (bios->Launch EFI Shell кажется), думаю не суть, в любом случае дальше загрузки ядра и не реагирующего на клавиатуру (возможно модули какие то не подгружаются) busybox дело не продвинулось. Так же пробовал готовые образы UEFI флешек, результат аналогичный (GRUB -> лог запуска -> busybox).


  1. vaslobas
    16.05.2016 20:23

    А я пользуюсь Кловером на хакинтоше, который у меня грузит сразу 3 системы – OS X, Win 10, Arch. Работает как часы.
    https://wiki.archlinux.org/index.php/Clover


    1. grozaman
      16.05.2016 20:26

      rEFInd тоже умеет грузить OSX без проблем :)
      А про Clover слышал тоже.


      1. vaslobas
        17.05.2016 01:12

        Так Кловер форкнутый Рефит допиленный, чтобы грузить хакинтош. Рефинд, к сожалению, не способен грузить хакинтош.


        1. grozaman
          17.05.2016 07:18

          Почему не способен? rEFInd это тоже форк rEFIt. http://www.rodsbooks.com/refind/installing.html
          На сайте много про OSX и как из под нее ставить его.


          1. vaslobas
            17.05.2016 11:52

            Рефинд может грузить ОС Х на настоящих маках, но никак не на хакинтошах. В Кловере проделана огромная работа, чтобы он мог нормально загрузить ОС Х на обычном писи.


            1. Meklon
              17.05.2016 17:26

              А что яблочники там такого навертели уникального? Я думал и grub2 справиться должен.


              1. grozaman
                17.05.2016 17:27

                Может это как-то с дефолтным LVM связано. Я точно не знаю.


              1. vaslobas
                17.05.2016 17:39

                Основная проблема, что яблочники пилят всё только для своих 3.5 железяк и не очень рады, если кто-то хочет использовать железяки не одобренные яблоком же.


                1. grozaman
                  17.05.2016 17:40

                  И в принципе весьма правильно делают. Свою ОС они продают только вместе с компьютером.


                1. Meklon
                  17.05.2016 18:24

                  Ну железо-то у них тривиальное. Почему и удивлён.


                  1. vaslobas
                    17.05.2016 19:35

                    Ну, так даже у видеокарты для мака свои прошивки, у мамки эппла написанный эпплом ДСДТ. Всё железо действительно писюковское, но нюансов куча, которые не дают запустить ОС Х на писи без всякого геморроя. Вот Кловер и делает кучу работы, чтобы ОС Х спокойно запускалась и думала, что работает на одном из одобренных Эпплом компьютеров.


  1. skobkin
    17.05.2016 14:54

    В прошлом году писал пост на аналогичную тему.
    Кстати, у вас в конфиге указана общая иконка «linux» для Ubuntu, хотя, если мне не изменяет память, с rEFInd идёт довольно большой набор иконок, где есть все популярные дистрибутивы.


    1. grozaman
      17.05.2016 15:02

      Это просто пример конфига, у меня другой, у меня он сам определяет установленные ОС.
      То есть если я вставил флешку с ОС RHEL, то он отобразит её логотип, покажет что это USB девайс и позволит на нее загрузиться. При этом никаких правок я не вношу.


      1. skobkin
        17.05.2016 15:04

        Параметр scanfor. Конфиг по умолчанию так и делает.


        1. grozaman
          17.05.2016 15:05

          Да, я знаю. У меня же указан мой личный конфиг. Там всё это прописано.


  1. Alex_GDI
    17.05.2016 17:26

    Ух если ещё грузить из vhd


  1. Camellan
    20.05.2016 17:59

    Спасибо, интересная тема, наигрался вдоволь. Начал с установки refind'a, а закончил модификацией биоса видеокарты. Ну никак refind не хотел отображаться в нормальном разрешении на Asus GT610. Теперь красота )


    1. grozaman
      20.05.2016 18:01

      Да, с NVIDIA бывают проблемы. Мне помогло всего лишь это:
      resolution 1280 1024
      С plymouth вообще отдельная тема, там с проприетарными дровами очень много проблем можно получить.


      1. Camellan
        20.05.2016 22:46

        В моём случае, при указании в конфиге разрешения выше, чем 1024x768, refind вежливо сообщал о невозможности работы в этом режиме и грузился со стандартными настройками. Пришлось воткнуть gop в vbios. Кстати, plymouth у меня отлично работает на проприетарных драйверах.