Uefi что это такое загрузочная флешка uefi установка uefi
Немного про UEFI и Secure Boot
UEFI (Unified Extensible Firmware Interface) — замена устаревшему BIOS. Эта спецификация была придумана Intel для Itanium, тогда она еще называлась EFI (Extensible Firmware Interface), а потом была портирована на x86, x64 и ARM. Она разительно отличается от BIOS как самой процедурой загрузки, так и способами взаимодействия с ОС. Если вы купили компьютер в 2010 году и позже, то, вероятнее всего, у вас UEFI.
Основные отличия UEFI от BIOS:
Как происходит загрузка в UEFI?
С GPT-раздела с идентификатором EF00 и файловой системой FAT32, по умолчанию грузится и запускается файл \efi\boot\boot[название архитектуры].efi, например \efi\boot\bootx64.efi
Т.е. чтобы, например, создать загрузочную флешку с Windows, достаточно просто разметить флешку в GPT, создать на ней FAT32-раздел и просто-напросто скопировать все файлы с ISO-образа. Boot-секторов больше нет, забудьте про них.
Загрузка в UEFI происходит гораздо быстрее, например, загрузка моего лаптопа с ArchLinux с нажатия кнопки питания до полностью работоспособного состояния составляет всего 30 секунд. Насколько я знаю, у Windows 8 тоже очень хорошие оптимизации скорости загрузки в UEFI-режиме.
Secure Boot
«Я слышал, что Microsoft реализовывает Secure Boot в Windows 8. Эта технология не позволяет неавторизированному коду выполняться, например, бутлоадерам, чтобы защитить пользователя от malware. И есть кампания от Free Software Foundation против Secure Boot, и многие люди были против него. Если я куплю компьютер с Windows 8, смогу ли я установить Linux или другую ОС? Или эта технология позволяет запускать только Windows?»
Начнем с того, что эту технологию придумали не в Microsoft, а она входит в спецификацию UEFI 2.2. Включенный Secure Boot не означает, что вы не сможете запустить ОС, отличную от Windows. На самом деле, сертифицированные для запуска Windows 8 компьютеры и лаптопы обязаны иметь возможность отключения Secure Boot и возможность управления ключами, так что беспокоится тут не о чем. Неотключаемый Secure Boot есть только на планшетах на ARM с предустановленной Windows!
Что дает Secure Boot? Он защищает от выполнения неподписанного кода не только на этапе загрузки, но и на этапе выполнения ОС, например, как в Windows, так и в Linux проверяются подписи драйверов/модулей ядра, таким образом, вредоносный код в режиме ядра выполнить будет нельзя. Но это справедливо только, если нет физического доступа к компьютеру, т.к., в большинстве случаев, при физическом доступе ключи можно заменить на свои.
Для Linux есть 2 пре-загрузчика, которые поддерживают Secure Boot: Shim и PRELoader. Они похожи, но есть небольшие нюансы.
В Shim есть 3 типа ключей: Secure Boot keys (те, которые в UEFI), Shim keys (которые можно сгенерировать самому и указать при компиляции), и MOKи (Machine Owner Key, хранятся в NVRAM). Shim не использует механизм загрузки через UEFI, поэтому загрузчик, который не поддерживает Shim и ничего не знает про MOK, не сможет выполнить код (таким образом, загрузчик gummiboot не будет работать). PRELoader, напротив, встраивает свои механизмы аутентификации в UEFI, и никаких проблем нет.
Shim зависит от MOK, т.е. бинарники должны быть изменены (подписаны) перед тем, как их выполнять. PRELoader же «запоминает» правильные бинарники, вы ему сообщаете, доверяете вы им, или нет.
Оба пре-загрузчика есть в скомпилированном виде с валидной подписью от Microsoft, поэтому менять UEFI-ключи не обязательно.
Secure Boot призван защитить от буткитов, от атак типа Evil Maid, и, по моему мнению, делает это эффективно.
Спасибо за внимание!
Что такое UEFI, и чем он отличается от BIOS?
Новые компьютеры используют прошивку UEFI вместо традиционного BIOS. Обе эти программы – примеры ПО низкого уровня, запускающегося при старте компьютера перед тем, как загрузится операционная система. UEFI – более новое решение, он поддерживает жёсткие диски большего объёма, быстрее грузится, более безопасен – и, что очень удобно, обладает графическим интерфейсом и поддерживает мышь.
Некоторые новые компьютеры, поставляемые с UEFI, по-прежнему называют его «BIOS», чтобы не запутать пользователя, привычного к традиционным PC BIOS. Но, даже встретив его упоминание, знайте, что ваш новый компьютер, скорее всего, будет оснащён UEFI, а не BIOS.
Что такое BIOS?
BIOS — это Basic Input-Output system, базовая система ввода-вывода. Это программа низкого уровня, хранящаяся на чипе материнской платы вашего компьютера. BIOS загружается при включении компьютера и отвечает за пробуждение его аппаратных компонентов, убеждается в том, что они правильно работают, а потом запускает программу-загрузчик, запускающую операционную систему Windows или любую другую, установленную у вас.
На экране настройки BIOS вы можете изменять множество параметров. Аппаратная конфигурация компьютера, системное время, порядок загрузки. Этот экран можно вызвать в начале загрузки компьютера по нажатию определённой клавиши – на разных компьютерах она разная, но часто используются клавиши Esc, F2, F10, Delete. Сохраняя настройку, вы сохраняете её в памяти материнской платы. При загрузке компьютера BIOS настроит его так, как указано в сохранённых настройках.
Перед загрузкой операционки BIOS проходит через POST, или Power-On Self Test, самотестирование после включения. Она проверяет корректность настройки аппаратного обеспечения и его работоспособность. Если что-то не так, на экране вы увидите серию сообщений об ошибках или услышите из системного блока загадочный писк. Что именно означают звуковые сигналы описано в инструкции к компьютеру.
При загрузке компьютера по окончанию POST BIOS ищет Master Boot Record, или MBR — главную загрузочную запись. Она хранится на загрузочном устройстве и используется для запуска загрузчика ОС.
Вы также могли видеть аббревиатуру CMOS, что расшифровывается, как Complementary Metal-Oxide-Semiconductor — комплементарная структура металл-оксид-полупроводник. Она относится к памяти, в которой BIOS хранит различные настройки. Использование её устарело, поскольку такой метод уже заменили флэш-памятью (также её называют EEPROM).
Почему BIOS устарел?
BIOS существует уже давно и эволюционировал мало. Даже у компьютеров с ОС MS-DOS, выпущенных в 1980-х, был BIOS.
Конечно, со временем BIOS всё-таки менялся и улучшался. Разрабатывались его расширения, в частности, ACPI, Advanced Configuration and Power Interface (усовершенствованный интерфейс управления конфигурацией и питанием). Это позволяло BIOS проще настраивать устройства и более продвинуто управлять питанием, например, уходить в спящий режим. Но BIOS развился вовсе не так сильно, как другие компьютерные технологии со времён MS-DOS.
У традиционного BIOS до сих пор есть серьёзные ограничения. Он может загружаться только с жёстких дисков объёмом не более 2,1 Тб. Сейчас уже повсеместно встречаются диски на 3 Тб, и с них компьютер с BIOS не загрузится. Это ограничение BIOS MBR.
BIOS должен работать в 16-битном режиме процессора и ему доступен всего 1 Мб памяти. У него проблемы с одновременной инициализацией нескольких устройств, что ведёт к замедлению процесса загрузки, во время которого инициализируются все аппаратные интерфейсы и устройства.
BIOS давно пора было заменить. Intel начала работу над Extensible Firmware Interface (EFI) ещё в 1998 году. Apple выбрала EFI, перейдя на архитектуру Intel на своих Маках в 2006-м, но другие производители не пошли за ней.
В 2007 Intel, AMD, Microsoft и производители PC договорились о новой спецификации Unified Extensible Firmware Interface (UEFI), унифицированный интерфейс расширяемой прошивки. Это индустриальный стандарт, обслуживаемый форумом UEFI и он зависит не только от Intel. Поддержка UEFI в ОС Windows появилась с выходом Windows Vista Service Pack 1 и Windows 7. Большая часть компьютеров, которые вы можете купить сегодня, используют UEFI вместо BIOS.
Как UEFI заменяет и улучшает BIOS
UEFI заменяет традиционный BIOS на PC. На существующем PC никак нельзя поменять BIOS на UEFI. Нужно покупать аппаратное обеспечение, поддерживающее UEFI. Большинство версий UEFI поддерживают эмуляцию BIOS, чтобы вы могли установить и работать с устаревшей ОС, ожидающей наличия BIOS вместо UEFI – так что обратная совместимость у них есть.
Новый стандарт обходит ограничения BIOS. Прошивка UEFI может грузиться с дисков объёмом более 2,2 Тб – теоретический предел для них составляет 9,4 зеттабайт. Это примерно в три раза больше всех данных, содержащихся в сегодняшнем Интернете. UEFI поддерживает такие объёмы из-за использования разбивки на разделы GPT вместо MBR. Также у неё стандартизирован процесс загрузки, и она запускает исполняемые программы EFI вместо кода, расположенного в MBR.
UEFI может работать в 32-битном или 64-битном режимах и её адресное пространство больше, чем у BIOS – а значит, быстрее загрузка. Также это значит, что экраны настройки UEFI можно сделать красивее, чем у BIOS, включить туда графику и поддержку мыши. Но это не обязательно. Многие компьютеры по сию пору работают с UEFI с текстовым режимом, которые выглядят и работают так же, как старые экраны BIOS.
В UEFI встроено множество других функций. Она поддерживает безопасный запуск Secure Boot, в котором можно проверить, что загрузку ОС не изменила никакая вредоносная программа. Она может поддерживать работу по сети, что позволяет проводить удалённую настройку и отладку. В случае с традиционным BIOS для настройки компьютера необходимо было сидеть прямо перед ним.
И это не просто замена BIOS. UEFI – это небольшая операционная система, работающая над прошивкой PC, поэтому она способна на гораздо большее, чем BIOS. Её можно хранить в флэш-памяти на материнской плате или загружать с жёсткого диска или с сети.
У разных компьютеров бывает разный интерфейс и свойства UEFI. Всё зависит от производителя компьютера, но основные возможности одинаковы у всех.
Как получить доступ к настройкам UEFI на современном ПК
Если вы обычный пользователь, перехода на компьютер с UEFI вы и не заметите. Загружаться и выключаться компьютер будет быстрее, а также вам будут доступны диски размером более 2,2 Тб.
А вот процедура доступа к настройкам будет немного отличаться. Для доступа к экрану настроек UEFI вам может потребоваться загрузочное меню Windows. Производители ПК не хотели замедлять быструю загрузку компьютера ожиданием нажатия клавиши. Но нам встречались и такие UEFI, в которых производители оставили возможность входа в настройки тем же способом, какой был в BIOS – по нажатию клавиши во время загрузки.
UEFI – это большое обновление, но произошло оно незаметно. Большинство пользователей ПК не заметят его, и им не нужно беспокоиться по поводу того, что их новый компьютер использует UEFI вместо обычного BIOS. ПК просто будут лучше работать и поддерживать больше современного аппаратного обеспечения и возможностей.
Более подробное объяснение отличий в загрузочном процессе UEFI можно почитать в статье Адама Уильямсона из Red Hat, и в официальном вопроснике UEFI FAQ.
Блог Евгения Крыжановского
Я научу вас ремонтировать свой компьютер!
Uefi – что это такое? Загрузочная флэшка Uefi. Установка Uefi.
Многие современные производители компонентов для персональных компьютеров и программ стараются обеспечить поддержку своими продуктами интерфейса UEFI. Это программное решение должно стать прекрасной альтернативой уже успевшей стать привычной системе BIOS.
В чем же заключается специфика рассматриваемого программного обеспечения? Какие варианты его использования возможны? И что представляет собой UEFI? Попробуем разобраться в этом вопросе.
Что такое UEFI?
Под UEFI понимается особый интерфейс, который устанавливается между инсталлированной на компьютере операционной системой и программным обеспечением, обеспечивающим функционирование различных аппаратных компонентов компьютера. Некоторые именуют этот интерфейс BIOS Uefi. С одно стороны, даже в этом названии заключена ошибка. Ведь BIOS функционирует совершенно по другим принципам. UEFI является разработкой компании Intel, а BIOS представляет собой программное обеспечение, поддерживаемое различными брендами. Назначение BIOS и UEFI в принципе одно и тоже. Но формально сочетание BIOS UEFI является некорректным, но в то же время оно не противоречит логике программно-аппаратных алгоритмов управления ПК.
Отличия UEFI от BIOS
Прежде всего следует уделить внимание главному – отличиям между классическим UEFI и чистым BIOS. UEFI сегодня позиционируется как программное решение, являющееся неплохой альтернативой BIOS. Многие производители материнских плат для ПК пытаются обеспечить своим устройствам поддержку программного обеспечения, разработанного Intel. Отличия UEFI от BIOS можно легко обнаружить, рассмотрев минусы второй системы. Первый минус заключается в том, что BIOS не дает возможности обеспечить полноценное использование дискового пространства на больших жестких дисках, объем которых превышает 2 Тб.
Это связано с тем, что всего несколько лет назад такие объемы жестких дисков казались недостижимыми. Поэтому производители ПК не обращали особое внимание на соответствующий недостаток системы BIOS. Сегодня жесткий диск объемом от 2 Терабайт и более уже никого не удивит. Производители персональных компьютеров уже почувствовали необходимость перехода на UEFI. Учитывая современные технологические тренды, эту необходимость нельзя назвать необъективной.
Другая особенность BIOS заключается в поддержке ограниченного количества разделов на жестком диске. UEFI же имеет возможность работать со 128 разделами. В структуре новой разработки Intel создана таблица разделов GPT, с помощью которой можно задействовать все технологические преимущества UEFI. Несмотря на все рассмотренные отличия новой среды и традиционной системы BIOS, основные функции их совпадают. Фактических различий между этими системами, на самом деле, не так уж много. Исключение составляет разве что алгоритм обеспечения безопасности, реализованный в UEFI. Специалисты считают, что новая платформа дает возможность быстрее загружать операционные системы. Другие считают, что это актуально только для операционной системы Windows 8.
Рассмотрим более детально систему безопасности, использованную в UEFI.
Технология безопасности среды UEFI
Системы UEFI опережают BIOS с точки зрения безопасности. Сегодня существуют уникальные вирусы, которые обладают способностью внедрятся в саму микросхему, в которой прописаны алгоритмы BIOS. В результате становится возможной загрузка операционной системы с расширенными правами пользователя. Это открывает широкие возможности для несанкционированного доступа. В новом программном решении от Intel также реализован режим безопасной загрузки, который предусматривает алгоритм под названием Secure Boot.
Данный алгоритм основан на использовании ключей особого типа, которые сертифицированы самыми крупными брендами IT-индустрии. На самом деле сегодня не так много таких компаний. Если говорить о поддержке соответствующей опции производителями ОС, то на сегодняшний день ее обеспечивает только Microsoft в Windows 8. Также совместимость с данным алгоритмом безопасности на сегодняшний день реализована в некоторых версиях Linux.
Преимущества системы UEFI
Все перечисленные выше недостатки BIOS систем можно причислить и к достоинствам UEFI. Но есть у новой системы целый ряд важнейших преимуществ. Рассмотрим их подробнее. Во-первых, система обладает простым и интуитивно понятным интерфейсом. В UEFI реализована функция поддержки мыши, что для BIOS не свойственно. Кроме того, многие версии UEFI поддерживают русифицированный интерфейс. Алгоритмы, используемые в новом программном решении, дают возможность осуществлять загрузку ОС намного быстрее, чем при использовании BIOS. Так, например, операционная система Windows 8 на ПК с UEFI при адекватной производительности CPU и других ключевых компонентов загружается в течении 10 секунд.
К другим значимым преимуществам UEFI можно также отнести более простой и удобный, по сравнению с BIOS, механизм обновления. Еще одна полезная опция, реализованная в UEFI – это наличие собственного менеджера загрузки. Его можно задействовать в том случае, если на персональном компьютере установлено несколько операционных систем.
Теперь технологические преимущества программного интерфейса UEFI ясны. Сегодня наиболее популярные производители аппаратных компонентов для персональных компьютеров стараются обеспечить совместимость «железа» с системой UEFI. Как полагают эксперты в сфере IT, переход на новую систему может привести к новому технологическому тренду. Для ведущих производителей программного обеспечения и аппаратных компонентов возможности, предлагаемые разработчиком UEFI компанией Intel кажутся весьма привлекательными. Кроме того, технологические опции UEFI сегодня полностью поддерживаются крупнейшим брендом на рынке ОС.
Secure Boot
Проведем более детальное рассмотрением преимуществ Secure Boot – технологии безопасности, поддерживаемой системой UEFI. В чем заключается основная концепция?
Secure Boot представляет собой протокол безопасной загрузки, предназначением которого является защита системы от проникновения вредоносных программ и вирусов. Ключи, используемые в этой технологии, для полноценного задействования должны быть сертифицированы. Сегодня этому критерию удовлетворяет лишь малая часть всех брендов, выпускающих ПО.
К ним относится компания Microsoft, которая и реализовала поддержку таких алгоритмов в операционной системе Windows 8. В ряде случаев это обстоятельство может значительно осложнить процесс инсталляции иных операционных систем на персональных компьютерах, работающих под управлением системы UEFI. В случае переустановки Windows, UEFI возможно еще будет проявлять некую лояльность, но только в том случае, если версия устанавливаемой операционной системы максимально приближена к инсталлированной производителем.
Следует также отметить, что с функцией Secure Boot совместимы и некоторые дистрибутивы Linux. Даже в том случае, если загрузка новой операционной системы будет запрещена, в структуре UEFI прописана возможность отключения алгоритма Secure Boot. Конечно, в этом случае загрузку операционной системы уже нельзя будет считать безопасной. Но тем не менее соответствующую опцию можно активировать в любой момент.
Операционные системы, совместимые с UEFI
В редких случаях возможна установка альтернативных операционных систем с поддержкой Secure Boot. Так, например, теоретически можно установить операционную систему Windows 7 на ноутбук с поддержкой UEFI BIOS. В общем же случае вероятность удачной установки альтернативных операционных систем невысока. Как уже было отмечено выше, некоторые дистрибутивы Linux совместимы с UEFI.
Особенности настройки
Далее рассмотрим нюансы настройки нового программного решения. К интересным опциям можно отнести эмуляцию BIOS. Для чего это нужно? В некоторых версиях UEFI реализованы алгоритмы, обеспечивающие управление ПК в соответствии с механизмами, которые задействовал исторический предшественник UEFI. Данный режим в зависимости от используемого ПК может именоваться по-разному. Как правило, он называется Launch CSM или Legacy. С установкой UEFI в стандартном режиме загрузки не должно возникнуть никаких сложностей.
Особенности доступа к UEFI
Еще один примечательный факт, который нельзя оставить без внимания – это огромное количество версий UEFI. В персональных компьютерах, выпущенных разными брендами, они могут существенно отличаться. Уровень доступности отдельных функций на разных компьютерах также может отличаться. Например, часто бывает так, что при загрузке ПК не выводится меню, с помощью которого пользователь может попасть в настройки UEFI. В этом случае в Windows предусмотрена возможность загрузки необходимых опций. Во вкладке «Параметры» необходимо активизировать «Особые варианты загрузки». После этого необходимо перезагрузить компьютер. На экране появятся варианты загрузки.
Существует также альтернативный способ для обеспечения доступа к опциям UEFI. Он работает на многих персональных компьютерах. В самом начале загрузки необходимо нажать Esc. После этого откроется меню, о котором шла речь выше.
Особенности работы в разных режимах
Обратите внимание, при изменении режима работы UEFI с обычного на Legacy желательно при первой же возможности вновь включать интерфейс UEFI со всеми опциями. Иначе операционная система может не запуститься. На многих персональных компьютерах подобной проблемы не возникает. Это связано с тем, что производители внедряют в структуру управления особые алгоритмы, которые позволяют автоматически активировать режим UEFI. На некоторых моделях реализован гибридный режим, при помощи которого запускается модуляция BIOS. Отличия в версиях UEFI предполагают также невозможность отключения Secure Boot в режиме штатной работы.
Загрузочные флэшки UEFI
В некоторых ситуациях может возникнуть необходимость загрузить операционную систему с флэшки. Главная трудность здесь состоит в том, что флэшки, формат которых отличен от FAT32, не распознаются. У этой проблемы есть решение. Все загрузочные флэшки Windows по умолчанию форматируются в файловой системе NTFS. UEFI эту файловую систему не распознает. Поэтому основная задача состоит в том, чтобы обеспечить соответствующему аппаратному компоненту форматирование в системе FAT32. Многие IT –специалисты считают эту файловую систему устаревшей. Однако актуальность соответствующего стандарта можно оценить по его применению в UEFI.
Флэшка для загрузки в UEFI
Что необходимо сделать, чтобы загрузочная флэшка без проблем распознавалась UEFI? Во-первых, желательно, чтобы емкость носителя составляла не менее 4 Гб. Во-вторых, необходимо удалить с флэшки всю информацию. Необходимым компонентом для создания загрузочной флэшки является дистрибутив операционной системы Windows.
Подготовка флэшки
Если все вышеперечисленные элементы присутствуют, можно приступать. Флэшку необходимо вставить в USB-порт компьютера. После этого в интерфейсе Windows открываем командную строку. Пользователь должен обладать правами администратора. Далее через командную строку запускаем программу DISKPART. Затем необходимо ввести команду list disk.
Отобразиться список дисков, присутствующих в вашей системе. Найдите в нем свою флэшку. Выберете диск командой select disc x, где x – порядковый номер. Чтобы отформатировать выбранный носитель, достаточно выполнить команду Clean. Далее на диске необходимо сделать первичный раздел. Сделать это можно при помощи команды create partition primary. Путем ввода команды active данный раздел необходимо сделать активным. После этого перечень разделов можно вывести на экран путем ввода команды list volume.
Выбираем нужный нам раздел командой select volume x, где x – порядковый номер раздела. Чтобы отформатировать его в системе FAT32, вводим команду format fs=fat 32. Теперь флэшке нужно назначить букву. Делается это при помощи команды assign. После этого можно выйти из командной строки.
Запись дистрибутива
После проведения всех выше описанных действий можно скопировать на флэшку дистрибутив Windows.
Запись опубликована 18.06.2015 автором katrinas11 в рубрике Программы. Отблагодари меня, поделись ссылкой с друзьями в социальных сетях:
Настройка UEFI-загрузчика. Самое краткое руководство в мире
Как устроена загрузка современных ОС? Как при установке системы настроить загрузку посредством UEFI, не утонув в руководствах и ничего не сломав?
Я обещал «самое краткое руководство». Вот оно:
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-скриптов, которые до сих пор валяются у меня в корневой ФС:
Не надо использовать GRUB
Это чёртов мастодонт, 90% функциональности которого предназначено для дисков с MBR. Для настройки необходимо отредактировать ряд файлов, после чего выполнить команду генерации конфига. На выходе получается огромная малопонятная нормальному человеку простыня. В составе — гора исполняемых файлов. Ставится командой, которую просто так из головы не возьмешь — надо обязательно лезть в документацию
Для сравнения — самый простенький UEFI-bootloader, который есть в составе пакета systemd, ставится командой
Эта команда делает ровно две вещи: копирует исполняемый файл загрузчика на 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» с тремя строчками (привожу свои):
Параметр editor отвечает за возможность отредактировать пункт загрузочного меню перед запуском.
Рядом с loader.conf необходимо создать каталог entries — один файл в нём будет отвечать за одну загрузочную запись в boot-меню. У меня там один файл arch.conf с таким содержанием:
Я не упомянул, но довольно очевидно — ядро и initramfs должны лежать в одной файловой системе с загрузчиком, то есть на EFI-разделе. Пути к ним в конфигах отсчитываются от корня этой ФС.
Другие загрузчики
systemd-boot очень простой и предоставляет спартанского вида чёрно-белое меню. Есть варианты красивей, если душа просит красоты.
rEFind — очень красивый загрузчик. Скачать можно тут в виде deb-пакета. Использую на своём ноуте. Умеет создавать загрузочное меню автоматически, без конфига — просто сканируя файлы.
Clover. Позволяет выставлять нативное разрешение экрана, имеет поддержку мыши на экране загрузки, разные темы оформления. Дефолтная тема ужасна, конфиг в виде xml нечитаем, настроить не смог.
Различные неочевидные последствия
Вы можете легко попробовать эту схему в работе. Берёте USB-флешку, форматируете в таблицу разделов GPT, создаете FAT-раздел и копируете туда загрузчик. Комп сможет с неё стартовать.
Если просто скопировать на такую флешку boot-раздел установленного linux — система будет спокойно загружаться с флешки, не видя разницы.