How to Use UEFI Interactive Shell and Its Common Commands
The newer generation UEFI motherboards come with UEFI Interactive Shell. The UEFI interactive shell is a simple shell program (like bash) responsible for booting your operating system. You can also use the UEFI interactive shell to run EFI shell commands and scripts. It can be used to update the System Firmware of your motherboard as well.
This article will show you how to access the UEFI interactive shell on UEFI motherboards and use some of the common EFI commands on the UEFI interactive shell. So, let’s get started.
Table of Contents:
Things You Need to Know:
I have used 2 different prompts to write the EFI Shell commands in this article.
Shell> – I have used this prompt for the commands that you can run from anywhere.
fs1:\*> – I have used this prompt to clarify that you need to select a certain storage device (fs1 in this case) or be in a specific directory before running the commands.
Make sure you keep that in mind while you read this article.
Reading USB Thumb Drives from UEFI Shell:
The UEFI interactive shell can read USB thumb drives if you format it as FAT16 or FAT32. So, suppose you have written some EFI scripts or downloaded any EFI scripts from the official website of your motherboard manufacturer. In that case, you will have to put them in a FAT16 or FAT32 formatted USB thumb drive to access and run them from the UEFI interactive shell.
Starting the UEFI Interactive Shell:
First, shut down your computer. Then, power on your computer. Just after pressing the power button, keep pressing the <F2> or <Delete> key of your keyboard to enter the BIOS/UEFI Firmware of your motherboard.
Then, in the boot selection section of the BIOS/UEFI Firmware of your motherboard, you should find an option to enter the UEFI Interactive Shell.
On my Odyssey X86 single-board computer, the option is in the Save & Exit > UEFI: Built-in EFI Shell, as you can see in the image below.

The option is EFI Internal Shell on my VMware virtual machine, as you can see in the screenshot below.

When you enter the UEFI Interactive Shell for the first time, it will print all the storage devices that your computer detected, as you can see in the screenshot below.

Once you press any key other than <Esc> or wait for 5 seconds, the EFI Shell should be ready to execute commands.

In the next sections, I will show you how to use some of the most common EFI Shell commands. So, let’s move on.
The cls Command:
cls command is mainly used to clear the outputs of the screen.
You may have many texts on the screen, as you can see in the screenshot below.

To clear the texts of the screen, run the cls command as follows:

The texts on your screen should be cleared.

You can also change the background color of the EFI Shell using the cls command.
To change the background color of EFI Shell, run the cls command as follows:
At the time of this writing, the cls command supports the following <color_code>.
0 – Black
1 – Blue
2 – Green
3 – Cyan
4 – Red
5 – Magenta
6 – Yellow
7 – Light Gray
For example, to change the background color to Blue (1), run the cls command as follows:

The background color should be changed to Blue (1), as you can see in the screenshot below.

To change the background color to black, run the cls command as follows:

The background color should be changed to Black (0), as you can see in the screenshot below.

The echo Command:
The echo command is used to print a line of text on the EFI Shell.
For example, to print the text Hello World, run the echo command as follows:

As you can see, the text Hello World is printed on the EFI Shell.

If you wish, you can choose not to use any quotes as well.

The alias Command:
You can list all the command aliases of the EFI Shell with the alias command.
To list all the command aliases of the EFI Shell, run the alias command as follows:

As you can see, all the EFI Shell command aliases are listed.

You can also use the alias command to create or delete aliases.
To create a command alias print_hello that runs the command echo Hello World, you can run the alias command as follows:

As you can see, a new alias print_hello is created.

Now, you can run the print_hello command as follows:

By default, the aliases you create will survive system reboots. That’s a good thing, of course. But if you don’t want your aliases to survive system reboots, you can create a volatile alias using the -v option.
You can create the same alias print_hello as a volatile alias using the -v option as follows:

You can delete an alias using the -d option of the alias command.
To delete the alias print_hello, run the alias command using the -d option as follows:

As you can see, the alias print_hello is removed from the alias list.

The help Command:
The help command is used to find EFI Shell commands using patterns.
For example, to find all the EFI Shell commands that start with m, you can run the help command as follows:

All the EFI Shell commands that start with m are listed, as you can see in the screenshot below.

In the same way, you can find all the EFI Shell commands that end with m as follows:

All the EFI Shell commands that end with m are listed, as you can see in the screenshot below.

You can also learn how to use an EFI Shell command, what options they support, and what each option does use the help command. Finally, you can compare it to the Linux man command.
For example, to learn how to use the alias command, run the help command as follows:

A lot of information about the help command should be displayed.
If the help information of a certain command is very long, you can press the <Page Up> and <Page Down> keys of your keyboard to scroll up and down, respectively.

If the output is way too long, then you will need a pager to read it. Again, you can compare it to the Linux less program. But unlike the Linux less program, the EFI Shell pager scrolls page by page instead of lines.
To use a pager for the help command, use the -b option of the help command as follows:

The usage information of the alias command is displayed in a pager, as you can see in the screenshot below.
You can press <Enter> to go to the next page.
To close the pager, press q and then press <Enter>.

The set Command:
The set command is used to list all the available environment variables of the EFI Shell.
To list all the available environment variables of the EFI Shell, run the set command as follows:

All the environment variables of the EFI Shell are listed, as you can see in the screenshot below.

You can also create your own EFI Shell environment variables.
To create an EFI Shell environment variable file with the content boot.img, run the set command as follows:

The environment variable file is set, as you can see in the screenshot below.

By default, the EFI Shell environment variables you create will survive system reboots. However, you can create volatile EFI Shell environment variables using the set command’s -v option if you don’t want that.
For example, to create the same file environment variable as a volatile environment variable, run the set command as follows:

You can remove EFI Shell environment variables as well.
To remove the EFI Shell environment variable file, run the set command as follows:

The file environment variable should no longer be available, as you can see in the screenshot below.

The map Command:
The map command prints the mapping table of all the storage devices of your computer. From the mapping table, you can find the device name of the storage devices of your computer. To access a storage device from the EFI Shell, you will need the device name of that storage device.
To list all the storage devices of your computer from the EFI Shell, run the map command as follows:

All the storage devices and their name should be listed, as you can see in the screenshot below.

If you insert a new storage device like a USB thumb drive on your computer, it won’t automatically be listed in the mapping table. Instead, you will have to refresh the mapping table manually.
You can refresh the mapping table of the EFI Shell using the -r option of the map command as follows:

The mapping table of the EFI Shell should be refreshed, and your new storage device should be listed in the new mapping table, as you can see in the screenshot below.

The cd and ls Commands:
You can select a storage device using the name of the storage device.
For example, to select the storage device fs1, you can run the following command:

The prompt should be changed to fs1:\> as you can see in the screenshot below.

Now, you can list all the files and directories you have on the storage device fs1 (the current working directory) as follows:

As you can see, all the files and directories of the storage device fs1 are listed.

You can also use relative directory paths with the ls command to list the files and directories of that directory.
For example, to list the files and directories of the scripts\ directory (relative to your current working directory), you can run the ls command as follows:

The files and directories of the scripts\ directory should be listed.
The scripts\ directory is empty in my case.

You can use absolute paths with the ls command as well.
For example, to list all the files and directories of the fs0 storage device, run the ls command as follows:

All the files and directories of the fs0 storage device should be listed, as you can see in the screenshot below.

You can list files and directories recursively using the -r option of the ls command.
For example, to list all the files and directories of the fs0 storage device recursively, run the ls command as follows:

All the files and directories of the fs0 storage device should be listed recursively, as you can see in the screenshot below.

If the file and directory listing is too long to fit on the screen, you can use the -b option of the ls command to use a pager.
You can list all the files and directories of the fs0 storage device recursively and use a pager for the output as follows:

The ls command should use a pager to display the output, as shown in the screenshot below.

You can use the cd command to navigate to a different directory of your selected storage device. This will make your commands shorter as you won’t have to type in long directory paths.
For example, to navigate to the scripts\ directory of the selected storage device fs1, you can run the cd command as follows:

The current working directory should be changed to fs1:\scripts\, as you can see in the screenshot below.

To go back one directory – to the parent directory, you can run the cd command as follows:

You should be one directory upward, as you can see in the screenshot below.

The cp Command:
The cp command is used to copy files from one storage device to another or within the same storage device.
I have a hello.txt file in the storage device fs1, as you can see in the screenshot below.

To make a new copy of hello.txt, run the cp command as follows:

A new file hello2.txt should be created, and the contents of the hello.txt file should be copied to the hello2.txt file.

If you want to copy the hello.txt file to the scripts\ directory on the same storage device using a relative directory path, run the cp command as follows:

As you can see, the hello.txt file is copied into the scripts\ directory.

You can also use an absolute path to copy the hello.txt file to the \scripts directory as follows:

As the file already exists, the cp command will ask you whether you want to overwrite it.
If you want to overwrite the file, press y and then press <Enter>.
If you don’t want to overwrite the file, press n and then press <Enter>.
If you want to overwrite all the files that already exist, press a and then press <Enter>.
If you don’t know what to do, press c and press <Enter> to cancel the copy operation.

The hello.txt file should be copied to the \scripts directory.

In the same way, if you want to copy the hello.txt file to the root directory of another storage device fs0, you can run the cp command as follows:

As you can see, the hello.txt file is copied to the root of the fs0 storage device.

You can also recursively copy the contents of a directory to another directory or storage device using the -r option of the cp command.
To recursively copy the contents of the fs0:\EFI directory to the storage device fs1, run the cp command as follows:

All the files and directories in the fs0:\EFI directory should be copied to the storage device fs1, as you can see in the screenshot below.

As you can see, the ubuntu\ and BOOT\ directories from the fs0:\EFI directory are recursively copied to the fs1 storage device.
Shell > ls fs0:\EFI

If you want to copy the fs0:\EFI directory as well as the contents of that directory to the fs1 storage device, run the cp command as follows:

As you can see, the fs0:\EFI directory is recursively copied to the fs1 storage device.

The mv Command:
The mv command works the same way as the cp command. The only difference is that the mv command moves the files or directories from the source to the destination instead of copying them.
As the mv command and the cp command are similar, I will not explain them here. Just read The cp Command section and replace the cp commands with the mv command. You will be good to go.
There is another use case for the mv command. The mv command is used to rename files and directories as well.
For example, to rename the file hello2.txt to hello3.txt, run the mv command as follows:

The hello2.txt should be renamed to hello3.txt.

As you can see, the hello2.txt file is no longer in the fs1 storage device and was renamed to hello3.txt.

In the same way, you can rename a directory using the mv command.
For example, to rename the directory ubuntu\ to debian\, run the mv command as follows:

As you can see, the ubuntu\ directory is renamed to debian\.

The rm Command:
The rm command is used to remove files and directories from your storage devices.
To remove a file hello3.txt from the fs1 storage device, run the rm command as follows:

The hello3.txt file should be removed.

As you can see, the hello3.txt file is not in the fs1 storage device anymore.

In the same way, you can remove the debian\ directory from the fs1 storage device as follows:

As you’re removing a directory that may contain other files and directories, the rm command asks you whether you want to remove them. This is a safety measure so that you don’t accidentally delete important files.
To confirm the removal operation, press y and then press <Enter>.

The debian\ directory and its contents should be removed.

As you can see, the debian\ directory is not available in the fs1 storage device anymore.

The edit Command:
The EFI Shell comes with a basic text editor program called EFI Editor. It is very useful as you can edit configuration files very easily from the EFI Shell.
You can open the hello.txt file from the fs1 storage device with the EFI Editor program as follows:

The hello.txt file should be opened with the EFI Editor program. You can edit your text/configuration file from here.

Once you’ve edited the hello.txt file, press <F2> followed by <Enter> to save the file.

The file hello.txt should be saved.

To close the EFI Editor program, press <F3>.
If you have unsaved changes, the EFI Editor program will ask you whether you want to save them.
Press y to save the changes and close the EFI Editor program.
Press n to discard the changes and close the EFI Editor program.
Press c if you’ve changed your mind and don’t want to close the EFI Editor program anymore.

The EFI Editor program has many other amazing features. Unfortunately, it is out of the scope of this article to show them all.
You can look at the bottom of the EFI Editor program, and you should find all the information you need to use the other features of the EFI Editor program. In addition, you can compare the EFI Editor program with the nano text editor of Linux. It’s amazing.

The exit Command:
The exit command is used to close the EFI Shell go back to the BIOS/UEFI Firmware of your motherboard.
To close the EFI Shell, run the exit command as follows:

It would be best if you were back to the BIOS/UEFI Firmware of your motherboard, as you can see in the screenshot below.

The reset Command:
The reset command is used to reset or restart your computer.
To restart your computer from the EFI Shell, run the reset command as follows:

The reset command can also be used to shut down your computer.
To shut down your computer from the EFI Shell, run the reset command with the -s option as follows:

Other EFI Shell Commands:
There are many other EFI Shell commands. It is out of the scope of this article to cover them all. But, you can read the EFI Shell documentation[1] to learn about them. You can also use the help command to find out the available EFI Shell commands. You can use the help command to read the documentation of the EFI Shell commands as well. The EFI Shell documentation is very extensive and full of information and examples. It is also very simple and easy to follow. You should not have any trouble reading it.
Output Redirection:
Just like bash and other Linux shells, the EFI Shell also supports output redirection. Thus, you can redirect the output of an EFI Shell command to a file using the output redirection feature of the EFI Shell.
For example, you can redirect the output of the echo “Hello World” command to a file message.txt as follows:

A new file message.txt should be created, as you can see in the screenshot below.

As you can see, it has the content Hello World.

If you want to append (add to the end of a file) the output of another command echo “Good Luck” (let’s say) to the message.txt file, you can use the >> symbol instead of the > symbol as follows:

As you can see, the text Good Luck is added to the end of the message.txt file.

In the same way, you can redirect the output of the help map command to a file map-help.txt as follows:

As you can see, a new file map-help.txt is created.

As you can see, the output of the help map command is redirected to the map-help.txt file.

NOTE: When you do output redirection, you must remember the difference between the > and >> symbol. It is very important. If you don’t have enough knowledge of these symbols, you may lose important data.
Let’s say you’ve run the following command on EFI Shell:
Here, the > symbol will redirect the output of the command to the file. If the file does not exist, it will be created. If the file does exist, the file’s contents will be replaced with the command’s output. This is very important to remember.
Now, let’s say you’ve run the EFI Shell command above using the >> symbol as follows:
Here, the >> symbol will append (add to the end of the file) the command’s output to the file if the file exists. If the file does not exist, it will be created, and the command’s output is added to the file.
So, if the file does not exist, the > and >> symbol will do the same thing – create the file and add the command’s output to the file.
If you have many files on your storage device, it’s not too difficult to make a mistake and lose important data. So, I recommend using the >> symbol instead of the > symbol for output redirection unless you have specific requirements. Then, it will do the same thing. This way, if you make mistakes, you can always remove the extra lines that were appended to the file to go back to the previous state.
Conclusion:
This article shows you how to start the UEFI Interactive Shell and use the common EFI Shell commands. I have also shown you how to use the output redirection feature of the EFI Shell. Finally, I have shown you how to access your computer’s storage devices from the EFI Shell and how to create, copy, move, rename, and edit files from the EFI Shell. This article should help you get started with the UEFI Interactive Shell and EFI Shell commands.
BootDev
Представим ситуацию, что по какой то причине, вместо обычной загрузки операционной системы, перед вами появилась командная строка UEFI Shell, с сообщением «Press ESC in 1 in seconds to skip staurtup.nsh or any other key to continue». Что делать?

Содержание
Возможные Причины
Загрузка в UEFI происходит согласно загрузочным записям. Если в BIOS данные записи представляли просто список имеющихся жестких дисков, то UEFI в данном плане действует по другой схеме. По умолчанию UEFI определяет все диски с таблицей разделов MBR и GPT, с последующим поиском на них разделов отформатированных в поддерживаемую файловую систему. Таковой является FAT(12, 16, 32). Данные диски попадают в загрузочный список. Приоритет загрузки данного списка можно конфигурировать через интерфейс UEFI, или с помощью командной оболочки UEFI Shell.

Каждая загрузочная запись может указывать либо просто на диск, в котором содержится соответствующий FAT-раздел, либо на конкретный *.efi файл. В первом случае UEFI будет искать загрузочный файл по умолчанию. Таковыми, к примеру, являются /EFI/boot/bootx64.efi, /EFI/boot/bootia32.efi, /EFI/boot/bootarm.efi или /EFI/boot/bootaa64.efi. В данном случае указаны файлы boot*.efi предназначены для разных архитектур ПК.

Исполняемые файлы boot*.efi выполняют запуск основного загрузчика операционной системы, таких как Windows Boot Manager, GRUB2, rEFInd, Clover, Xorboot и других. Загрузчик в свою очередь, уже выполняет запуск ядра операционной системы.

Учитывая все сказанное, можно сделать вывод. Раз перед нами красуется UEFI Shell, то значит подсистеме UEFI по какой то причине не удалось найти необходимый загрузочный *.efi файл. Он может быть поврежденным, или просто отсутствовать. Или как говорилось немного выше, может быть просто изменен приоритет загрузочных записей. И последний вариант, просто отсутствует необходимая загрузочная запись.

UEFI Shell — это инструмент управления загрузкой вручную. Если вы не инициировали запуск данной командной оболочки, то это означает, что нужно проверить загрузочную конфигурацию. И не обязательно делать это именно через командную строку. Сперва разбираемся с конфигурацией в меню UEFI. И если результатов нет, то переходим к следующему разделу.
Что Делать в UEFI Shell
Оказавшись в UEFI Shell, первым делом необходимо будет, на удивление, настроить цвета консоли и ее размер. Делается это для того, чтобы избавиться от нечитаемого синего текста на черном фоне. Изменение размера консоли, позволит отображать больше информации. Подправить внешний вид помогут команды cls и mode .
После настройки внешнего вида, необходимо будет просмотреть информацию о загрузочных записях. Эта информация позволит определить, какие загрузочные EFI-приложения должны грузиться, в какой последовательности, и на каких разделах они должны располагаться. Команда bcfg .
Последний шаг, это проверка вручную возможность загрузки с указанного EFI-приложения или диска.
Важным нюансом данного шага, является то, что необходимое EFI-приложение может присутствовать. Но может отсутствовать приложение которое запускается этим приложением. Или оно может быть повреждено.
К примеру, приложение /EFI/Boot/bootx64.efi, указанное в загрузочной записи, запускает /EFI/Microsoft/Boot/bootmgfw.efi, которое запускает приложение выполняющее запуск операционной системы с другого раздела /Windows/System32/Boot/winload.efi.
Если же загрузочная запись указывает просто на диск, то при загрузке с такой записи, на указанном накопителе будет производиться поиск загрузочного EFI-раздела, и в случае его нахождения, поиск на нем загрузочного EFI-приложения по умолчанию (/efi/boot/boot*.efi).
Для такой записи необходимо проверить наличие на диске EFI-раздела, и EFI-приложения расположенного в папке /EFI/boot/. В этом помогут команды map , cd и dir .
Вводим Команды
Все последующие операции будут производиться на виртуальной машине VirtualBox. На виртуальный диск которой, установлено две операционные системы, Windows 10 и Ubuntu 18.10. В качестве основного загрузчика используется GRUB2. Загрузчик Windows Boot Manager, так же присутствует, но не используется.

Не лишним будет, перед началом работы с UEFI Shell, ознакомиться с описанием данной командной оболочки, доступным по этой ссылке https://www.bootdev.ru/2018/05/EFI-Shell.html.
Настройка Консоли
Зададим параметры цвета фона и текста оболочки UEFI Shell. Оптимальными для читабельности, на мой взгляд, являются цвета — серый для фона, и черный для текста.

Доступные варианты цветов можно посмотреть в справке по команде.

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

А уже после, с указанием нужного разрешения.


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

Текущая загрузочная конфигурация состоит из трех записей.
Запись 0 — загрузка с дисковода.
Запись 1 — загрузка с жесткого диска.
Запись 2 — загрузка встроенной командной оболочки UEFI Shell.
Из присутствующих записей, только одна может осуществлять загрузку операционной системы, это запись под номером 1 (по факту вторая). Запоминаем номер диска и его тип из параметра DevPath.

Если имеются проблемы с загрузкой операционной системы, то необходимо проверить, наличие указанного диска, и присутствие на нем EFI-радела и EFI-приложения.
Проверка Наличия EFI-раздела
Все распознанные дисковые (или блочные) устройства можно просмотреть командой map .

Вывод команды, представляет список точек монтирования FS x : и BLK x :, где x это номер.

Точки монтирования начинающиеся с префикса FS (File System), указывают на разделы или диски (в данном случае имеются в виду CD-диски) файловую систему которых подсистема UEFI смогла определить. То есть, с таким разделом/диском можно полноценно работать. Чтение, редактирование, создание, копирование, удаление, перемещение файлов и каталогов.
Точки монтирования начинающиеся с префикса BLK, это разделы или диски (в этом случае, подразумеваются любые диски), файловая система которых неизвестна UEFI. Или это точка монтирования многотомного диска, то есть она указывает на сам диск, а не на его разделы. Каждый раздел этого диска так же будет иметь свою точку монтирования.
Для понимания, ниже, на снимке экрана, отмечены все точки монтирования указывающие на диски (то есть доступ к данным начинается с первого сектора диска).

Все что не отмечено, это разделы отмеченных дисков.
Исключением из правила, что точки монтирования BLK не определяются, так же возможны. А возможны они если к примеру есть точка монтирования FS и BLK указывающие на один и тот же раздел/диск. Ниже, на снимке, отмечены таковые.

Теперь собственно ответ на вопрос, какой из указанных разделов или дисков может являться для подсистемы UEFI загрузочным, то есть может быть EFI-разделом. Таким может быть любая FSx: точка монтирования. Здесь логика проста, если UEFI может прочитать содержимое указанной точки монтирования, то значит возможен поиск загрузчика по умолчанию (тот что располагается в папке /efi/boot/).
В предыдущем разделе, при просмотре загрузочных записей, мы выяснили что загрузочным диском является диск Sata(0x0, 0x0, 0x0). К данному диску относятся следующие записи, отмеченные на снимке ниже.

Понятной в плане файлового доступа, на уровне UEFI, является лишь запись — FS0:. Эта точка монтирования в данном случае, является загрузочным EFI-разделом (по крайней мере для подсистемы UEFI).

Что было бы, если доступных разделов было бы больше одного. При условии что загрузочная запись указывает на диск в целом. В этом случае, загрузка проходила бы в порядке очереди следования разделов. До момента, пока не будет обнаружено *.efi приложение запускаемое по умолчанию. Нам, в этом случае, пришлось бы проверять каждый на наличие соответствующих загрузочных файлов.
Проверка Наличия EFI-приложения
Определившись с разделом, который может выступать в качестве загрузочного, необходимо проверить наличие на нем соответствующих загрузочных файлов. Из прошлого раздела, мы выяснили, что в качестве такого может выступать раздел смонтированный под меткой FS0.

Для удобства восприятия, далее по тексту, метки точек монтирования, я буду называть дисками. По аналогии с дисками операционной системы Windows, буква после которой идет знак двоеточия. UEFI Shell в этом плане, как раз копирует, по своим повадкам в большей степени, именно командную оболочку Windows CMD.
Выполним переход на диск FS0.

Приглашение ввода команд изменится, и будет отображать текущее ваше местоположение в файловой системе. На данный момент это корень диска FS0. Просмотрим его содержимое.

В корне диска, присутствует только каталог EFI. Перейдем в данный каталог и посмотрим что в нем находится.

Внутри каталога EFI находится три подкаталога Boot, Microsoft и ubuntu. Каталог Boot является в данном случае загрузочным по умолчанию. В нем располагаются загрузочные приложения boot*.efi, которые запускаются подсистемой UEFI автоматически. Просмотрим содержимое данного каталога.

Вывод команды показывает, что в каталоге Boot содержится три файла, один из которых bootx64.efi. Данный файл запускается подсистемой UEFI автоматически. Хочу обратить ваше внимание на цвета данных файлов, в выводе команды ls, они зеленые. Это говорит о том, что данные файлы являются исполняемыми, и их можно запустить вручную.
Если сейчас выполнить запуск файла bootx64.efi, то загрузится загрузчик GRUB2.


Каталоги Microsoft и ubuntu, содержат файлы загрузчиков Windows Boot Manager и GRUB2 соответственно.

Для каталога Microsoft, основные файлы загрузчика располагаются в подкаталоге Boot.

Основной загрузчик на данный момент GRUB2. Это означает, что файл /EFI/Boot/bootx64.efi как то использует содержимое каталога /EFI/ubuntu/. Будь то запуск исполняемого файла, либо чтение файла конфигурации. Взглянем внимательно содержимое папок /EFI/Boot/ и /EFI/ubuntu/.

Обратите внимание на файлы shimx64.efi и bootx64.efi, а точнее на их размер. Думаю вы догадались, что данные файлы идентичны. А это означает что, файлу bootx64.efi нет смысла запускать свою копию. Остается два варианта, либо это файл grubx64.efi, что более очевидно исходя из имени файла, либо mmx64.efi. Запустим файл mmx64.efi, чтобы убедиться что это не то приложение.

Ожидания подтвердились, открылся явно не загрузчик GRUB2.
Подведем промежуточный итог. Файл /EFI/Boot/bootx64.efi на само деле является файлом /EFI/ubuntu/shimx64.efi. Приложение /EFI/Boot/bootx64.efi при запуске, вызывает другое приложение, а именно /EFI/ubuntu/grubx64.efi. В последнем можно убедиться, просто переименовав файл /EFI/ubuntu/grubx64.efi, с последующей попыткой загрузки с данного диска.
Что полезного можно извлечь из этой информации? Самое важное, это то, что папка /EFI/ubuntu/ содержит полный набор файлов. Если вдруг по какой либо причине, оригинальный файл /EFI/Boot/bootx64.efi будет удален или поврежден, то его можно будет лего восстановить, простым копированием файла /EFI/ubuntu/shimx64.efi с последующим переименованием в bootx64.efi.
Такое поведение, характерно и для директории /EFI/Microsoft/Boot/. В ней так же содержится все необходимое. Роль файла /EFI/Boot/bootx64.efi будет исполнять /EFI/Microsoft/Boot/bootmgfw.efi. Который в свою очередь будет запускать файл /EFI/Microsoft/Boot/bootmgr.efi. То есть, выполнив такую подмену, вместо загрузчика GRUB2 будет запускаться Windows Boot Manager. Попробуем провести такую подмену.




Windows Boot Manager успешно запустился, и загрузил операционную систему Windows 10.
Чтобы вернуть на место загрузчик GRUB2, достаточно просто удалить (или переименовать) текущий файл /EFI/Boot/bootx64.efi, и переименовать /EFI/Boot/bootx64.efi_ к своему прежнему имени bootx64.efi.

Добавление Загрузочных Записей
При обычных условиях, в моем примере с виртуальной машиной, происходит загрузка исполняемого файла по умолчанию /EFI/Boot/bootx64.efi. Этому способствует загрузочная запись указывающая на диск в целом.

В прошлой главе, для того чтобы вернуть вместо загрузчика GRUB2 загрузчик Windows Boot Manager, приходилось производить файловые манипуляции. Переименование и подмена файла bootx64.efi. Точно такого же результата можно добиться просто добавив загрузочную запись, указывающей на нужный исполняемый файл необходимого загрузчика. Добавим ее.

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

Аналогичным образом можно добавить запуск любой исполняемой программы *.efi. Теперь попробуем переместить добавленную запись. Или иначе говоря, изменить приоритет загрузки. Передвинем нашу запись на третье место.

Взглянем на загрузочное меню.

И последнее что осталось сделать, это удалить добавленную запись.

Смотрим загрузочное меню.

Загрузочная запись полностью удалена.
Важным нюансом является нумерация. Учтите что она начинается с нуля. То есть если речь идет о третей записи по списку, ее номер будет 2.
В данном материале были затронуты следующие вопросы: Что делать если вместо операционной системы загрузилась UEFI Shell? Как работать с UEFI Shell? Как работать с файлами в UEFI Shell? Как восстановить, вернуть прежний загрузчик через UEFI Shell? Как определить загрузочный EFI-раздел? Как работать с загрузочными записями через UEFI Shell? Как добавить загрузочную запись UEFI Shell? Как изменить приоритет загрузочной записи через UEFI Shell? Как удалить загрузочную запись в UEFI Shell? Как выполнить запуск приложений EFI? Как загрузить операционную систему через UEFI Shell?
Думаю это не последняя статья на тему UEFI Shell. В следующих, мы поговорим о загрузке драйверов в UEFI Shell. И установке дополнительного загрузчика через UEFI Shell.
click fraud protection
Материнские платы UEFI нового поколения поставляются с UEFI Interactive Shell. Интерактивная оболочка UEFI — это простая программа-оболочка (например, bash), отвечающая за загрузку вашей операционной системы. Вы также можете использовать интерактивную оболочку UEFI для выполнения команд и сценариев оболочки EFI. Его также можно использовать для обновления системной прошивки материнской платы.
В этой статье показано, как получить доступ к интерактивной оболочке UEFI на материнских платах UEFI и использовать некоторые из распространенных команд EFI в интерактивной оболочке UEFI. Итак, приступим.
Оглавление:
- Что вам нужно знать
- Чтение USB-накопителей из оболочки UEFI
- Запуск интерактивной оболочки UEFI
- Команда cls
- Команда echo
- Псевдоним Command
- Команда помощи
- Команда набора
- Команда карты
- Команды cd и ls
- Команда cp
- Команда mv
- Команда rm
- Команда редактирования
- Команда выхода
- Команда сброса
- Другие команды оболочки EFI
- Перенаправление вывода
- Вывод
- использованная литература
Что вам нужно знать:
Я использовал 2 разных приглашения для написания команд оболочки EFI в этой статье.
Оболочка> — Я использовал это приглашение для команд, которые можно запускать откуда угодно.
fs1: \ *> — Я использовал это приглашение, чтобы уточнить, что вам нужно выбрать определенное устройство хранения (в данном случае fs1) или находиться в определенном каталоге перед запуском команд.
Обязательно помните об этом, пока читаете эту статью.
Чтение USB-накопителей из оболочки UEFI:
Интерактивная оболочка UEFI может читать флэш-накопители USB, если вы отформатируете их как FAT16 или FAT32. Итак, предположим, что вы написали несколько сценариев EFI или загрузили какие-либо сценарии EFI с официального сайта производителя вашей материнской платы. В этом случае вам придется поместить их на флэш-накопитель USB в формате FAT16 или FAT32, чтобы получить доступ и запустить их из интерактивной оболочки UEFI.
Запуск интерактивной оболочки UEFI:
Сначала выключите компьютер. Затем включите компьютер. Сразу после нажатия кнопки питания продолжайте нажимать или клавишу клавиатуры, чтобы войти в прошивку BIOS / UEFI материнской платы.
Затем в разделе выбора загрузки прошивки BIOS / UEFI вашей материнской платы вы должны найти возможность войти в интерактивную оболочку UEFI.
На моем одноплатном компьютере Odyssey X86 эта опция находится в Сохранить и выйти> UEFI: встроенная оболочка EFI, как вы можете видеть на изображении ниже.

На моей виртуальной машине VMware можно использовать внутреннюю оболочку EFI, как вы можете видеть на снимке экрана ниже.

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

После того, как вы нажмете любую клавишу, кроме или подождите 5 секунд, оболочка EFI должна быть готова к выполнению команд.

В следующих разделах я покажу вам, как использовать некоторые из наиболее распространенных команд оболочки EFI. Итак, идем дальше.
Команда cls:
Команда cls в основном используется для очистки выходных данных на экране.
У вас может быть много текстов на экране, как вы можете видеть на скриншоте ниже.

Чтобы очистить тексты на экране, выполните команду cls следующим образом:

Тексты на вашем экране должны быть очищены.

Вы также можете изменить цвет фона оболочки EFI с помощью команды cls.
Чтобы изменить цвет фона оболочки EFI, выполните команду cls следующим образом:
Оболочка > cls < цветовой код >
На момент написания этой статьи команда cls поддерживает следующие .
0 — Чернить
1 — Синий
2 — Зеленый
3 — голубой
4 — Красный
5 — пурпурный
6 — Желтый
7 — Светло-серый
Например, чтобы изменить цвет фона на Синий (1), выполните команду cls следующим образом:
Оболочка > cls 2

Цвет фона должен быть изменен на Синий (1), как вы можете видеть на скриншоте ниже.

Чтобы изменить цвет фона на черный, выполните команду cls следующим образом:
Оболочка > cls 0

Цвет фона должен быть изменен на Черный (0), как вы можете видеть на скриншоте ниже.

Команда эха:
Команда echo используется для печати строки текста в оболочке EFI Shell.
Например, чтобы напечатать текст Hello World, выполните команду echo следующим образом:
Оболочка > эхо «Привет мир»

Как видите, текст Hello World напечатан на оболочке EFI Shell.

При желании вы также можете отказаться от использования кавычек.

Команда псевдонима:
Вы можете перечислить все псевдонимы команд оболочки EFI с помощью команды alias.
Чтобы вывести список всех псевдонимов команд оболочки EFI, выполните команду псевдонима следующим образом:

Как видите, перечислены все псевдонимы команд оболочки EFI.

Вы также можете использовать команду alias для создания или удаления псевдонимов.
Чтобы создать псевдоним команды print_hello, который запускает команду echo Hello World, вы можете запустить команду псевдонима следующим образом:
Оболочка > псевдоним print_hello «эхо, привет мир»

Как видите, создается новый псевдоним print_hello.

Теперь вы можете запустить команду print_hello следующим образом:

По умолчанию созданные вами псевдонимы сохранятся после перезагрузки системы. Конечно, это хорошо. Но если вы не хотите, чтобы ваши псевдонимы пережили перезагрузку системы, вы можете создать изменчивый псевдоним, используя параметр -v.
Вы можете создать тот же псевдоним print_hello, что и изменчивый псевдоним, используя параметр -v следующим образом:
Оболочка > псевдоним -v print_hello «эхо, привет мир»

Вы можете удалить псевдоним, используя параметр -d команды псевдонима.
Чтобы удалить псевдоним print_hello, запустите команду alias с параметром -d следующим образом:
Оболочка > псевдоним -d print_hello

Как видите, псевдоним print_hello удален из списка псевдонимов.

Команда помощи:
Команда help используется для поиска команд оболочки EFI с использованием шаблонов.
Например, чтобы найти все команды оболочки EFI, начинающиеся с m, вы можете запустить команду help следующим образом:
Оболочка > помощь м *

Все команды оболочки EFI, начинающиеся с m, перечислены в списке, как вы можете видеть на снимке экрана ниже.

Таким же образом вы можете найти все команды оболочки EFI, заканчивающиеся на m, следующим образом:
Оболочка > помощь * м

В списке перечислены все команды оболочки EFI, заканчивающиеся на m, как вы можете видеть на снимке экрана ниже.

Вы также можете узнать, как использовать команду EFI Shell, какие параметры они поддерживают и для каких параметров используется команда справки. Наконец, вы можете сравнить это с командой Linux man.
Например, чтобы узнать, как использовать команду псевдонима, запустите команду справки следующим образом:
Оболочка > помощь псевдоним

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

Если вывод слишком длинный, вам понадобится пейджер, чтобы прочитать его. Опять же, вы можете сравнить это с программой Linux less. Но в отличие от программы Linux less, пейджер EFI Shell прокручивает страницу за страницей, а не по строкам.
Чтобы использовать пейджер для команды справки, используйте параметр -b команды справки следующим образом:
Оболочка > помощь -b псевдоним

Информация об использовании команды псевдонима отображается на пейджере, как вы можете видеть на снимке экрана ниже.
Вы можете нажать чтобы перейти на следующую страницу.
Чтобы закрыть пейджер, нажмите q, а затем нажмите .

Команда набора:
Команда set используется для вывода списка всех доступных переменных среды EFI Shell.
Чтобы вывести список всех доступных переменных среды оболочки EFI, выполните команду set следующим образом:

В списке перечислены все переменные среды EFI Shell, как вы можете видеть на снимке экрана ниже.

Вы также можете создать свои собственные переменные среды EFI Shell.
Чтобы создать файл переменной среды EFI Shell с содержимым boot.img, выполните команду set следующим образом:
Оболочка > задавать файл boot.img

Файл переменных среды установлен, как вы можете видеть на скриншоте ниже.

По умолчанию переменные среды EFI Shell, которые вы создаете, выдерживают перезагрузку системы. Однако вы можете создать изменчивые переменные среды EFI Shell, используя параметр -v команды set, если вам это не нужно.
Например, чтобы создать ту же переменную среды файла, что и переменная среды volatile, выполните команду set следующим образом:
Оболочка > задавать -v файл image.boot

Вы также можете удалить переменные среды EFI Shell.
Чтобы удалить файл переменной среды EFI Shell, выполните команду set следующим образом:
Оболочка > задавать -d файл

Переменная файловой среды больше не должна быть доступна, как вы можете видеть на снимке экрана ниже.

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

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

Если вы вставите в компьютер новое запоминающее устройство, например флэш-накопитель USB, оно не будет автоматически отображаться в таблице сопоставления. Вместо этого вам придется обновить таблицу сопоставления вручную.
Вы можете обновить таблицу сопоставления оболочки EFI, используя параметр -r команды map следующим образом:
Оболочка > карта -р

Таблица сопоставления EFI Shell должна быть обновлена, и ваше новое устройство хранения должно быть указано в новой таблице сопоставления, как вы можете видеть на снимке экрана ниже.

Команды cd и ls:
Вы можете выбрать запоминающее устройство, используя имя запоминающего устройства.
Например, чтобы выбрать запоминающее устройство fs1, вы можете выполнить следующую команду:

Приглашение следует изменить на fs1: \>, как вы можете видеть на скриншоте ниже.

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

Как видите, перечислены все файлы и каталоги запоминающего устройства fs1.

Вы также можете использовать относительные пути к каталогам с командой ls для вывода списка файлов и каталогов этого каталога.
Например, чтобы вывести список файлов и каталогов каталога scripts \ (относительно вашего текущего рабочего каталога), вы можете запустить команду ls следующим образом:
fs1: \ > ls скрипты

Должны быть перечислены файлы и каталоги каталога scripts \.
В моем случае каталог scripts \ пуст.

Вы также можете использовать абсолютные пути с командой ls.
Например, чтобы вывести список всех файлов и каталогов на устройстве хранения fs0, выполните команду ls следующим образом:
Оболочка > ls fs0:

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

Вы можете рекурсивно выводить список файлов и каталогов, используя параметр -r команды ls.
Например, чтобы рекурсивно вывести список всех файлов и каталогов устройства хранения fs0, выполните команду ls следующим образом:
Оболочка > ls -р fs0:

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

Если список файлов и каталогов слишком длинный и не помещается на экране, вы можете использовать параметр -b команды ls, чтобы использовать пейджер.
Вы можете рекурсивно перечислить все файлы и каталоги устройства хранения fs0 и использовать пейджер для вывода следующим образом:
Оболочка > ls -р -b fs0:

Команда ls должна использовать пейджер для отображения вывода, как показано на снимке экрана ниже.

Вы можете использовать команду cd для перехода в другой каталог выбранного вами устройства хранения. Это сделает ваши команды короче, так как вам не придется вводить длинные пути к каталогам.
Например, чтобы перейти в каталог scripts \ выбранного запоминающего устройства fs1, вы можете запустить команду cd следующим образом:
fs1: \ > компакт диск скрипты

Текущий рабочий каталог следует изменить на fs1: \ scripts \, как вы можете видеть на скриншоте ниже.

Чтобы вернуться на один каталог — в родительский каталог, вы можете запустить команду cd следующим образом:
fs1: \ scripts > компакт диск ..

Вы должны быть на один каталог вверх, как вы можете видеть на скриншоте ниже.

Команда cp:
Команда cp используется для копирования файлов с одного устройства хранения на другое или внутри одного устройства хранения.
У меня есть файл hello.txt на устройстве хранения fs1, как вы можете видеть на скриншоте ниже.

Чтобы создать новую копию hello.txt, выполните команду cp следующим образом:
fs1: \ > cp hello.txt hello2.txt

Необходимо создать новый файл hello2.txt, а содержимое файла hello.txt скопировать в файл hello2.txt.

Если вы хотите скопировать файл hello.txt в каталог scripts \ на том же устройстве хранения, используя относительный путь к каталогу, выполните команду cp следующим образом:
fs1: \ > cp скрипты hello.txt

Как видите, файл hello.txt скопирован в каталог scripts \.
fs1: \ > ls скрипты

Вы также можете использовать абсолютный путь для копирования файла hello.txt в каталог \ scripts следующим образом:
fs1: \ > cp \ hello.txt \ scripts

Поскольку файл уже существует, команда cp спросит вас, хотите ли вы его перезаписать.
Если вы хотите перезаписать файл, нажмите y, а затем нажмите .
Если вы не хотите перезаписывать файл, нажмите n, а затем нажмите .
Если вы хотите перезаписать все уже существующие файлы, нажмите a, а затем нажмите .
Если вы не знаете, что делать, нажмите c и нажмите для отмены операции копирования.

Файл hello.txt нужно скопировать в каталог \ scripts.

Таким же образом, если вы хотите скопировать файл hello.txt в корневой каталог другого устройства хранения fs0, вы можете запустить команду cp следующим образом:
fs1: \ > cp hello.txt fs0: \

Как видите, файл hello.txt копируется в корень устройства хранения fs0.
Оболочка > ls fs0: \

Вы также можете рекурсивно скопировать содержимое каталога в другой каталог или устройство хранения, используя параметр -r команды cp.
Чтобы рекурсивно скопировать содержимое каталога fs0: \ EFI на устройство хранения fs1, выполните команду cp следующим образом:
Оболочка > cp -р fs0: \ EFI \ fs1: \

Все файлы и каталоги в каталоге fs0: \ EFI должны быть скопированы на устройство хранения fs1, как вы можете видеть на скриншоте ниже.

Как видите, каталоги ubuntu \ и BOOT \ из каталога fs0: \ EFI рекурсивно копируются на устройство хранения fs1.
Оболочка > ls fs0: \ EFI
Оболочка > ls fs1: \

Если вы хотите скопировать каталог fs0: \ EFI, а также содержимое этого каталога на устройство хранения fs1, выполните команду cp следующим образом:
Оболочка > cp -р fs0: \ EFI fs1: \

Как видите, каталог fs0: \ EFI рекурсивно копируется на устройство хранения fs1.
Оболочка > ls fs0: \
Оболочка > ls fs1: \

Команда mv:
Команда mv работает так же, как команда cp. Единственное отличие состоит в том, что команда mv перемещает файлы или каталоги из источника в место назначения, а не копирует их.
Поскольку команда mv и команда cp похожи, я не буду их здесь объяснять. Просто прочтите раздел «Команда cp» и замените команды cp на команду mv. Вам будет хорошо идти.
Есть еще один вариант использования команды mv. Команда mv также используется для переименования файлов и каталогов.
Например, чтобы переименовать файл hello2.txt в hello3.txt, выполните команду mv следующим образом:
fs1: \ > мв hello2.txt hello3.txt

Файл hello2.txt следует переименовать в hello3.txt.

Как видите, файла hello2.txt больше нет на устройстве хранения fs1, и он был переименован в hello3.txt.

Таким же образом вы можете переименовать каталог с помощью команды mv.
Например, чтобы переименовать каталог ubuntu \ в debian \, выполните команду mv следующим образом:
fs1: \ > мв Ubuntu Debian

Как видите, каталог ubuntu \ переименован в debian \.

Команда rm:
Команда rm используется для удаления файлов и каталогов с ваших устройств хранения.
Чтобы удалить файл hello3.txt с устройства хранения fs1, выполните команду rm следующим образом:
fs1: \ > rm hello3.txt

Файл hello3.txt следует удалить.

Как видите, файла hello3.txt больше нет на устройстве хранения fs1.

Таким же образом вы можете удалить каталог debian \ с устройства хранения fs1 следующим образом:
fs1: \ > rm дебиан

Когда вы удаляете каталог, который может содержать другие файлы и каталоги, команда rm спрашивает вас, хотите ли вы их удалить. Это мера безопасности, чтобы вы случайно не удалили важные файлы.
Чтобы подтвердить операцию удаления, нажмите y, а затем нажмите .

Каталог debian \ и его содержимое следует удалить.

Как видите, каталог debian \ больше не доступен на устройстве хранения fs1.

Команда редактирования:
EFI Shell поставляется с базовой программой текстового редактора под названием EFI Editor. Это очень полезно, так как вы можете очень легко редактировать файлы конфигурации из EFI Shell.
Вы можете открыть файл hello.txt с запоминающего устройства fs1 с помощью программы EFI Editor следующим образом:
fs1: \ > редактировать hello.txt

Файл hello.txt следует открыть с помощью программы EFI Editor. Здесь вы можете редактировать текстовый файл / файл конфигурации.

После редактирования файла hello.txt нажмите с последующим чтобы сохранить файл.

Файл hello.txt следует сохранить.

Чтобы закрыть программу EFI Editor, нажмите .
Если у вас есть несохраненные изменения, программа EFI Editor спросит вас, хотите ли вы их сохранить.
Нажмите y, чтобы сохранить изменения и закрыть программу EFI Editor.
Нажмите n, чтобы отменить изменения и закрыть программу EFI Editor.
Нажмите c, если вы передумали и больше не хотите закрывать программу EFI Editor.

Программа EFI Editor имеет много других удивительных функций. К сожалению, это выходит за рамки данной статьи, чтобы показать их все.
Вы можете посмотреть в нижней части программы EFI Editor, и вы должны найти всю информацию, необходимую для использования других функций программы EFI Editor. Кроме того, вы можете сравнить программу EFI Editor с текстовым редактором Nano Linux. Это потрясающе.

Команда выхода:
Команда выхода используется для закрытия оболочки EFI и возврата к прошивке BIOS / UEFI вашей материнской платы.
Чтобы закрыть оболочку EFI, запустите команду выхода следующим образом:

Было бы лучше, если бы вы вернулись к прошивке BIOS / UEFI своей материнской платы, как вы можете видеть на скриншоте ниже.

Команда сброса:
Команда сброса используется для сброса или перезагрузки компьютера.
Чтобы перезагрузить компьютер из оболочки EFI, выполните команду сброса следующим образом:

Команду сброса также можно использовать для выключения компьютера.
Чтобы выключить компьютер из оболочки EFI, выполните команду сброса с параметром -s следующим образом:
Оболочка > перезагрузить -s

Другие команды оболочки EFI:
Есть много других команд оболочки EFI. Все это выходит за рамки данной статьи. Но вы можете прочитать документацию EFI Shell [1], чтобы узнать о них. Вы также можете использовать команду help, чтобы узнать о доступных командах оболочки EFI. Вы также можете использовать команду help, чтобы прочитать документацию по командам EFI Shell. Документация EFI Shell очень обширна и полна информации и примеров. Это также очень просто и легко следовать. У вас не должно возникнуть проблем с его чтением.
Перенаправление вывода:
Как и bash и другие оболочки Linux, оболочка EFI также поддерживает перенаправление вывода. Таким образом, вы можете перенаправить вывод команды EFI Shell в файл, используя функцию перенаправления вывода EFI Shell.
Например, вы можете перенаправить вывод команды echo «Hello World» в файл message.txt следующим образом:
fs1: \ > эхо «Привет мир» > message.txt

Должен быть создан новый файл message.txt, как вы можете видеть на скриншоте ниже.

Как видите, в нем есть контент Hello World.
fs1: \ > редактировать message.txt

Если вы хотите добавить (добавить в конец файла) вывод другой команды echo «Удачи» (скажем) в файл message.txt, вы можете использовать символ >> вместо символа> следующим образом:
fs1: \ > эхо «Удачи» >> message.txt

Как видите, текст Good Luck добавлен в конец файла message.txt.
fs1: \ > редактировать message.txt

Таким же образом вы можете перенаправить вывод команды help map в файл map-help.txt следующим образом:
fs1: \ > помощь карта > map-help.txt

Как видите, создается новый файл map-help.txt.

Как видите, вывод команды help map перенаправляется в файл map-help.txt.
fs1: \ > отредактировать map-help.txt

ПРИМЕЧАНИЕ: Когда вы выполняете перенаправление вывода, вы должны помнить разницу между символами> и >>. Это очень важно. Если вы недостаточно знакомы с этими символами, вы можете потерять важные данные.
Допустим, вы выполнили следующую команду в EFI Shell:
Оболочка > команда > файл
Здесь символ> перенаправит вывод команды в файл. Если файл не существует, он будет создан. Если файл существует, его содержимое будет заменено выводом команды. Об этом очень важно помнить.
Теперь предположим, что вы выполнили указанную выше команду оболочки EFI, используя символ >> следующим образом:
Оболочка > команда >> файл
Здесь символ >> добавит (добавит в конец файла) вывод команды к файлу, если файл существует. Если файл не существует, он будет создан, и выходные данные команды будут добавлены в файл.
Итак, если файл не существует, символы> и >> будут делать то же самое — создать файл и добавить в него выходные данные команды.
Если на вашем устройстве хранения много файлов, несложно ошибиться и потерять важные данные. Поэтому я рекомендую использовать символ >> вместо символа> для перенаправления вывода, если у вас нет особых требований. Затем он сделает то же самое. Таким образом, если вы сделаете ошибку, вы всегда сможете удалить лишние строки, добавленные к файлу, чтобы вернуться в предыдущее состояние.
Вывод:
В этой статье показано, как запустить интерактивную оболочку UEFI и использовать общие команды оболочки EFI. Я также показал вам, как использовать функцию перенаправления вывода EFI Shell. Наконец, я показал вам, как получить доступ к устройствам хранения вашего компьютера из оболочки EFI Shell и как создавать, копировать, перемещать, переименовывать и редактировать файлы из оболочки EFI Shell. Эта статья должна помочь вам начать работу с командами UEFI Interactive Shell и EFI Shell.
Использованная литература:
[1] Справочное руководство по командам оболочки — Intel
[2] Основные инструкции по использованию расширяемого интерфейса микропрограмм (EFI)
Uefi — это операционная система? Efi — это операционная сиcтема? Efi Shell — это операционная система?
после загрузки в Efi Shell операционной системе Efi можно подавать через программу Efi Shell разные команды — например установки операционной системы.
Смущает то что Efi Shell прописывается в загрузке как F:\efi\boot\BOOTX64.efi — Выглядит как отдельная ОС
Все ли верно понято?
BIOS — это операционная система?

ОС выполняет программы внутри себя. UEFI же не выполняет Windows или Linux внутри себя, оно грузит их вместо себя.
Это BIOS с кучей дополнительных опций, не более того.
Та не отдельная ос ефи шел а просто приложение(программа) командная оболочка, такое же как например bash или powershell или python. Uefi с натяжкой можно назвать OS так ка железо она инициализирует драйвера может загружать и приложения специально для нее написанные выполнять. Вот только используют ее обычно только для загрузки драйверов фат и загрузки с фат раздела диска или флешки приложения ,,загрузчика другой ос,, линукса, винды и прочего. Однако есть и другие приложение для uefi. Тестеры памяти, оборудования и пр.

В википедии забанили?
Программа. Просто программа. Если посмотришь любой *.efi в шестнадцатиричном редакторе, то увидишь большое сходство с виндовыми PE-файлами. Например, ЕФИ-шный memtest тоже ЕФИ-файл, и ЕФИ-шелл. Есть и игрушки. И говорят, вирусы.
UEfi — Это операционная система
Раньше это называлось БИОС, сейчас — УЕФИ. Загружает ЕФИ-файлы. Любой ЕФИ-файл прописывается в nvram (то, что ты назвал «прописывается в загрузке»), для этого они и придуманы.

Это же аббревиатуры. В них прямо все и написано, что чем является.
BIOS — Basic Input/Output System
DOS — Disk Operating System
EFI — Extensible Firmware Interface

Короче, тебе нужно сделать на каком-то ином компе или купить установочный носитель с ОС, вроде Windows или Linux, после чего выбрать в UEFI загрузку с этого носителя и поставить ОС на комп, если это и правда новый комп. Всё.

Это BIOS с кучей дополнительных опций, не более того.
Под UEFI можно писать программы. И запускать их в командной строке uefi как в операционной системе.

Да, да… можно сказать, что UEFI подобна MS-DOS, который через loadlin.exe грузит Linux.
Но у нас тут совсем зеленый новичек, который впервые в жизни купил комп без ОС, и не знает, что делать.
Давайте не будем его мучать сложными деталями и подробностями.
Ему нужно просто поставить ОС и всё.
Та ос он поставил, гляньте другую его тему. Судя по всему он ищет повод сдать ноут назад из за отсутствия предустановленной ос

UEFI же не выполняет Windows или Linux внутри себя, оно грузит их вместо себя.
Нет, UEFI грузит программу (будь то загрузчик или ядро операционной системы напрямую). Или даже несколько программ, и даже драйверов. Потому хоть оно формально и не является операционной системой, базовые функции ОС оно таки выполняет.
Мое понимание на актуальный момент:
1.Efi = UEfi — Это операционная система 2.Efi shell … не является операционной системой
А что Вы на актуальный момент понимаете под операционной системой?

самый прикол, на офсайте асера для А315-42 заявлено всего шесть моделей, четыре с десяткой хоум, две с линпус линуксом, что хочет этот пассажир, непонятно.

Оно даже адресацией памяти не управляет после загрузки ОС, о чём ты.
хоть оно формально и не является операционной системой, базовые функции ОС оно таки выполняет.
Функции загрузчика объектных модулей форматов, описанных в спецификации UEFI?
Линукс тоже ец не управляет после загрузки другой ос,
Смотря что ты понимаешь под понятием ОС. В каком-то виде Uefi это специализированная ОС предназначенная для загрузки других осей. Под неё можно писать программы и запускать их через её шел — https://habr.com/ru/post/338264/ https://hsto.org/r/w1560/web/e83/ca1/b1b/e83ca1b1bb4143119c9bf12b5dffc7fa.png.
Ты вторую тему решил создать, потому что в первой не читал что тебе писали?
EFI — не операционная система. Ни полностью, ни частично, ни по определению.
Еще раз, капсом и жирным шрифтом. EFI — НЕ ОПЕРАЦИОННАЯ СИСТЕМА.
EFI — это прошивка материнской платы, интерфейс, прослойка, прокладка, кусок кода, который проверяет что подключено к материнке и запускает настоящую полноценную операционную систему.
Этот интерфейс, прослойку, прокладку, кусок кода можно дополнить другими кусками кода, например шеллом или звуковыми драйверами, или возможностью выйти в интернет, но операционной системой EFI от этого не станет, потому что смотри выше, то что написано капсом и жирным шрифтом.
P.S. А F:\efi\boot\BOOTX64.efi это вообще не EFI, не смотря на то что содержит в себе аж два слова EFI. Это загрузчик нормальной полноценной операционной системы, который эта нормальная полноценная операционная система создаст сама, когда ты ее установишь. И находится он на жестком диске или флешке. Тогда как EFI сама по себе находится на материнке и ей похрен есть ли вообще жесткий диск в компе или нет.
Под любой уважающий себя интерпретатор можно писать программки и запускать их.

Технически да, ефи это ос, но поскольку софта под неё всё равно почти нет, то можешь не воспринимать её в таком ключе.
Ему нужно просто поставить ОС и всё.
Ему нужно ноут поменять по гарантии. А для этого он должен доказать, что EFI — это ОС, или, наоборот, что НЕ ОС, он внятно не объяснил.

Нет, для этого он должен либо вернуть диск и efivars в первозданное послепокупочное состояние из бэкапа, либо наорать на бедного не виноватого продавца.
Он в суд собирается, видимо наорать не получилось.

Странное у человека хобби, ну да ладно.

Это филосовский вопрос уровня «html — это язык программирования?». Зависит от определения.

Чего, зачем в суд? Если не прошло 14 дней, можно и так вернуть, главное чтобы было как при покупке в плане ОС.
Я не знаю в чем там проблема. То ли ТС снес операционку, которая там была, а теперь пытается доказать что UEFI — это и есть операционка, а он ничего не делал. То ли наоборот, с него срубили бабок за операционку, которой в ноуте не оказалось и он теперь пытается доказать что UEFI — не операционка.
Зависит от законов, в России есть перечень технически сложных товаров , которые нельзя вернуть. Ноут в них входит, возврат или по гарантии неисправности или в течении двух недель при покупке через интернет. При покупке в магазине вернуть просто так нельзя, только по доброй воле продовца

Да ему будет быстрее поставить уже ОС на этот ноут.
Ну может у него очень много свободного времени.
Ну если под любой уважающий себя интерпретатор можно писать и запускать бинарные програмки, которые будут работать только через апи этого интерпретатора, то это тоже в некотором виде осЪ. Смотря, какое определение осЪ тебе по душе.
фемка — это человек?

![]()
qtm
Херасе вы тут с ним нянчитесь.
Мне скучно просто)
Linux может загружать другую ос через kexec, значит он не ос?

ОС выполняет программы внутри себя.
Первая ссылка в гугле
drvdiag — Диагностика драйверов UEFI.
бедного не виноватого продавца.
люблю короткие анекдоты.
наконец-то годный троллинг/наброс. свежо и не заезжено до дыр. аффтор пиши исчо )
Давайте по порядку?
Есть две сущности. BIOS и UEFI.
Задача BIOS – произвести полную инициализацию и начальное конфигурирование Вашего компьютера после включения питания. У BIOS есть несколько стадий, но они нам не особо нужны сейчас. Если BIOS компьютера выставлен в Legacy mode, то BIOS произведёт загрузку с устройств, размеченных MBR.
После того, как всё проинициализировано (или Вы вошли в конфигурацию и чего-то там сконфигурировали под свои нужды), начинается стадия UEFI.
UEFI это специализированная операционная система, имеющая свой API и протокол обмена между программами/подсистемами. Исполняемые файлы имеют расширение *.efi . Но нет, она не предназначена для обеспечения работы конечного пользователя устройства, т.е. Вас. Она может либо загрузить некий программный код для специализированных нужд (например, тестирование оборудования при его производстве без установки каких-либо ОС), она может загрузить образ системы того же Linux (или не загрузить его, если Secure Boot против загрузки, например, ключи и подписи не совпали). Загрузка производится с диска, размеченного GPT.
EFI Shell это интерфейс командной строки к самой по себе UEFI. Ну, то есть, в терминах Linux это некий такой урезанный аналог bash. Здесь задача – либо запустить какой-то файл на исполнение, либо провести загрузку какой-то ОС в ручном режиме.
Что UEFI, что BIOS, что модули для UEFI поставляются в виде исполняемого кода (фирмвари). Модули могут так же поставляться отдельно.
Называть UEFI полностью операционной системой нельзя, т.к. несмотря на то, что она таковой является, специфика её распространения и использования такова, что конечный пользователь как правило, не имеет к ней доступа и у него нет софта, который ему может понадобиться для работы с нею. Ну да, писал я как раз утиль для тестирования оборудования посредством модулей UEFI, но это только для производства железа на заводе. Больше ни как. Пользователь даже не знает что это софт на его машине когда-то использовался.
Ну вот, как-то так. Вывод – не стоит это называть именно ОС и упирать на этот факт в суде. По идее, у Вас даже доступа к ней быть не должно в обычных условиях. Точнее, он Вам и не нужен.

Что тут за дичь написана.
UEFI это и есть BIOS на современных материнских платах. Никакого отдельного BIOS на них нет. Роль биоса и выполняет UEFI. При этом UEFI на современных платах обратно совместим с программным интерфейсом BIOS,и потому может работать в режиме совместимости, для загрузчиков и операционных систем не умеющих работать с интерфейсами UEFI.
Добро пожаловать, просвещайтесь https://uefi.org/

Это ты alt=»@» width=»7″ height=»16″ />Vsevolod-linuxoid и alt=»@» width=»7″ height=»16″ />vM объясни. (%
Я лишь писал что UEFI выполняет базовые функции ОС, формально ей не являясь.

По определению самого Intel, которые и разработали первоначальный стандарт EFI для IA32,ставший в последствии UEFI, UEFI — это *программный интерфейс между операционной системой и встроенным в оборудование ПО.
По факту, UEFI — это BIOS на стероидах. Он поддерживает 64-битную адресацию, поддерживает накопители большого объема, благодаря чему может поддерживать работу в графическом режиме и даже множественные устройства ввода,такие как мышь или тач. Может выполнять дополнительные программы, зашитые в пзу, или загружать их с накопителей, которые и реализуют, например shell или secure boot.
BIOS выполнял те же функции, он тоже инициализировал оборудование, обрабатывал прерывания, выполнял загружаемые программы (такие как DOS, например). Но он имел меньший объем возможностей.
по пределению самой интел (автора x86) амд выпускает склейки а не настоящие процессоры))) может уже пора характеризовать вещи по фактам, а не опираться на «авторитеты»?

А у вас за прилавками все еще торгуют зажиточные купцы собственной персоной?

Попробуй дать определение операционной системе не опираясь на авторитеты, а потом доказать, что ты прав.
Определения на то и определения, что их кто-то вводит.

Почитай выше утверждение
Vsevolod-linuxoid , он по большей части прав, но это никак не отменяет моё утверждение.
у каждой вещи есть определённые характеристики, наличие/отсутствие их легко проверяется

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