Uefi undi driver для чего

Обновлено: 07.07.2024

Как редактировать/удалить/добавить пункты загрузки в загрузочное меню UEFI?
Качаем UEFI Shell, копируем его в файл /EFI/boot/bootx64.efi на FAT32 флешку, и загружаемся с нее. После удачной загрузки шелла должно появиться приглашение командной строки
Shell>
Выше приглашения должен отобразиться список имеющихся подключенных дисков (fs0:, fs1:, BLK0, и тому подобное). Чтобы еще раз вызвать этот список в случае необходимости, воспользуйтесь командой
map fs*
Из полного имени диска можно почерпнуть некоторую информацию о диске. Например:
PciRoot(0x0)/Pci(0x1,0x1)/ Ata(0x0) / HD ( 1 , MBR ,0x27212721,0x3F,0x13FA6D9)
отсюда
Ata(0x0) -интерфейс подключения диска, а также порт контроллера
HD -это жесткий диск
1 -количество разделов на диске
MBR -схема разметки

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

BootDev

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


BootDev


Данных возможностей вполне достаточно для организации загрузки установленной операционной системы Windows на MBR-диске, в двух режимах BIOS и UEFI.

Важное замечание. Для работы с GPT-таблицами необходима 64-разрядная операционная система.

Тестовая Машина

Для проведения тестов использовалась виртуальная машина VirtualBox с установленной операционной системой Windows 10 x64 на MBR-диске.


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

Для добавления возможности загрузки текущей системы в UEFI-режиме, потребуется совсем немного действий. Сначала необходимо будет создать дополнительный раздел размером в 100 МБ с файловой системой FAT32. После на созданный раздел, необходимо будет установить UEFI-загрузчик. И последний шаг, удалить букву диска созданного загрузочного раздела. Во избежание удаления с него файлов.

Разметка Диска

Разметка диска будет выполняться с помощью инструмента "Управление дисками". Запустить Управление дисками можно двумя способами: Либо через окно Выполнить (или любое другое средство выполнения команд), набрав в строке запуска команду diskmgmt.msc.


Либо с помощью контекстного меню кнопки пуск ( Win+X ).


Запустив компонент Управление дисками, сжимаем пространство любого из первичных разделов обладающих достаточным объемом свободного пространства, отнимая необходимые нам 100 МБ для нового загрузочного UEFI-раздела.

Получив свободное, неразмеченное пространство, создадим первичный раздел и отформатируем его в файловую систему FAT32.

Запоминаем букву назначенную созданному разделу (в моем случае это буква E:\), и переходим к установке загрузчика.

Установка Загрузчика

На данный момент, созданный нами загрузочный раздел абсолютно пуст.


Установим UEFI-загрузчик Windows Boot Manager. Для установки, запускаем любую командную оболочку от имени администратора, в моем случае это будет PowerShell (запускается так же через контекстное меню кнопки пуск Win+X ).

И выполняем следующую команду:


Обращаем внимание на то что путь C:\Windows\ указывает на текущую папку Windows текущей операционной системы для которой мы выполняем установку загрузчика. А в качестве значения параметра /s указываем букву раздела на который будет установлен загрузчик.


После выполнения команды, на созданном разделе появятся соответствующие папки и файлы.


Загрузчик на этом успешно установлен.

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

Все готово, теперь осталось лишь проверить загрузку в BIOS и UEFI режимах.

Двойной Запуск

На данный момент система загружена в BIOS-режиме.


Выполним загрузку в UEFI-режиме.


Теперь система может загружаться в режимах BIOS или UEFI абсолютно прозрачно.

В статье было рассмотрено: Как осуществить загрузку операционной системы Windows в UEFI-режиме с MBR-диска?

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

Содержание

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 Справка Командной Строки

Не могу включить режим безопасной загрузки для установки Winows 11

Добрый день. В связи с выходом windows 11 решил из любопытства лично посмотреть на новую версию OC от Microsoft. К сожалению, я столкнулся с очень неприятной проблемой во время выполнения требования для установки новой версии OC, суть которой заключалось не включающимся режиме безопасной загрузки на моем компьютере. Изначально установщик Windows 11 сообщал мне, что мое устройство не поддерживается из-за выключенной безопасной загрузки на моем пк. С горем пополам я смог включить эту функцию в UEFI своей матери:

После этого, на мое удивление, в сведениях о системе меня ждала следующая картина:

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

Меняешь разметку системного диска с MBR на GPT (Ютуб и гугл в помощь, я делал через утилиту AOMEI), отключаешь CSM в биосе и включаешь безопасную загрузку. Все достаточно просто и быстро делается. ред.

То же самое. Нужно диск конвертить из mbr в gpt.

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

Вообще он нигде не пишет о том, что хотел именно обновиться, поэтому я исходил из того, что ему нужно просто установить систему

Скорее всего достаточно переставить загрузчик.

Есть же конвертор в gpt, не надо все сносить

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

Вроде после этого в настройках биоса надо легаси отключить и запускается.
(сам ставить не стал, так как не нашел для себя ни единой причины это делать, там даже обновлений до 22 года не обещают)

Лично пробовал. У меня был включен старый bios legacy. Сначала конвертировал диск из MBR в GPT из под винды через cmd для UEFI/Secure Boot для Windows 11. Вроде конвертировал, но включить UEFI вместо BIOS не смог, поскольку тупо не было выбора UEFI. Потом перезагрузил снова пк, захожу в сведения о системе и вижу, что режим биоса поменялся на UEFI. Видать конвертация диска из MBR в GPT помогла и он сам системно переключился.

Какие команды для конвертации использовал?
Я знаю лишь тот, который чистит данные на диске.

1. Проверьте, что конвертация возможна - запускаем командную строку с правами админа и в ней пишем команду mbr2gpt /validate /allowFullOS

2. Если все нормально - диск MBR и может быть отконвертирован - перегружаем ПК через опцию Advanced Startup в разделе Восстановления настроек Windows

3. ПК перегрузится в режим расширенного загрузка (синий экран) - там выбираем Troubleshoot (устранение неполадок), далее - Advanced options (дополнительные опции) - и, после - Command Prompt (Командная строка).

4. В запустившейся командной строке запускаем команду mbr2gpt /convert и ждем окончание конвертации диска.

5. После окончания конвертации перегрузите компьютер, зайдите в BIOS и переключите опции UEFI, Secure Boot и правильность загрузки - она поменяется на Windows Boot Manager

На днях буквально узнал, что можно сконвертировать через ПО AOMEI PARTITION ASSISTENT PRO. Там в две кнопки можно сконвертировать, без лишних действий из под винды с cmd. Друзья через вот это ПО себе диски сконвертировали без потери данных.

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 название команды по которой необходимо получить справку. Пример:

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