Efi shell что это

BootDev

Создание загрузочных дисков и прочие полезные мелочи

Страницы

2018-05-23

UEFI Shell: Описание командной оболочки

Efi shell что это. Смотреть фото Efi shell что это. Смотреть картинку Efi shell что это. Картинка про Efi shell что это. Фото Efi shell что это

Содержание

1. Командная оболочка UEFI Shell

Основные возможности похожи на оные у других командных оболочек. Если вам знакомы какие нибудь из них (bash, cmd и т. д.), то многие моменты будут вам знакомы.

1.1 Специальные Cимволы

1.2 Экранирование Символов

1.3 Кавычки

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

1.4 Перенаправления

1.4.1 Перенаправление Вывода

Вывод любой команды может быть перенаправлен в файл. Например:

command > file.log #перезапись unicode файла
command >> file.log #дозапись unicode файла

В первом случае, результат выполненной команды command будет сохранен в файл file.log, с перезаписью (файл создается заново).
Во втором случае, результат выполненной команды command будет сохранен в конец файла file.log (если файла не существовало, то он создается).

У команды перенаправления существуют два модификатора a (вывод происходит в кодировке ASCII), v (вывод происходит в переменную). Например:

command >a file.log #перезапись ascii файла
command >>a file.log #дозапись ascii файла
command >v variable #перезапись в переменную
command >>v variable #дозапись в переменную


Специальные файлы перенаправлений NUL и NULL предназначены для подавления вывода. То есть, весь вывод направленный в эти файлы будет просто отброшен без сохранения. Пример:

command > NUL
command > NULL

1.4.2 Перенаправление Ввода

Данные из существующего файла или переменной могут быть направлены на входной поток любой команды. Например:

command #получение входящих данных из unicode файла
command #получение входящих данных из ascii файла
command #получение входящих данных из переменной

1.4.3 Конвейер Команд

Данные из выходного потока одной команды можно направить на входящий поток другой, образуя при этом конвейер команд. Например:

command1 | command2
command1 |a command2

В первом случае происходит перенаправление вывода команды command1 во входящий поток команды command2. Во втором случае все тоже самое но в кодировке ASCII.

1.5 Комментарии

1.6 Переменные

1.6.1 Переменные Окружения

Переменные окружения создаются самой командной оболочкой при ее инициализации. Некоторые из них можно изменять а некоторые нет. Каждый новый сеанс командной оболочки содержит свой независимый список переменных окружения. Ниже представлен список переменных окружения UEFI Shell:

Efi shell что это. Смотреть фото Efi shell что это. Смотреть картинку Efi shell что это. Картинка про Efi shell что это. Фото Efi shell что это

Efi shell что это. Смотреть фото Efi shell что это. Смотреть картинку Efi shell что это. Картинка про Efi shell что это. Фото Efi shell что это

1.6.2 Позиционные Переменные

1.6.3 Псевдонимы

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

Efi shell что это. Смотреть фото Efi shell что это. Смотреть картинку Efi shell что это. Картинка про Efi shell что это. Фото Efi shell что это

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

Efi shell что это. Смотреть фото Efi shell что это. Смотреть картинку Efi shell что это. Картинка про Efi shell что это. Фото Efi shell что это

1.6.4 Файловые Маски

Пример использования файловых масок:

1.7 Интерактивные Возможности

1.7.1 Клавиши Истории Команд

Командная оболочка UEFI Shell запоминает последние выполненные команды. Нажатием на клавиши стрелок вверх или вниз, можно выводить в командную строку последние выполненные команды. Нажатием на клавишу F7 можно посмотреть список последних 24 команд, с возможностью повтора необходимой по ее номеру.

1.7.2 Прерывание Выполнения

1.7.3 Контроль Выходного Потока

1.7.4 Поддержка Прокрутки Буфера

1.8 Справка Командной Строки

Efi shell что это. Смотреть фото Efi shell что это. Смотреть картинку Efi shell что это. Картинка про Efi shell что это. Фото Efi shell что это

2. Список команд UEFI Shell

В данном разделе будут кратко описаны стандартные команды оболочки UEFI Shell. Более подробное описание каждой команды на данный момент отсутствует. Если вы считаете, что подробное описание на русском все же необходимо, напишите об этом в комментариях.

Источник

BootDev

Создание загрузочных дисков и прочие полезные мелочи

Страницы

2018-11-13

UEFI Shell: Загрузка драйверов

Efi shell что это. Смотреть фото Efi shell что это. Смотреть картинку Efi shell что это. Картинка про Efi shell что это. Фото Efi shell что это

Содержание

Зачем Это Нужно

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

Efi shell что это. Смотреть фото Efi shell что это. Смотреть картинку Efi shell что это. Картинка про Efi shell что это. Фото Efi shell что это

Efi shell что это. Смотреть фото Efi shell что это. Смотреть картинку Efi shell что это. Картинка про Efi shell что это. Фото Efi shell что это

Что Будем Делать

Скачиваем Драйвера

Efi shell что это. Смотреть фото Efi shell что это. Смотреть картинку Efi shell что это. Картинка про Efi shell что это. Фото Efi shell что это

Драйвера для сетевых карт Realtek можно загрузить по ссылке https://yadi.sk/d/OELUb2AGd-SJWQ.

Efi shell что это. Смотреть фото Efi shell что это. Смотреть картинку Efi shell что это. Картинка про Efi shell что это. Фото Efi shell что это

Efi shell что это. Смотреть фото Efi shell что это. Смотреть картинку Efi shell что это. Картинка про Efi shell что это. Фото Efi shell что это

Efi shell что это. Смотреть фото Efi shell что это. Смотреть картинку Efi shell что это. Картинка про Efi shell что это. Фото Efi shell что это

Загрузка Драйверов Файловых Систем

Ранее говорилось, что тестовая система содержит две файловые системы, которые будут недоступны в подсистеме UEFI, это NTFS и EXT4. Попробуем загрузить драйвера для данных файловых систем.

Итак, UEFI Shell загружен, подключаем флешку с скачанными драйверами и выполняем команду переопределения подключенных дисков.

Efi shell что это. Смотреть фото Efi shell что это. Смотреть картинку Efi shell что это. Картинка про Efi shell что это. Фото Efi shell что это

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

Efi shell что это. Смотреть фото Efi shell что это. Смотреть картинку Efi shell что это. Картинка про Efi shell что это. Фото Efi shell что это

В корне диска располагается папка Drivers, созданная нами на этапе скачивания драйверов. Переходим в по пути Drivers\FS и смотрим что в нем находится.

Efi shell что это. Смотреть фото Efi shell что это. Смотреть картинку Efi shell что это. Картинка про Efi shell что это. Фото Efi shell что это

В полученном списке файлов, присутствуют следующие, ntfs_x64.efi и ext2_x64.efi. Их мы будем загружать.

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

Efi shell что это. Смотреть фото Efi shell что это. Смотреть картинку Efi shell что это. Картинка про Efi shell что это. Фото Efi shell что это

В полученном списке, не составит труда определить необходимые разделы. Это BLK1, BLK3, BLK4, BLK5. На данный момент они не доступны. Доступные для просмотра, то есть понятные системе UEFI, диски имеют префикс FSx.

Первым, загрузим драйвер ntfs_x64.efi. После чего выполним переинициализацию смонтированных дисков.

Efi shell что это. Смотреть фото Efi shell что это. Смотреть картинку Efi shell что это. Картинка про Efi shell что это. Фото Efi shell что это

Разберем, что произошло после выполнения команд указанных выше. Первое, что бросается в глаза, это то, что диски BLK1 и BLK4 получили новые метки FS0 и FS2 соответственно. Это значит, что данные разделы имеют файловую систему NTFS. Проверим содержимое данных дисков.

Efi shell что это. Смотреть фото Efi shell что это. Смотреть картинку Efi shell что это. Картинка про Efi shell что это. Фото Efi shell что это

Efi shell что это. Смотреть фото Efi shell что это. Смотреть картинку Efi shell что это. Картинка про Efi shell что это. Фото Efi shell что это

По содержимому дисков можно соделать вывод, что FS0 это раздел восстановления Windows, а FS2 это раздел с установленной операционной системой Windows.

Загрузим теперь драйвер ext2_x64.efi, с последующим переопределением смонтированных дисков.

Efi shell что это. Смотреть фото Efi shell что это. Смотреть картинку Efi shell что это. Картинка про Efi shell что это. Фото Efi shell что это

На этот раз, диск BLK5 получил префикс FS3. А флешка теперь находится под меткой FS6. Посмотрим содержимое диска FS3.

Efi shell что это. Смотреть фото Efi shell что это. Смотреть картинку Efi shell что это. Картинка про Efi shell что это. Фото Efi shell что это

Его содержимое говорит о том, что это раздел операционной системы Ubuntu Linux. Что же тогда с разделом BLK3. Он, в данном случае, принадлежит Linux, это SWAP-раздел (раздел подкачки).

Efi shell что это. Смотреть фото Efi shell что это. Смотреть картинку Efi shell что это. Картинка про Efi shell что это. Фото Efi shell что это

Автозагрузка UEFI-драйверов

Все выполненные действия по загрузке драйверов, в предыдущем разделе, актуальны до первой перезагрузки компьютера. После перезагрузки, драйвера придется загружать снова. А что делать если загружаемый драйвер необходим при каждой загрузке? На этот случай, подсистема UEFI располагает возможностью добавлять загрузочные записи для драйверов. Добавим ранее загружаемые драйвера файловых систем в автозагрузку.

Efi shell что это. Смотреть фото Efi shell что это. Смотреть картинку Efi shell что это. Картинка про Efi shell что это. Фото Efi shell что это

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

Efi shell что это. Смотреть фото Efi shell что это. Смотреть картинку Efi shell что это. Картинка про Efi shell что это. Фото Efi shell что это

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

Efi shell что это. Смотреть фото Efi shell что это. Смотреть картинку Efi shell что это. Картинка про Efi shell что это. Фото Efi shell что это

Данные загрузочные записи, будут храниться в подсистеме UEFI, в NVRAM. Сбросить их можно будет, лишь вытащив батарейку из материнской платы компьютера, или удалив.

Удаление загрузочных записей для драйверов, происходит следующим образом:

Номера загрузочных записей, можно посмотреть в выводе предыдущей команды. Замечу, что нумерация их начинается с нуля.

Загрузка Сетевых Драйверов

В качестве сетевого адаптера в виртуальной машине VirtualBox, выбрана сетевая карта Intel PRO/1000 MT. Подсистема UEFI, встроенная в VirtualBox, не содержит драйверов под эту сетевую карту. Это весьма странно, конкурент от VMWare этим не грешит, и возможно данные драйвера будут интегрированы в последующих версиях. Выбрана данная сетевая карта, так же из-за того, что в интернете для нее присутствуют UEFI-драйвера. Их легко найти и скачать.

Забегая вперед, скажу, что с виртуальной машиной VirtualBox возникнет проблема. Диагностировать которую, не так уж и просто. Но обо всем по порядку.

Загружаем сетевые драйвера. Так как скачанный пакет EFI-драйверов насчитывает 5 файлов,

Efi shell что это. Смотреть фото Efi shell что это. Смотреть картинку Efi shell что это. Картинка про Efi shell что это. Фото Efi shell что это

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

Efi shell что это. Смотреть фото Efi shell что это. Смотреть картинку Efi shell что это. Картинка про Efi shell что это. Фото Efi shell что это

После загрузки драйверов в память, посмотрим список всех драйверов подсистемы UEFI.

Efi shell что это. Смотреть фото Efi shell что это. Смотреть картинку Efi shell что это. Картинка про Efi shell что это. Фото Efi shell что это

Вывод команды строиться в виде таблицы, состоящий из девяти столбцов.

Efi shell что это. Смотреть фото Efi shell что это. Смотреть картинку Efi shell что это. Картинка про Efi shell что это. Фото Efi shell что это

1. Дескриптор драйвера. То есть, уникальное число в формате HEX, за которым закреплен драйвер. Это число используется другими командами для выполнения операций над конкретным драйвером.

2. Версия драйвера. Тут все просто, числовое обозначение версии драйвера.

4. Поддержка конфигурационного протокола. Наличие знака » X «, вместо » «, говорит о том что данный драйвер поддерживает возможность конфигурирования.

5. Поддержка диагностического протокола. Наличие знака » X «, вместо » «, говорит о том что данный драйвер поддерживает возможность диагностики. То есть способен выдать сведения о своем состоянии.

6. Число устройств обслуживаемых драйвером.

7. Число дочерних устройств работающих под этим драйвером.

9. Путь до файла драйвера. Файл драйвера может располагаться как в оперативной памяти, так и жестком диске, или любом другом поддерживаемом накопителе.

Efi shell что это. Смотреть фото Efi shell что это. Смотреть картинку Efi shell что это. Картинка про Efi shell что это. Фото Efi shell что это

Снова выведем информацию о драйверах.

Efi shell что это. Смотреть фото Efi shell что это. Смотреть картинку Efi shell что это. Картинка про Efi shell что это. Фото Efi shell что это

По выводу видно, что из двух драйверов, заработал только AE. У него сменился тип с «?» на «B«, счетчик устройств обсуживаемых драйвером стал равным 1. Кроме этого, стали активными и встроенные драйвера сетевых протоколов, появилась информация о их типе и счетчике устройств. Драйвер заработал. Проверяем доступные сетевые интерфейсы.

Efi shell что это. Смотреть фото Efi shell что это. Смотреть картинку Efi shell что это. Картинка про Efi shell что это. Фото Efi shell что это

Пустой вывод, или отсутствие вывода, в данном случае, говорит о том, что сетевых интерфейсов нет. Следовательно драйвер не заработал как нужно, вопрос только какой именно драйвер. Как было сказано ранее, при загрузке драйвера сетевой карты, так же были активированы и драйверы протоколов. На данный момент, на отсутствие сети, могут влиять как драйвер сетевой карты так и встроенные драйвера протоколов.

Взглянем на дерево устройств, в нем так же можно найти полезную информацию.

Efi shell что это. Смотреть фото Efi shell что это. Смотреть картинку Efi shell что это. Картинка про Efi shell что это. Фото Efi shell что это

Efi shell что это. Смотреть фото Efi shell что это. Смотреть картинку Efi shell что это. Картинка про Efi shell что это. Фото Efi shell что это

По ветке сетевого адаптера, видны дескрипторы протоколов, некоторые из них, включая TCPv4, не запущены, то есть имеют маркировку Not Started. Что собственно может служить причиной отсутствия доступных сетевых интерфейсов. Но это не точно.

Попробуем проверить вывод команд drivers и devtree на другой виртуальной машине, а именно VMWare. Подсистема UEFI данной виртуальной машины содержит интегрированные драйвера для используемых ею сетевых адаптеров. То есть сеть в UEFI работает изначально без дополнительных действий.

Efi shell что это. Смотреть фото Efi shell что это. Смотреть картинку Efi shell что это. Картинка про Efi shell что это. Фото Efi shell что это

Запускаем UEFI Shell.

Efi shell что это. Смотреть фото Efi shell что это. Смотреть картинку Efi shell что это. Картинка про Efi shell что это. Фото Efi shell что это

Смотрим список драйверов.

Efi shell что это. Смотреть фото Efi shell что это. Смотреть картинку Efi shell что это. Картинка про Efi shell что это. Фото Efi shell что это

Как было сказано выше, подсистема UEFI, виртуальной машины VMWare, уже содержит необходимые сетевые драйвера. Указанные на снимке сетевые драйвера, судя по их статусу, работают. Проверим наличие сетевых интерфейсов.

Efi shell что это. Смотреть фото Efi shell что это. Смотреть картинку Efi shell что это. Картинка про Efi shell что это. Фото Efi shell что это

Просмотрим теперь дерево устройств. А именно как будет выглядеть ветка сетевого адаптера.

Efi shell что это. Смотреть фото Efi shell что это. Смотреть картинку Efi shell что это. Картинка про Efi shell что это. Фото Efi shell что это

Сетевая карта, в моем случае, имеет дескриптор CD. Выведем отдельно ветку сетевой карты.

Efi shell что это. Смотреть фото Efi shell что это. Смотреть картинку Efi shell что это. Картинка про Efi shell что это. Фото Efi shell что это

Сравните вывод на машине VMWare, с аналогичным в VirtualBox. Основное различие, не запущенный протокол TCP, при использовании VirtualBox.

Раз была затронута тема сравнения, то предлагаю попробовать выгрузить встроенный драйвер сетевого адаптера виртуальной машины VMWare, и загрузить те, что были скачаны нами для использования в VirtualBox.

Просмотрим еще раз список загруженных драйверов, чтобы узнать дескрипторы драйверов сетевых адаптеров.

Efi shell что это. Смотреть фото Efi shell что это. Смотреть картинку Efi shell что это. Картинка про Efi shell что это. Фото Efi shell что это

В системе присутствует два загруженных драйвера для сетевых адаптеров, первый c дескрипторам 81, и второй с дескриптором 82. Из них, в рабочем состоянии драйвер 82. Из описания которого понятно, что это драйвер сетевого адаптера Intel PRO/1000 PCI-E. Выгрузим оба.

Efi shell что это. Смотреть фото Efi shell что это. Смотреть картинку Efi shell что это. Картинка про Efi shell что это. Фото Efi shell что это

Проверим список драйверов системы.

Efi shell что это. Смотреть фото Efi shell что это. Смотреть картинку Efi shell что это. Картинка про Efi shell что это. Фото Efi shell что это

Драйвера сетевых адаптеров были выгружены. Так же перестали работать драйвера сетевых протоколов. Выполним вывод сетевых интерфейсов.

Efi shell что это. Смотреть фото Efi shell что это. Смотреть картинку Efi shell что это. Картинка про Efi shell что это. Фото Efi shell что это

Вывод ожидаемо отсутствует, доступных сетевых интерфейсов нет. Значит сетевая подсистема на данный момент не работает. Теперь выполним загрузку драйверов сетевых адаптеров, скачанных нами ранее.

Efi shell что это. Смотреть фото Efi shell что это. Смотреть картинку Efi shell что это. Картинка про Efi shell что это. Фото Efi shell что это

Проверим список драйверов системы.

Efi shell что это. Смотреть фото Efi shell что это. Смотреть картинку Efi shell что это. Картинка про Efi shell что это. Фото Efi shell что это

Из загруженных, заработал драйвер E8310X3.EFI. Так же заработали встроенные драйвера сетевых протоколов. Попробуем вывести список сетевых интерфейсов системы.

Efi shell что это. Смотреть фото Efi shell что это. Смотреть картинку Efi shell что это. Картинка про Efi shell что это. Фото Efi shell что это

В системе появился сетевой интерфейс. Это значит что загруженный драйвер успешно заработал.

Проверим работу сети. Выполним пинг IP-адреса 8.8.8.8.

Efi shell что это. Смотреть фото Efi shell что это. Смотреть картинку Efi shell что это. Картинка про Efi shell что это. Фото Efi shell что это

Какой вывод можно сделать после проверки скачанных драйверов в виртуальной машине VMWare. Самый главное, это то, что скачанные драйвера все же исправно работают. Тот факт, что виртуальная машина VirtualBox, не отображала сетевых интерфейсов, после загрузки драйверов, указывает на то, что проблема все же, в встроенных драйвера сетевых протоколов данной виртуальной машины. Но это лишь мои предположения. Если у вас есть информация по этому поводу, то напишите о ней в комментариях.

В этом материале, я постарался вкратце рассмотреть работу с драйверами в оболочке UEFI Shell. Конкретно были затронуты следующие темы (возможно и косвенно): Как загрузить драйвера в UEFI Shell? Как выгрузить драйвера в UEFI Shell? Как добавить UEFI-драйвер в автозагрузку? Как убрать UEFI-драйвер из автозагрузки? Как выполнить установку драйверов в UEFI Shell?

Источник

Efi shell что это

Можно ли обновить мой BIOS на UEFI?
Не совсем. UEFI нельзя прошить вместо BIOS, поскольку он занимает гораздо больше памяти. Но существует такая штука, как DUET. Это загружаемая из BIOS посредством отдельного загрузочного раздела среда UEFI, которая может быть полезна, если вы собираетесь использовать диски объемом >2Тб на своем старом железе с BIOS. Подробнее можно ознакомиться здесь: http://www.rodsbooks.com/bios2uefi/

Здесь за гибкую настройку приоритета загрузки отвечает целый модуль CSM

Efi shell что это. Смотреть фото Efi shell что это. Смотреть картинку Efi shell что это. Картинка про Efi shell что это. Фото Efi shell что это

Efi shell что это. Смотреть фото Efi shell что это. Смотреть картинку Efi shell что это. Картинка про Efi shell что это. Фото Efi shell что это

Efi shell что это. Смотреть фото Efi shell что это. Смотреть картинку Efi shell что это. Картинка про Efi shell что это. Фото Efi shell что это

Efi shell что это. Смотреть фото Efi shell что это. Смотреть картинку Efi shell что это. Картинка про Efi shell что это. Фото Efi shell что это

Что такое GPT?
GUID Partition Table, GPT — стандарт формата размещения таблиц разделов на жестком диске. Он является частью интерфейса EFI. EFI использует GPT там, где BIOS использует MBR.

Где в GPT хранятся аналоги загрузочных секторов?
EFI использует для хранения загрузчиков папку EFI/boot, находящуюся в корне раздела FAT32. По умолчанию должен загружаться файл /EFI/boot/bootx64.efi
Если загружаемый диск размечен в стиле MBR, то наличие файловой системы FAT32 на первом разделе (если их несколько) и файла с загрузчиком, лежащего по дефолтному пути, являются единственными условиями загрузки с этого носителя (CD/DVD тоже поддерживаются). В случае, если диск размечен в стиле GPT, раздел необязательно должен быть первым, но у него должен присутствовать флаг boot (проверить и выставить можно через gparted)

Возможно ли сконвертировать диск из MBR в GPT и обратно без потери данных?
Да. Для этого потребуется загрузочный диск/флешка с Gparted http://gparted.sourceforge.net/download.php
После загрузки с загрузочного носителя откроется окно gparted, в котором в верхнем правом углу будет отображен рабочий диск (обычно это /dev/sda). Необходимо запомнить имя диска, который вы хотите сконвертировать, открыть терминал, и набрать там sudo gdisk /dev/sda
где вместо sda, при необходимости, нужно подставить имя вашего диска. Затем нужно ввести команду w и подтвердить запись таблицы GPT на диск. Все, диск преобразован в таблицу GPT. Для обратной конвертации в MBR необходимо таким же образом открыть gdisk для вашего диска, и последовательно набрать команду r, затем g, после чего подтвердить запись новой таблицы при помощи команды w.
Так же в среде Windows вам поможет программа Partition Guru либо аналоги.

Efi shell что это. Смотреть фото Efi shell что это. Смотреть картинку Efi shell что это. Картинка про Efi shell что это. Фото Efi shell что это

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *