Я обещал "самое краткое руководство". Вот оно:

  1. Создаём на диске таблицу разделов GPT
  2. Создаём FAT32-раздел на пару сотен мегабайт
  3. Скачиваем из интернета любой UEFI-загрузчик
    (нам нужен сам загрузчик, это один бинарный файл!)
  4. Переименовываем и кладем этот файл на созданный раздел по адресу /EFI/Boot/bootx64.efi
  5. Создаём текстовый конфиг, кладем его там, где загрузчик ожидает его увидеть
    (настройка и местоположение конфига зависят от конкретной реализации загрузчика, эта информация доступна в интернете)
  6. После перезагрузки видим меню загрузчика
    (Если на диске установлена Windows 8 или 10 - с большой вероятностью это руководство сокращается до пунктов 3 - 5.)

TL;DR не надо прописывать путь к загрузчику в новых загрузочных записях UEFI - надо файл загрузчика расположить по стандартному "пути по-умолчанию", где UEFI его найдет, и вместо загрузочного меню UEFI пользоваться меню загрузчика, которое гораздо проще и безопаснее настраивается

Как делать не надо

Есть, на самом-то деле, несколько способов настроить UEFI-загрузку. Я начну с описания других вариантов - чтобы было понятно, как (и почему) делать не надо . Если вы пришли за руководством - мотайте в самый низ.

Не надо лезть в NVRAM и трогать efivars

Наиболее "популярная" процедура установки загрузчика в систему такова: установщик ОС создаёт специальный раздел, на нём - структуру каталогов и размещает файлы загрузчика. После этого он с помощью особой утилиты (efibootmgr в linux, bcdedit в windows) взаимодействует с прошивкой UEFI-чипа, добавляя в неё загрузочную запись. В этой записи указывается путь к файлу загрузчика (начиная от корня файловой системы) и при необходимости - параметры. После этого в загрузочном меню компьютера появляется опция загрузки ОС. Для linux существует возможность вообще обойтись без загрузчика. В загрузочной записи указывается путь сразу к ядру вместе со всеми параметрами. Ядро должно быть скомпилировано с опцией EFISTUB (что давно является стандартом для большинства дистрибутивов), в этом случае оно содержит в себе заголовок "исполняемого файла EFI", позволяющий прошивке его запускать без внешнего загрузчика.


При старте системы, когда пользователь выбирает нужную ему загрузочную запись, прошивка UEFI сперва ищет на прописанном в этой записи диске особый EFI-раздел, обращается к файловой системе на этом разделе (обязательно FAT или FAT32), и запускает загрузчик. Загрузчик считывает из файла настроек свой конфиг, и либо грузит ОС, либо предоставляет загрузочное меню. Ничего не замечаете? Да, у нас два загрузочных меню - одно на уровне прошивки чипа UEFI, другое - на уровне загрузчика. В реальности о существовании второго пользователи могут даже не догадываться - если в меню всего один пункт, загрузчик Windows начинает его грузить без лишних вопросов. Увидеть экран с этим меню можно, если поставить вторую копию Windows или просто криво её переустановить.


Обычно для управления загрузочными записями руководства в интернете предлагают взаимодействовать с прошивкой UEFI. Есть аж пять основных вариантов, как это можно сделать: efibootmgr под linux, bcdedit в windows, какая-то софтина на "Маках", команда bcfg утилиты uefi shell (запускается из-под UEFI, "на голом железе" и без ОС, поскольку скомпилирована в том самом особом формате) и для особо качественных прошивок - графическими средствами UEFI (говоря популярным языком, "в настройках BIOS").


За всеми вышенаписанными "многобуков" вы могли легко упустить такую мысль: пользователь, чтобы изменить настройки программной части (например, добавить параметр запуска ОС), вынужден перезаписывать flash-память микросхемы на плате. Есть ли тут подводные камни? О да! Windows иногда способна сделать из ноутбука кирпич , linux тоже , причём разными способами . Качество прошивок часто оставляет желать лучшего - стандарты UEFI либо реализованы криво, либо не реализованы вообще. По логике, прошивка обязана переживать полное удаление всех переменных efivars без последствий, не хранить в них критичных для себя данных и самостоятельно восстанавливать значения по-умолчанию - просто потому что пользователь имеет к ним доступ, и вероятность их полного удаления далека от нуля. Я лично в процессе экспериментов неоднократно (к счастью, обратимо) "кирпичил" свой Lenovo - из загрузочного меню исчезали все пункты, включая опцию "зайти в настройки".


Работа с загрузочными записями UEFI - тоже не сахар. К примеру, утилита efibootmgr не имеет опции "редактировать существующую запись". Если ты хочешь немного изменить параметр ядра - ты удаляешь запись целиком и добавляешь её снова, уже измененную. При этом строка содержит в себе двойные и одинарные кавычки, а также прямые и обратные слеши в не особо очевидном порядке. Когда я наконец заставил эту магию работать - я сохранил её в виде bash-скриптов, которые до сих пор валяются у меня в корневой ФС:


efibootmgr -c -L "Archlinux (debug)" -l "\EFI\archlinux\vmlinuz-linux" -u "root=/dev/mapper/vg1-lvroot rw initrd=\EFI\archlinux\initramfs-linux.img systemd.log_level=debug systemd.log_target=kmsg log_buf_len=1M enforcing=0"

Не надо использовать GRUB

Это чёртов мастодонт, 90% функциональности которого предназначено для дисков с MBR. Для настройки необходимо отредактировать ряд файлов, после чего выполнить команду генерации конфига. На выходе получается огромная малопонятная нормальному человеку простыня. В составе - гора исполняемых файлов. Ставится командой, которую просто так из головы не возьмешь - надо обязательно лезть в документацию


grub-install --target=x86_64-efi --efi-directory=esp_mount --bootloader-id=grub

Для сравнения - самый простенький UEFI-bootloader, который есть в составе пакета systemd, ставится командой


bootctl install --path=/boot

Эта команда делает ровно две вещи: копирует исполняемый файл загрузчика на EFI-раздел и добавляет свою загрузочную запись в прошивку. А конфиг для неё занимает ровно СЕМЬ строчек.

"Самое краткое руководство" - чуть более подробно

Загрузочное меню надо реализовывать на уровне загрузчика - править текстовые конфиги гораздо проще и безопасней.


Загрузочная запись нам не нужна - дело в том, что при выставлении в настройках BIOS загрузки с диска прошивка UEFI сначала ищет на нём EFI-раздел, а затем пытается исполнить файл по строго фиксированному адресу на этом разделе: /EFI/Boot/BOOTX64.EFI


Что такое "EFI-раздел"? В теории, он должен иметь особый тип "EFI System" (ef00). На практике, годится первый раздел на GPT-диске, отформатированный в FAT32 и имеющий достаточно места , чтобы разместить загрузчик и вспомогательные файлы (если есть).


Пункт 3: "Скачиваем из интернета любой UEFI-загрузчик" . Что это значит? Загрузчик - это просто исполняемый файл определенного формата, к которому в комплекте идет конфиг. К примеру, если у вас есть под рукой установленный пакет с systemd - файл загрузчика можно найти по адресу /usr/lib/systemd/boot/efi/systemd-bootx64.efi, переименовать его в bootx64.efi и скопировать в /EFI/Boot/ на EFI-разделе. Нет под рукой systemd? Скачайте архив с сайта Archlinux. Или с репозитария Ubuntu. Или Debian. Есть под рукой система с Windows? Возьмите виндовый загрузчик оттуда, тоже сгодится)) Если сумеете настроить, я честно говоря не пробовал.


Пункт 4: "Настроить конфиг" . Как и обычная программа, когда загрузчик запускается - он ожидает найти по определенным путям файлы конфигурации. Обычно эту информацию легко найти в интернете. Для загрузчика systemd-boot нам необходимо в корне EFI-раздела создать каталог "loader", а в нём файл "loader.conf" с тремя строчками (привожу свои):


default archlinux timeout 10 editor 1

Параметр editor отвечает за возможность отредактировать пункт загрузочного меню перед запуском.


Рядом с loader.conf необходимо создать каталог entries - один файл в нём будет отвечать за одну загрузочную запись в boot-меню. У меня там один файл arch.conf с таким содержанием:


title Arch Linux linux /efi/archlinux/vmlinuz-linux initrd /efi/archlinux/initramfs-linux.img options root=/dev/mapper/vg1-lvroot rw initrd=\EFI\archlinux\intel-ucode.img

Я не упомянул, но довольно очевидно - ядро и initramfs должны лежать в одной файловой системе с загрузчиком, то есть на EFI-разделе. Пути к ним в конфигах отсчитываются от корня этой ФС.

Другие загрузчики

systemd-boot очень простой и предоставляет спартанского вида чёрно-белое меню. Есть варианты красивей, если душа просит красоты.


rEFind - очень красивый загрузчик. можно тут в виде deb-пакета. Использую на своём ноуте. Умеет создавать загрузочное меню автоматически, без конфига - просто сканируя файлы.


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

Различные неочевидные последствия

Вы можете легко попробовать эту схему в работе. Берёте USB-флешку, форматируете в таблицу разделов GPT, создаете FAT-раздел и копируете туда загрузчик. Комп сможет с неё стартовать.


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

Как только мы включаем компьютер, в нем немедленно начинает работать миниатюрная операционная система, которую мы знаем как BIOS. Она занимается тестированием устройств, памяти, загрузкой операционных систем, распределением ресурсов аппаратуры. Многие функции этого набора программ (их объем обычно около 256-512 Кб) позволяют поддерживать старые операционные системы вроде MS-DOS, предоставляя им множество возможностей. Со времен PC/AT-8086 BIOS менялся очень мало, а ко времени запуска первых Пентиумов его развитие почти остановилось. Собственно, менять в нем стало нечего, кроме двойного BIOS, поддержки сетевых средств и возможности перепрошивки. А вот минусов стало много: стартовый вход в реальный режим процессора, 16-разрядная адресация и 1 Мб доступной памяти, невозможность иметь «ремонтную» консоль. И, конечно, вечная проблема поддержки жестких дисков. Даже сейчас гарантированно поддерживаются диски до 2,2 Тб, не более.

Компания Intel еще в 2005 года решила поменять BIOS на EFI/UEFI (Unified Extensible Firmware Interface). Система EFI - более продвинутая базовая операционная система. На некоторых платформах Unix и Windows UEFI уже давно работает, но массового перехода пока не свершилось, несмотря на благие намерения. А они таковы:

  • Наличие пресловутой консоли для ремонта системных параметров и установки ОС;
  • Раздел EFI даёт возможность совершать некоторые действия, не загружая ОС (просмотр фильмов, запуск музыки);
  • Вход в Интернет и, следовательно, наличие установленных драйверов сети, стека TCP/IP и т.д.);
  • Присутствие графического режима и пользовательских скриптов;
  • Поддержка гигантских по объему дисков;
  • Хранение UEFI на разделах нового формата (GPT);
  • Полная поддержка всей аппаратуры с момента старта.

UEFI может использовать универсальную исполняющую машину вроде JVM для использования аппаратно-независимого кода, а это открывает огромные горизонты для создания «загрузочного» ПО.

Существует и критика этой технологии. В частности, внедрение ее может привести к отсечению от рынка операционных систем новых игроков: для этого всегда найдется в коде какая-нибудь технологическая лазейка. Как, например, невозможность загружать ОС Windows 98 из современных BIOS. Но, что хуже, придется забыть о миллионах программ MS-DOS и других систем, которые опирались в своей работе на функции BIOS. Возможно, они еще будут эмулироваться, но в этом есть сомнения. А среди них наверняка есть и важные программы, которые некому будет переписывать. Впрочем, все это решаемые вопросы – хотя бы за счет виртуальных операционных систем. Но вот то, что появятся новые виды вирусов – это точно, и мы сможем увидеть это довольно скоро.

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

Но вот тонкая настройка BIOS/UEFI многим рядовым пользователям может показаться несколько сложной, поэтому стоит рассмотреть некоторые важные моменты, связанные с установкой требуемых опций. Абсолютно все параметры, которые можно найти в первичных системах, рассматривать не будем (да это и не нужно), а остановимся только на наиболее важных моментах, знание и понимание которых позволит оптимизировать пользовательский компьютер или ноутбук в наиболее полной мере.

Что такое BIOS и UEFI?

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

BIOS представляет собой специальный чип, вмонтированный в материнскую плату и оснащенный собственной программной средой (прошивкой), выполненной в виде текстового DOS-подобного интерфейса, управление которым осуществляется исключительно с компьютерной клавиатуры. Для передвижения по разделам и пунктам меню используются клавиши со стрелками, для входа в нужные опции или выбора какого-то значения параметра - клавиша ввода, для некоторых других операций - функциональные клавиши или клавиши с литерами, что чаще всего применяется для выхода из BIOS с подтверждением сохранения установленных опций (F10 + Y).

Напротив, является своеобразной операционной системой с графическим интерфейсом, в которой можно осуществить более тонкую настройку нужных пользователю опций. Многие такие системы русифицированы, а управление в них производится даже при помощи компьютерной мыши. Но в плане именно настраиваемых параметров UEFI выгодно отличается тем, что настройка здесь выглядит более утонченной, не говоря уже о том, что именно в UEFI добавлено несколько важных параметров, которые отсутствуют в BIOS. В частности, это касается обеспечения защиты от вредоносных программ, которые теоретически могли бы стартовать при включении компьютера.

Вход в первичную систему

Чтобы выполнить настройку BIOS/UEFI, в первичную систему сначала нужно войти. Но как? Всем известно, что на стационарных ПК для выполнения таких действий чаще всего используется клавиша Del.

А вот на ноутбуках в последнее время сами производители устанавливают использование других клавиш или сочетаний на основе функциональных клавиш в комбинации, например, кнопкой Fn или Esc. На некоторых моделях можно встретить даже специальные кнопки на клавиатурной панели (как на лэптопах Sony VAIO) или дополнительно вызываемые загрузочные меню.

Базовые параметры и внешний вид BIOS/UEFI

Теперь перейдем непосредственно к настройке BIOS/UEFI. Как правило, выставленные по умолчанию опции обычно изменять не рекомендуется, но перенастроить их по своему усмотрению можно достаточно просто.

Что же касается основных разделов и представленных в них параметров, UEFI от BIOS отличается не очень сильно. Правда, у некоторых разработчиков можно встретить размещение основных разделов не по горизонтали, а по вертикали.

Как настроить БИОС/UEFI для оптимизации работы процессора и ОЗУ

Что же касается самых важных параметров, то, первым делом, необходимо обратить внимание на оптимизацию работы процессора и оперативной памяти. Как и что изменять в BIOS/UEFI. В Windows 7 настройка некоторых опций тоже не повредит.

Для начала установите какую-нибудь информативную утилиту вроде CPU-Z или Prime95, после чего посмотрите на реальную тактовую частоту ЦП. Вполне возможно, если сравнить ее с номиналом, указанным в технической документации самим производителем, расхождение будет очень существенным. Повысить частоту непосредственно в операционной системе возможно не всегда, поскольку ограничение на такие действия как раз и установлено в первичной системе. В качестве примера рассмотрим, как настроить BIOS/UEFI на материнках ASUS.

После входа в первичную систему найдите там раздел Extreme Tweaker (в системах от других разработчиков это может быть что-то вроде параметров тактовой частоты). Обычно для этой опции установлено автоматическое определение значения (Auto). Однако при этом максимальное значение не используется никогда. Таким образом, можете просто выставить повышенную частоту, сохранить параметры, и проверить быстродействие компьютера после перезагрузки.

Однако увлекаться не стоит. Лучшие всего сразу же запустить вышеуказанные утилиты и проверить порог повышения температуры процессора до критической точки. Если она превышена, лучше выставить значение поменьше или отказаться от разгона вообще. То же самое касается и ОЗУ.

Параметры контроллера жесткого диска в BIOS/UEFI: как установить Windows 7 и выше?

Одним из важнейших параметров является настройка режима работы контроллера жесткого диска SATA. К сожалению, по умолчанию эта опция выставлена корректно. Поскольку первичная система UEFI рассчитана на работы в связке с 64-битными операционными системами и разделами жесткого диска со стилем GPT, при установке той же Windows 7 или систем рангом выше часто выдаются сообщения об ошибках.

Для корректной инсталляции системы в разделе Advanced необходимо найти параметры контроллера SATA и вместо IDE выставить использование режима AHCI.

Особенности режима Secure Boot

Эта опция появилась в первичных системах относительно недавно. Основное ее предназначение состоит в блокировании всех сторонних процессов с целью повышения уровня безопасности. Из-за этого бывает невозможно даже загрузиться со съемного носителя.

Для деактивации безопасной загрузки необходимо использовать либо раздел Security, который может быть представлен в главном меню (Main), либо найти пункт вроде Launch CSM. В первом случае для параметра Secure Boot устанавливается значение Disabled или Off. Во втором - активируется режим Launch CSM (Enabled).

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

Настройка старта со съемных носителей и требования, предъявляемые к флешкам

Еще один важный параметр - настройка порядка осуществления загрузки. По всей видимости, многие помнят, что в BIOS это были опции вроде Boot Sequence или Boot Device Priority, в которых нужный носитель устанавливался первым в очереди (1 st Boot Device).

Настройка BIOS/UEFI в этом плане особо не отличается, а основной раздел обычно называется просто Boot или Boot Order. Однако если на той же флешке имеется два дистрибутива (для 32- и 64-битных модификаций одной и той же системы), то среди загрузочных устройств может быть показано два носителя, один из которых помечен префиксом EFI.

Как как уже понятно, дает подсказку по выбору загрузочного девайса. В случае с 32-битной системой выбирается накопитель, имеющий обычное название, а для 64-битных ОС используется носитель, помеченный вышеуказанным префиксом. Но современные первичные системы последних поколений обычно распознают нужное устройство самостоятельно, так что пользователю об этом можно особо не беспокоиться.

А вот о правильном создании загрузочной флешки с нужным дистрибутивом лучше позаботиться заранее. Чтобы не заниматься установкой нужных опций при записи на носитель образа будущей ОС, рекомендуется применять автоматизированные приложения вроде Rufus. В этой программе достаточно просто выбрать нужный файл образа и подключенный носитель, после чего необходимые параметры (в том числе и касающиеся файловой системы, используемой при форматировании) будут установлены автоматически. Пользователю нужно обратить внимание только на объем флешки (для Windows 7 емкость должна составлять порядка 4 Гб, для систем рангом выше - минимум 8 Гб).

Примечание! Имейте в виду, что в случае установки Windows из-под UEFI, файловая система на флешке должна быть FAT32 (с NTFS UEFI не работает вообще).

Нюансы включения компонентов оборудования

Наконец, кратко остановимся на активации установленного на компьютере оборудования. Бывало у вас такое, что какой-то компонент не работал, а при просмотре информации в «Диспетчере задач» отображалось уведомление о том, что устройство отключено, но включить его через ПКМ было просто невозможно?

Причина банально проста! Оборудование отключено именно в первичной системе. Для его задействования придется войти в настройки первичной системы, затем в интерфейсе UEFI найти раздел оборудования (он может быть представлен в расширенных настройках Advanced или в виде подменю Onboard Devices), найти там отключенный компонент и активировать его, используя установку параметра Enabled или On (чаще всего такие действия применяются к включению USB-портов, встроенных в ноутбуки камер, для смены звуковых карт, если их установлено несколько, и т. д.).

Сброс параметров, обновление и перепрошивка BIOS/UEFI

Напоследок рассмотрим вопросы, связанные с обновлением прошивки первичных систем BIOS/UEFI и сбросом параметров до заводских. Сброс выполняется практически точно так же, как и в BIOS (для этого используются аналогичные разделы вроде Load Setup Defaults). А вот установка новой прошивки именно в UEFI, если сравнивать такие действия с аналогичными процедурами в BIOS, производится вообще элементарно.

Это в BIOS нужно было искать раздел обновления, записывать прошивку на флешку, затем производить еще массу операций по выбору нужного ПО и т. д. Обновить программную среду UEFI можно прямо из-под Windows. После загрузки файла прошивки его нужно просто запустить от имени администратора, а все остальные операции будут выполнены при перезагрузке компьютерного устройства без участия пользователя. Но скачивать нужно точно соответствующую вашей модификации прошивку, иначе можно добиться только того, что вся компьютерная система перестанет работать.

Для поиска проще всего обратиться непосредственно к официальному сайту производителя материнской платы или определенной модели ноутбука. Определить маркировку материнки и текущую версию прошивки BIOS/UEFI можно либо через сведения о системе, либо через командную строку, либо через диалог DirectX, либо при помощи специальных информативных утилит вроде Speecy, AIDA64, SSU и им подобных. Некоторые разработчики добавляют в UEFI собственные фирменные утилиты, позволяющие произвести апгрейд непосредственно в первичной системе.

UEFI Secure Boot - это стандартная защита на BIOS, которая ограничивает возможности по запуску USB-носителей в качестве загрузочного диска. Данный защитный протокол можно встретить на компьютерах с Windows 8 и новее. Его суть заключается в том, чтобы не дать пользователю загрузиться с установщика Windows 7 и ниже (или операционной системой из другого семейства).

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

Обычным же пользователям ПК эта возможность ни к чему, наоборот, в некоторых случаях она может даже мешать, например, если вы хотите установить Linux совместно с Windows. Также из-за неполадок с настройками UEFI во время работы в операционной системе может вылазить сообщение об ошибке.

Чтобы узнать, включена ли у вас данная защита, необязательно переходить в BIOS и искать информацию по этому поводу, достаточно сделать несколько простых шагов, не выходя из Windows:


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

Способ 1: Для ASUS


Способ 2: Для HP


Способ 3: Для Toshiba и Lenovo

Здесь, после входа в BIOS, вам нужно выбрать раздел «Security» . Там должен быть параметр «Secure Boot» , напротив которого нужно установить значение «Disable» .

Способ 4: Для Acer

Если с предыдущими производителями всё было относительно просто, то тут изначально нужный параметр будет недоступен для внесения изменений. Чтобы разблокировать его, понадобится поставить пароль на BIOS. Сделать это можно по следующей инструкции: