UEFI Shell: базовые команды и сценарии использования

UEFI Shell — это скрытый, но чрезвычайно мощный инструмент, встроенный во многие прошивки UEFI. Он работает как мини-операционная система, запускающаяся до Windows или Linux и дающая прямой доступ к файловой системе, драйверам, переменным NVRAM и сервисам UEFI. Для тех, кто углубляется в диагностику, восстановление загрузки или обслуживание системы, знание UEFI Shell превращает BIOS из «панели настроек» в полноценную консоль низкоуровневого уровня.

Разберёмся, что такое UEFI Shell, зачем он нужен, какие команды в нём работают и какие реальные задачи он помогает решать.


Что такое UEFI Shell

UEFI Shell — это командная среда, встроенная в прошивку материнской платы или доступная через внешний файл Shell.efi. Она работает на основе стандарта UEFI и предоставляет:

  • доступ к FAT-разделам дисков (EFI System Partition);
  • возможности запуска .efi-программ;
  • просмотр и изменение переменных UEFI/NVRAM;
  • управление загрузкой;
  • диагностику устройств и драйверов;
  • выполнение скриптов (*.nsh).

По функциональности это похоже на DOS, но на уровне UEFI, где обычная ОС ещё не загружена.


Какие версии UEFI Shell бывают

Есть два основных варианта:

  1. UEFI Shell v1.x — старый, совместимый с BIOS/CSM.
  2. UEFI Shell v2.x — современный, для чистого UEFI.

Большинство новых плат используют версию 2.x.

Если Shell нет в прошивке, его можно загрузить с флешки:
достаточно положить файл Shell.efi в /EFI/BOOT/BOOTX64.EFI.


Основные команды UEFI Shell

Команды UEFI Shell похожи на DOS/Linux, но имеют свои особенности.

Вот ключевые — те, которые реально используются на практике.


1. Просмотр дисков и файлов

map

Показывает, какие устройства доступны:

map
map -r    # пересоздать карту устройств

UEFI обозначает диски как fs0:, fs1:, blk0, blk1.

ls или dir

Список файлов:

fs0:
ls

cd

Переход по каталогам:

cd EFI
cd Microsoft\Boot

cp / mv / rm

Копирование, перемещение, удаление файлов:

cp bootmgfw.efi bootmgfw.bak
rm test.efi

2. Управление загрузкой (NVRAM)

bcfg

Команда для редактирования загрузочных записей.

Посмотреть текущие загрузчики:

bcfg boot dump

Удалить запись:

bcfg boot rm 2

Добавить загрузчик:

bcfg boot add 0 fs0:\EFI\Microsoft\Boot\bootmgfw.efi "Windows Boot Manager"

Это незаменимый инструмент, если загрузчик исчез, а Windows его не находит.


3. Работа с переменными UEFI

dmpstore

Позволяет смотреть и изменять переменные NVRAM.

Вывести всё:

dmpstore

Удалить конкретную переменную:

dmpstore SomeVariableName -d

Очень полезно, если сломался Secure Boot или NVMe не появляется из-за неправильных переменных.


4. Запуск .EFI-приложений

Любую .efi-программу можно запустить напрямую:

fs0:\EFI\Boot\mytool.efi

Это может быть:

  • альтернативный менеджер загрузки (rEFInd),
  • установщик Linux,
  • UEFI Shell v2,
  • прошивальщик BIOS,
  • тестовое приложение.

5. Диагностика системных параметров

devices

Показывает устройства UEFI:

devices

drivers

Показывает драйверы, загруженные UEFI:

drivers

Можно быстро понять, загружены ли NVMe, USB, PCIe-драйверы.

pci

Информация о PCIe-устройствах:

pci

Используется для диагностики видеокарт и NVMe.


6. Сведения о системе и переменных

memmap

Показывает карту памяти:

memmap

Полезно при проблемах с загрузчиком или драйверами.

ver

Показывает версию Shell.


7. Выполнение скриптов .NSH

Скрипты .nsh — аналог .bat в Windows.

Запуск:

startup.nsh
myscript.nsh

Можно автоматизировать:

  • резервное копирование EFI-раздела;
  • восстановление загрузчика;
  • запуск сторонних приложений.

Реальные сценарии использования UEFI Shell

Теперь главное — зачем это всё нужно на практике.


1. Восстановление загрузчика Windows или Linux

Если Windows Boot Manager пропал, можно вручную:

  • найти EFI-раздел,
  • проверить файлы,
  • добавить загрузчик через bcfg.

Пример:

map -r
fs0:
cd EFI\Microsoft\Boot
bcfg boot add 0 bootmgfw.efi "Windows"

2. Диагностика NVMe и PCIe

Если NVMe не определяется в BIOS, но виден в UEFI Shell:

pci
drivers
devices

— это значит, что проблема в NVRAM/BIOS, а не в железе.


3. Работа с Secure Boot и ключами

Security-раздел UEFI иногда ломается. Через Shell можно:

dmpstore -d PK
dmpstore -d KEK
dmpstore -d db
dmpstore -d dbx

— полностью очистить ключи.


4. Запуск прошивальщиков BIOS

Некоторые производители предоставляют .efi-прошивальщики, работающие из Shell.
Это полезно, когда обновление через BIOS недоступно.


5. Клонирование и копирование файлов на EFI-разделе

UEFI Shell может работать с FAT32 без ограничения:

cp fs0:\EFI\Boot\bootx64.efi fs0:\EFI\Backup\

Это удобно, если Windows не загружается.


6. Чистка NVRAM, если BIOS зависает

Иногда BIOS не открывается или стопорится на POST.
UEFI Shell позволяет удалить проблемные переменные:

dmpstore Boot#### -d

7. Установка систем без полноценного загрузчика

Если загрузочная флешка повреждена, можно вручную запустить установщик:

fs1:\EFI\BOOT\BOOTX64.EFI

— и Windows Setup стартует.


Как получить UEFI Shell, если его нет в BIOS

Если UEFI Shell отсутствует:

  1. Скачать файл Shell.efi (официальный Tianocore).
  2. Переименовать в BOOTX64.EFI.
  3. Поместить по пути:
/EFI/BOOT/BOOTX64.EFI
  1. Загрузиться с флешки.

UEFI автоматически найдёт Shell.


Итог

UEFI Shell — это мощная низкоуровневая среда, которая позволяет:

  • управлять загрузчиками,
  • редактировать NVRAM,
  • смотреть устройства PCIe и драйверы,
  • запускать .EFI-программы,
  • восстанавливать систему,
  • диагностировать железо.

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

Понравилась статья? Поделиться с друзьями:
Блог одного ITшника
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: