Efi driver что это
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 проверяются подписи драйверов/модулей ядра, таким образом, вредоносный код в режиме ядра выполнить будет нельзя. Но это справедливо только, если нет физического доступа к компьютеру, т.к., в большинстве случаев, при физическом доступе ключи можно заменить на свои.
В Secure Boot есть 2 режима: Setup и User. Первый режим служит для настройки, из него вы можете заменить PK (Platform Key, по умолчанию стоит от OEM), KEK (Key Exchange Keys), db (база разрешенных ключей) и dbx (база отозванных ключей). KEK может и не быть, и все может быть подписано PK, но так никто не делает, вроде как. PK — это главный ключ, которым подписан KEK, в свою очередь ключами из KEK (их может быть несколько) подписываются db и dbx. Чтобы можно было запустить какой-то подписанный .efi-файл из-под User-режима, он должен быть подписан ключом, который в db, и не в dbx.
Для 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, и, по моему мнению, делает это эффективно.
Спасибо за внимание!
Вы когда-нибудь копались в своем компьютере и находили разделы или дисковые тома , о существовании которых вы не знали? Или вы заметили, что установка Windows состоит из двух разделов; большой и меньший? Маленький - 100 МБ или 600 МБ. Что это? Тебе это нужно? Что ж, это раздел EFI, и короткий ответ - да, он вам нужен.
Что такое раздел EFI в Windows 10?
Мы говорим Windows 10 , но разделы EFI были частью предыдущих версий Windows, а также частью других операционных систем (ОС), таких как Linux и macOS .
EFI расшифровывается как Extensible Firmware Interface . Как видно из названия, EFI соединяет ОС с прошивкой аппаратных компонентов компьютера. Думайте о прошивке как о мозге в каждом элементе оборудования. Расширяемая часть имени говорит нам, что EFI можно изменять для разных ситуаций.
В настоящее время большинство устройств Windows используют UEFI BIOS (базовая система ввода / вывода с унифицированным расширяемым интерфейсом микропрограмм). Подобрать версию BIOS для вашего компьютера несложно . Только устройства Windows, использующие UEFI BIOS, будут иметь раздел EFI. Система Windows без UEFI BIOS включает загрузочную информацию в основной раздел.
Когда мы запускаем компьютер, Windows не запускается сразу. Сначала запускается BIOS. Что такое биос ? Это минимальная ОС, которая живет на микросхеме. Пробуждает оборудование и прошивку. Затем BIOS ищет раздел EFI, чтобы получить инструкции по запуску и взаимодействию с Windows.
Раздел EFI содержит важные файлы и утилиты, такие как:
- Загрузчики : запускают процесс загрузки, системные утилиты, драйверы устройств и проверяют их совместную работу.
- Драйверы устройств : сообщают Windows, как взаимодействовать с различными аппаратными компонентами.
- Файлы данных : содержат информацию о процессе загрузки и связанные журналы.
- Системные утилиты : небольшие программы, помогающие запускать и запускать Windows.
- Данные BitLocker : при использовании BitLocker для шифрования диска секрет будет храниться здесь, и он будет взаимодействовать с TPM (доверенным платформенным модулем) для шифрования и дешифрования диска. Возможно, вы слышали, что для Windows 11 требуется TPM 2.0 .
Когда раздел EFI успешно найден и процесс загрузки работает, запускается Windows.
Следует ли мне удалить раздел EFI?
Если вы видите раздел EFI и думаете: «Мой компьютер мог бы использовать дополнительные 100 МБ. Давайте удалим это », не делайте этого. Windows отлично справляется с удалением раздела EFI. но ты можешь сделать это. Без EFI BIOS будет думать, что Windows не существует, и компьютер не запустится должным образом. Кроме того, имеет ли значение получение дополнительных 100 МБ свободного дискового пространства ? Между облачным хранилищем и недорогими дисками емкостью 1 ТБ + нам не нужны эти 100 МБ. Будь как будет.
Где находится раздел EFI в Windows 10?
Если вы ищете раздел EFI в проводнике , вы, вероятно, его не найдете. Раздел EFI ценен, поэтому он скрыт. Но найти это не так уж и сложно.
Используйте Управление дисками, чтобы найти раздел EFI
Управление дисками - это утилита Windows для разбиения на разделы, изменения размера, переименования и форматирования дисков .
Как только мы включаем компьютер, в нем немедленно начинает работать миниатюрная операционная система, которую мы знаем как 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 уже давно работает, но массового перехода пока не свершилось, несмотря на благие намерения. А они таковы:
UEFI может использовать универсальную исполняющую машину вроде JVM для использования аппаратно-независимого кода, а это открывает огромные горизонты для создания «загрузочного» ПО.
Существует и критика этой технологии. В частности, внедрение ее может привести к отсечению от рынка операционных систем новых игроков: для этого всегда найдется в коде какая-нибудь технологическая лазейка. Как, например, невозможность загружать ОС Windows 98 из современных BIOS. Но, что хуже, придется забыть о миллионах программ MS-DOS и других систем, которые опирались в своей работе на функции BIOS. Возможно, они еще будут эмулироваться, но в этом есть сомнения. А среди них наверняка есть и важные программы, которые некому будет переписывать. Впрочем, все это решаемые вопросы – хотя бы за счет виртуальных операционных систем.
Делись с друзьями, подписывайся на наш канал Наука и Технологии и жми лайк , чтобы не пропустить новые публикации.
На большинство современных моделей материнских плат вместо классического БИОСа производители комплектующих устанавливают UEFI. Это делает процесс настройки системы более комфортным и обеспечивает поддержку нового оборудования. Старый BIOS уже уходит в прошлое, ему на смену приходит более совершенная система – UEFI.
Что такое BIOS
Понятие «BIOS» следует рассматривать как аббревиатуру, которую можно расшифровать как «базовая система ввода-вывода» (Basis Input-Output System). Так принято обозначать совокупность микропрограмм, внедренных в особый чип на системной плате (микросхема ПЗУ или ROM BIOS). Такая микросхема (часто обозначаемая как CMOS) получает подпитку от батарейки CR2032, что позволяет сохранять пользовательские настройки.
БИОС является по сути низкоуровневым программным обеспечением, запускаемым при загрузке компьютера и контролирующим состояние аппаратной части. Это относится и к UEFI, который присутствует на всех машинах нового поколения.
Если батарейка микросхемы разрядилась, после ее замены параметры БИОС будут сброшены в значение по умолчанию. Компьютер при этом вернется в работоспособное состояние, но параметры, введенные пользователем, не сохранятся. При необходимости их можно ввести заново.
БИОС отвечает за подключение комплектующих системы и устанавливает порядок их взаимодействия. Это самая первая программа, которая запускается на компьютере. Она выполняет роль посредника между комплектующими компьютера и операционной системой. Не запустится БИОС, не будет загружена и Windows. То же самое произойдет и при обнаружении серьезных проблем с аппаратурой.
Биос, как и большинство других программ, можно при необходимости обновить, или, иначе говоря, перепрошить. Перепрошивка означает удаление старых микропрограмм и установку их обновленных версий. Это позволяет устранить недостатки программного обеспечения и подключить устройства, ранее несовместимые с системой. Новая прошивка сохранится и после замены батарейки.
Перепрошивка BIOSа – весьма серьезная процедура, которая в случае сбоя или неправильного ее выполнения может стать причиной отказа системной платы. Производить ее неопытным пользователям без крайней необходимости не рекомендуется.
Свои собственные BIOS могут присутствовать и у других компонентов компьютера. Так, они имеются на видеокартах и регулируют работу этих устройств.
Какие бывают виды BIOS
Существует немало разновидностей этой подсистемы компьютера. Кратко рассмотрим 4 наиболее распространенных их типа.
AMI BIOS
Сейчас его можно встретить преимущественно на стационарных компьютерах со старыми материнскими платами и ноутбуках Asus, Lenovo, MSI. Устанавливался еще на 286-е машины. Особенностью интерфейса является синий или серый фон.
UEFI Shell, или командная оболочка UEFI - это часть системы UEFI, предназначенная для выполнения запуска исполняемых *.efi файлов и UEFI-загрузчиков. Кроме этого, UEFI Shell позволяет: осуществлять загрузку UEFI-драйверов, выполнять файловые операции на поддерживаемых файловых системах (поддержка которых может быть добавлена загрузкой соответствующих драйверов), управлять загрузочным списком, работать с сетью (есть поддержка TCP/IP), выполнять сценарии *.nsh состоящие из команд данной оболочки.
Содержание
1. Командная оболочка UEFI Shell
Основные возможности похожи на оные у других командных оболочек. Если вам знакомы какие нибудь из них (bash, cmd и т. д.), то многие моменты будут вам знакомы.
1.1 Специальные Cимволы
1.2 Экранирование Символов
Символом выполняющим роль экранирования является ^ . Экранирование позволяет воспринимать введенный символ после символа экранирования, просто как текст. Это может потребоваться когда необходимо ввести один из специальных символов.
1.3 Кавычки
Кавычки ( " ) предназначены для объединение нескольких слов в единую строку. Командная оболочка воспринимает слова разделенные знаком пробел, как отдельные аргументы. Чтобы избежать такого восприятия, необходимую последовательность слов заключат в кавычки. К примеру, это бывает необходимо, когда в качестве аргументов используются полные пути до файла содержащие пробел.
Чтобы в строке заключенной в кавычки вставить сам знак кавычек, его необходимо экранировать ^" . То же самое касается и самого знака экранирования. Для использования его в строке, вводить его нужно так ^^ .
1.4 Перенаправления
1.4.1 Перенаправление Вывода
Вывод любой команды может быть перенаправлен в файл. Например:
В первом случае, результат выполненной команды command будет сохранен в файл file.log, с перезаписью (файл создается заново).
Во втором случае, результат выполненной команды command будет сохранен в конец файла file.log (если файла не существовало, то он создается).
У команды перенаправления существуют два модификатора a (вывод происходит в кодировке ASCII), v (вывод происходит в переменную). Например:
Специальные файлы перенаправлений NUL и NULL предназначены для подавления вывода. То есть, весь вывод направленный в эти файлы будет просто отброшен без сохранения. Пример:
command > NUL
command > NULL
1.4.2 Перенаправление Ввода
Данные из существующего файла или переменной могут быть направлены на входной поток любой команды. Например:
1.4.3 Конвейер Команд
command1 | command2
command1 |a command2
В первом случае происходит перенаправление вывода команды command1 во входящий поток команды command2. Во втором случае все тоже самое но в кодировке ASCII.
1.5 Комментарии
1.6 Переменные
Переменные создаются с помощью команды set либо с помощью перенаправления вывода в переменную. Так же существую переменные окружения, речь о которых пойдет ниже.
Доступ к переменным в командной строке, или скриптах, осуществляется путем заключения ее имени между символами процента % .
1.6.1 Переменные Окружения
Переменные окружения создаются самой командной оболочкой при ее инициализации. Некоторые из них можно изменять а некоторые нет. Каждый новый сеанс командной оболочки содержит свой независимый список переменных окружения. Ниже представлен список переменных окружения UEFI Shell:
cwd - Текущая рабочая директория. Доступна только для чтения.
lasterror - Код ошибки последней выполненной команды. Доступна только для чтения.
path - Содержит пути до директорий, перечисленных через точку с запятой, по которым UEFI Shell производит поиск запрошенных исполняемых файлов. Можно перезаписывать.
profiles - Список профилей UEFI Shell которые поддерживаются командной оболочкой. Доступна только для чтения.
uefishellsupport - Текущий уровень поддержки UEFI Shell. Всего их 4 (0, 1, 2, 3). Доступна только для чтения.
uefishellversion - Версия оболочки UEFI Shell. Доступна только для чтения.
uefiversion - Версия системы UEFI. Доступна только для чтения.
nonesting - Определяет возможность запуска вложенных копий оболочки. Доступна только для чтения.
1.6.2 Позиционные Переменные
Позиционные параметры используются в скирптах. Всего их десять, имеют вид %0 - %9 . Переменная %0 содержит в себе полный путь и имя исполняемого скрипта. Остальные переменные %1 - %9 содержат переданные аргументы.
1.6.3 Псевдонимы
Псевдонимы представляют собой дополнительное имя уже имеющейся команды или приложения. Возможны два варианта псевдонимов, на основе переменных, и созданные с помощью команды alias.
Для создания псевдонима с помощью переменной, необходимо создать переменную содержащую текст выполняемой команды. После чего вызвать созданную переменную.
1.6.4 Файловые Маски
Файловые маски в данной оболочке используют следующие символы * , ? , [] .
* - Любые символы в количестве от нуля и более.
? - Любой один символ.
[] - Один из указанных символов в квадратных скобках.
Пример использования файловых масок:
1.7 Интерактивные Возможности
1.7.1 Клавиши Истории Команд
Командная оболочка UEFI Shell запоминает последние выполненные команды. Нажатием на клавиши стрелок вверх или вниз, можно выводить в командную строку последние выполненные команды. Нажатием на клавишу F7 можно посмотреть список последних 24 команд, с возможностью повтора необходимой по ее номеру.
1.7.2 Прерывание Выполнения
В UEFI Shell присутствует возможность прерывать выполнение команды, исполняемого файла или скрипта. Осуществляется прерывание выполнения с помощью сочетания клавиш CTRL+C .
1.7.3 Контроль Выходного Потока
UEFI Shell поддерживает возможность останавливать вывод (ставить на паузу), и продолжать его с остановленного места. Остановить вывод можно сочетанием клавиш CTRL+S . Нажатием на любую клавишу исполняемая команда продолжит свое выполнение.
1.7.4 Поддержка Прокрутки Буфера
UEFI Shell позволяет прокручивать буфер вывода на 3 экрана назад. Осуществляется такая прокрутка клавишами PgUp и PgDown .
1.8 Справка Командной Строки
Вызвать общую информацию о командах в UEFI Shell можно выполнив команду help . Так как список не умещается на один экран, вы увидите лишь конец списка. Чтобы избежать такого поведения и выводить информацию постранично, необходимо запустить команду с параметром -b . Выглядеть это будет так help -b . Параметр -b можно использовать в любой ситуации, когда выходная информация не умещается на один экран.
Каждая команда из help списка обладает своей справочной информацией. Вызвать данную информацию можно выполнив необходимую команду с параметром -? , либо передав команде help название команды по которой необходимо получить справку. Пример:
2. Список команд UEFI Shell
В данном разделе будут кратко описаны стандартные команды оболочки UEFI Shell. Более подробное описание каждой команды на данный момент отсутствует. Если вы считаете, что подробное описание на русском все же необходимо, напишите об этом в комментариях.
Напомню, что справку по каждой команде можно получить запустив ее с ключом -? .
Применение основных команд данной командной оболочки можно посмотреть по этой ссылке. Применение команд загрузки драйверов можно посмотреть тут.
alias - Отображает, создает, или удаляет псевдонимы UEFI Shell.
attrib - Отображает или изменяет атрибуты файлов или директорий.
bcfg - Управляет загрузочными записями и настройками драйверов сохраненных в NVRAM (энергонезависимой памяти).
cd - Отображает или меняет текущий рабочий каталог.
cls - Очищает окно консоли, а так же позволяет задать цвета фона и текста.
comp - Сравнивает содержимое двух файлов побайтово.
connect - Привязывает драйвер к определенному устройству и запускает драйвер.
cp - Копирует один или несколько файлов или каталогов в указанное место.
date - Отображает и устанавливает текущую дату для системы.
dblk - Отображает один или несколько блоков с блочного устройства.
devices - Отображает список устройств, управляемых драйверами UEFI.
devtree - Отображает дерево устройств, совместимых с драйверами модели UEFI.
dh - Отображает дескрипторы устройств в UEFI окружении.
disconnect - Отключает один или несколько драйверов от указанных устройств.
dmem - Отображает содержимое системной памяти или памяти устройства.
dmpstore - Управляет всеми переменными UEFI.
drivers - Отображает список драйверов UEFI.
drvcfg - Настройка драйверов UEFI.
drvdiag - Диагностика драйверов UEFI.
edit - Вызывает полноэкранный текстовый редактор для файлов ASCII или UCS-2.
eficompress - Архивирует файл с использованием алгоритма сжатия UEFI.
efidecompress - Разархивирует файл сжатый алгоритмом сжатия UEFI.
else - Определяет код, выполняемый, когда if имеет значение FALSE.
endfor - Заканчивает цикл for.
endif - Заканчивает блок кода, управляемый оператором if.
exit - Выход из оболочки UEFI или текущего скрипта.
for - Начинает цикл, основанный на синтаксисе for.
getmtc - Выводит счетчик MTC.
goto - Переходит к указанной точке в выполняемом скрипте.
help - Отображает список команд UEFI Shell или справку по конкретной команде.
hexedit - Вызывает полноэкранный шестнадцатеричный редактор для файлов, блочных устройств или памяти.
if - Выполняет команды в заданных условиях.
ifconfig - Отображает или изменяет настройки протокола IPv4 для указанного сетевого интерфейса.
ifconfig6 - Отображает или изменяет настройки протокола IPv6 для указанного сетевого интерфейса.
load - Загружает драйвер UEFI в память.
loadpcirom - Загружает в память файл образ PCI Option ROM.
ls - Выводит содержимое директории или информацию о файле.
map - Отображает или определяет сопоставления файловой системы.
memmap - Отображает карту памяти, поддерживаемую средой UEFI.
mkdir - Создает одну или несколько новых директорий.
mm - Отображает или изменяет адресное пространство MEM/MMIO/IO/PCI/PCIE.
mode - Отображает или изменяет режим выходного устройства консоли.
mv - Перемещает один или несколько файлов в указанное местоположение или между файловыми системами.
openinfo - Отображает протоколы и агенты, связанные с дескриптором.
parse - Извлекает значение соответствующее заданному условию из указанного текстового файла.
pause - Останавливает выполнение скрипта и ожидает нажатия любой клавиши.
pci - Отображает список устройств PCI или информацию о них.
ping - Пингует указанный хост или IP-адрес по протоколу IPv4.
ping6 - Пингует указанный хост или IP-адрес по протоколу IPv6.
reconnect - Повторное подключение драйверов к определенному устройству.
reset - Перезагружает систему.
rm - Удаляет один или несколько файлов или каталогов.
sermode - Устанавливает атрибуты последовательного порта.
set - Отображает или изменяет переменные среды UEFI Shell.
setsize - Приводит файл к указанному размеру.
setvar - Отображает или изменяет переменную UEFI.
shift - Сдвигает позиции позиционных параметров в скрипте.
smbiosview - Отображает информацию о SMBIOS.
stall - Останавливает выполнение (ожидает) на указанное количество микросекунд (1 сек = 1000000 мксек).
time - Отображает или устанавливает текущее время для системы.
timezone - Отображает или задает информацию о часовом поясе.
touch - Обновляет временную метку указанного файла или файлов до текущей системной даты и времени.
type - Выводит содержимое указанного файла на стандартное устройство вывода (экран).
Читайте также: