Uefi shell что это

Обновлено: 06.07.2024

при загрузке в Windows PE (WinPE) или программа установки Windows выберите режимы BIOS UEFI или legacy. если после установки Windows необходимо переключить режимы микропрограммы, можно использовать средство MBR2GPT .

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

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

Для загрузки с UEFI или BIOS:

Откройте меню встроенного по. Можно использовать любой из следующих методов.

Загрузите компьютер и нажмите клавишу изготовителя, чтобы открыть меню. Используются общие ключи: ESC, DELETE, F1, F2, F10, F11 или F12. На планшетных ПК распространенные кнопки — это громкое уменьшение или громкость (Поиск более общих ключей и кнопок). Во время запуска часто возникает экран, в котором упоминается ключ. Если это не так или если экран слишком быстро отображается, проверьте сайт изготовителя.

 значок power button

если Windows уже установлен, на экране входа или меню выберите Power ( ) > удерживайте клавишу Shift во время выбора перезапуска. Выберите Устранение неполадок > дополнительные параметры > параметры встроенного по UEFI.

В меню встроенного по выполните загрузку на диск или сеть в режиме UEFI или BIOS:

В меню загрузочное устройство выберите команду, определяющую режим микропрограммы и устройство. Например, выберите UEFI: USB-диск или BIOS: сеть/сеть.

Для одного устройства могут отображаться отдельные команды. Например, вы можете увидеть USB-накопитель UEFI и USB-накопитель в BIOS. Каждая команда использует одно и то же устройство и носитель, но загружает компьютер в другом режиме микропрограммы.

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

некоторые старые пк (Windows 7-эры или более ранней версии) поддерживают UEFI, но для этого требуется перейти к файлу загрузки. В меню встроенного по найдите параметр: "Загрузка из файла", а затем перейдите к \EFI\BOOT\BOOTX64.. EFI на Windows PE или программа установки Windows носителе.

Режимы UEFI и BIOS в WinPE

Обнаружение загрузки WinPE в режиме BIOS или UEFI

Запросите реестр, чтобы определить, в каком режиме находится устройство. Это можно сделать в командной строке:

Код возврата Режим встроенного по
0x1 BIOS
0x2 UEFI

Используйте его в скрипте:

Обратите внимание, что между delims= и " %%A находится вкладка, за которой следует пробел.

Вы всегда должны загружаться в нужный режим каждый раз.

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

Используйте предварительно отформатированные жесткие диски и используйте метод, который не форматирует диск автоматически.

Если вы хотите убедиться, что диск загружается в определенный режим, используйте диски, предварительно форматированные с помощью формата GPT для режима UEFI, или формат файла MBR для режима BIOS. при запуске установки, если компьютер загружен в неправильном режиме, Windows установка завершится сбоем. Чтобы устранить эту проблему, перезапустите компьютер в правильном режиме микропрограммы.

Удаление загрузочных файлов UEFI или BIOS

если требуется, чтобы компьютер загружался только в определенный режим, можно удалить файлы, которые Windows PE или программа установки Windows использовать для загрузки в режиме UEFI или BIOS. Удалите следующие файлы в зависимости от режима, в котором требуется выполнить загрузку.

Загрузка только в режиме UEFI

удалите файл bootmgr из корневого каталога Windows PE или программа установки Windows носителя. Это предотвращает запуск устройства в режиме BIOS.

Загрузка только в режиме BIOS

удалите папку efi из корня Windows PE или программа установки Windows носителя. Это предотвращает запуск устройства в режиме UEFI.

UEFI Shell, или командная оболочка UEFI - это часть системы UEFI, предназначенная для выполнения запуска исполняемых *.efi файлов и UEFI-загрузчиков. Кроме этого, UEFI Shell позволяет: осуществлять загрузку UEFI-драйверов, выполнять файловые операции на поддерживаемых файловых системах (поддержка которых может быть добавлена загрузкой соответствующих драйверов), управлять загрузочным списком, работать с сетью (есть поддержка TCP/IP), выполнять сценарии *.nsh состоящие из команд данной оболочки.


Содержание

1.4 Перенаправления
1.4.1 Перенаправление Вывода
1.4.2 Перенаправление Ввода
1.4.3 Конвейер Команд
1.5 Комментарии
1.6 Переменные
1.6.1 Переменные Окружения
1.6.2 Позиционные Переменные
1.6.3 Псевдонимы
1.6.4 Файловые Маски
1.7 Интерактивные Возможности
1.7.1 Клавиши Истории Команд
1.7.2 Прерывание Выполнения
1.7.3 Контроль Выходного Потока
1.7.4 Поддержка Прокрутки Буфера
1.8 Справка Командной Строки

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 - Выводит содержимое указанного файла на стандартное устройство вывода (экран).

Как только мы включаем компьютер, в нем немедленно начинает работать миниатюрная операционная система, которую мы знаем как 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. Возможно, они еще будут эмулироваться, но в этом есть сомнения. А среди них наверняка есть и важные программы, которые некому будет переписывать. Впрочем, все это решаемые вопросы – хотя бы за счет виртуальных операционных систем.

при загрузке в Windows PE (WinPE) или программа установки Windows выберите режимы BIOS UEFI или legacy. если после установки Windows необходимо переключить режимы микропрограммы, можно использовать средство MBR2GPT .

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

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

Для загрузки с UEFI или BIOS:

Откройте меню встроенного по. Можно использовать любой из следующих методов.

Загрузите компьютер и нажмите клавишу изготовителя, чтобы открыть меню. Используются общие ключи: ESC, DELETE, F1, F2, F10, F11 или F12. На планшетных ПК распространенные кнопки — это громкое уменьшение или громкость (Поиск более общих ключей и кнопок). Во время запуска часто возникает экран, в котором упоминается ключ. Если это не так или если экран слишком быстро отображается, проверьте сайт изготовителя.

 значок power button

если Windows уже установлен, на экране входа или меню выберите Power ( ) > удерживайте клавишу Shift во время выбора перезапуска. Выберите Устранение неполадок > дополнительные параметры > параметры встроенного по UEFI.

В меню встроенного по выполните загрузку на диск или сеть в режиме UEFI или BIOS:

В меню загрузочное устройство выберите команду, определяющую режим микропрограммы и устройство. Например, выберите UEFI: USB-диск или BIOS: сеть/сеть.

Для одного устройства могут отображаться отдельные команды. Например, вы можете увидеть USB-накопитель UEFI и USB-накопитель в BIOS. Каждая команда использует одно и то же устройство и носитель, но загружает компьютер в другом режиме микропрограммы.

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

некоторые старые пк (Windows 7-эры или более ранней версии) поддерживают UEFI, но для этого требуется перейти к файлу загрузки. В меню встроенного по найдите параметр: "Загрузка из файла", а затем перейдите к \EFI\BOOT\BOOTX64.. EFI на Windows PE или программа установки Windows носителе.

Режимы UEFI и BIOS в WinPE

Обнаружение загрузки WinPE в режиме BIOS или UEFI

Запросите реестр, чтобы определить, в каком режиме находится устройство. Это можно сделать в командной строке:

Код возврата Режим встроенного по
0x1 BIOS
0x2 UEFI

Используйте его в скрипте:

Обратите внимание, что между delims= и " %%A находится вкладка, за которой следует пробел.

Вы всегда должны загружаться в нужный режим каждый раз.

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

Используйте предварительно отформатированные жесткие диски и используйте метод, который не форматирует диск автоматически.

Если вы хотите убедиться, что диск загружается в определенный режим, используйте диски, предварительно форматированные с помощью формата GPT для режима UEFI, или формат файла MBR для режима BIOS. при запуске установки, если компьютер загружен в неправильном режиме, Windows установка завершится сбоем. Чтобы устранить эту проблему, перезапустите компьютер в правильном режиме микропрограммы.

Удаление загрузочных файлов UEFI или BIOS

если требуется, чтобы компьютер загружался только в определенный режим, можно удалить файлы, которые Windows PE или программа установки Windows использовать для загрузки в режиме UEFI или BIOS. Удалите следующие файлы в зависимости от режима, в котором требуется выполнить загрузку.

Загрузка только в режиме UEFI

удалите файл bootmgr из корневого каталога Windows PE или программа установки Windows носителя. Это предотвращает запуск устройства в режиме BIOS.

Загрузка только в режиме BIOS

удалите папку efi из корня Windows PE или программа установки Windows носителя. Это предотвращает запуск устройства в режиме UEFI.

Читайте также: