Что такое uefi shell в биосе

Что такое uefi shell в биосе

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

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

Что такое uefi shell в биосе. Смотреть фото Что такое uefi shell в биосе. Смотреть картинку Что такое uefi shell в биосе. Картинка про Что такое uefi shell в биосе. Фото Что такое uefi shell в биосе

Что такое uefi shell в биосе. Смотреть фото Что такое uefi shell в биосе. Смотреть картинку Что такое uefi shell в биосе. Картинка про Что такое uefi shell в биосе. Фото Что такое uefi shell в биосе

Что такое uefi shell в биосе. Смотреть фото Что такое uefi shell в биосе. Смотреть картинку Что такое uefi shell в биосе. Картинка про Что такое uefi shell в биосе. Фото Что такое uefi shell в биосе

Что такое uefi shell в биосе. Смотреть фото Что такое uefi shell в биосе. Смотреть картинку Что такое uefi shell в биосе. Картинка про Что такое uefi shell в биосе. Фото Что такое uefi 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 либо аналоги.

Что такое uefi shell в биосе. Смотреть фото Что такое uefi shell в биосе. Смотреть картинку Что такое uefi shell в биосе. Картинка про Что такое uefi shell в биосе. Фото Что такое uefi shell в биосе

Источник

Что такое Launch efi shell from filesystem device?

Обычно данный пункт настроек BIOS можно встретить на материнских платах, поддерживающих загрузку в UEFI (EFI) режиме. Почти всегда он находится на вкладке Exit (Safe & Exit).

Что такое uefi shell в биосе. Смотреть фото Что такое uefi shell в биосе. Смотреть картинку Что такое uefi shell в биосе. Картинка про Что такое uefi shell в биосе. Фото Что такое uefi shell в биосе

Пункт “launch efi shell from filesystem device” на платах Asus

Отличия BIOS и UEFI

BIOS является базовой системой ввода/вывода, которая запускается еще до загрузки операционной системы. Те, кто имеет хоть какой – то опыт в настройке компьютеров прекрасно знает как он выглядит:

Что такое uefi shell в биосе. Смотреть фото Что такое uefi shell в биосе. Смотреть картинку Что такое uefi shell в биосе. Картинка про Что такое uefi shell в биосе. Фото Что такое uefi shell в биосе

Внешний вид настроек BIOS

UEFI, что расшифровывается как Unified Extensible Firmware Interface, является следующим этапом развития базовых управляющих интерфейсов материнских плат. У него, по сравнению с BIOS, есть ряд преимуществ:

Что делает пункт Launch efi shell from filesystem device?

Перевод данной фразы на русский язык звучит так: запуск EFI оболочки с файловой системы внешнего устройства. Под внешним устройством следует понимать флешку, CD/DVD диск, жесткий диск и т.д.

Штатные BIOS/UEFI материнской платы всегда располагаются на отдельной микросхеме памяти, находящейся недалеко от батарейки.

Иногда появляется необходимость в запуске сторонней оболочки EFI, например для установки операционной системы Linux. Для этого создается загрузочная флешка, на которую помещаются не только установочные файлы, но и сам EFI загрузчик.

Вставив эту флешку в USB порт и выбрав пункт Launch efi shell from filesystem device в биосе, осуществляется ее запуск.

Что такое uefi shell в биосе. Смотреть фото Что такое uefi shell в биосе. Смотреть картинку Что такое uefi shell в биосе. Картинка про Что такое uefi shell в биосе. Фото Что такое uefi shell в биосе

Вот так выглядит запущенная оболочка EFI Shell

Источник

Настройка UEFI-загрузчика. Самое краткое руководство в мире

Как устроена загрузка современных ОС? Как при установке системы настроить загрузку посредством UEFI, не утонув в руководствах и ничего не сломав?

Я обещал «самое краткое руководство». Вот оно:

TL;DR не надо прописывать путь к загрузчику в новых загрузочных записях UEFI — надо файл загрузчика расположить по стандартному «пути по-умолчанию», где UEFI его найдет, и вместо загрузочного меню UEFI пользоваться меню загрузчика, которое гораздо проще и безопаснее настраивается

Как делать не надо

Есть, на самом-то деле, несколько способов настроить UEFI-загрузку. Я начну с описания других вариантов — чтобы было понятно, как (и почему) делать не надо. Если вы пришли за руководством — мотайте в самый низ.

Не надо лезть в NVRAM и трогать efivars

Наиболее «популярная» процедура установки загрузчика в систему такова: установщик ОС создаёт специальный раздел, на нём — структуру каталогов и размещает файлы загрузчика. После этого он с помощью особой утилиты (efibootmgr в linux, bcdedit в windows) взаимодействует с прошивкой UEFI-чипа, добавляя в неё загрузочную запись. В этой записи указывается путь к файлу загрузчика (начиная от корня файловой системы) и при необходимости — параметры. После этого в загрузочном меню компьютера появляется опция загрузки ОС. Для linux существует возможность вообще обойтись без загрузчика. В загрузочной записи указывается путь сразу к ядру вместе со всеми параметрами. Ядро должно быть скомпилировано с опцией EFISTUB (что давно является стандартом для большинства дистрибутивов), в этом случае оно содержит в себе заголовок «исполняемого файла EFI», позволяющий прошивке его запускать без внешнего загрузчика.

При старте системы, когда пользователь выбирает нужную ему загрузочную запись, прошивка UEFI сперва ищет на прописанном в этой записи диске особый EFI-раздел, обращается к файловой системе на этом разделе (обязательно FAT или FAT32), и запускает загрузчик. Загрузчик считывает из файла настроек свой конфиг, и либо грузит ОС, либо предоставляет загрузочное меню. Ничего не замечаете? Да, у нас два загрузочных меню — одно на уровне прошивки чипа UEFI, другое — на уровне загрузчика. В реальности о существовании второго пользователи могут даже не догадываться — если в меню всего один пункт, загрузчик Windows начинает его грузить без лишних вопросов. Увидеть экран с этим меню можно, если поставить вторую копию Windows или просто криво её переустановить.

Обычно для управления загрузочными записями руководства в интернете предлагают взаимодействовать с прошивкой UEFI. Есть аж пять основных вариантов, как это можно сделать: efibootmgr под linux, bcdedit в windows, какая-то софтина на «Маках», команда bcfg утилиты uefi shell (запускается из-под UEFI, «на голом железе» и без ОС, поскольку скомпилирована в том самом особом формате) и для особо качественных прошивок — графическими средствами UEFI (говоря популярным языком, «в настройках BIOS»).

За всеми вышенаписанными «многобуков» вы могли легко упустить такую мысль: пользователь, чтобы изменить настройки программной части (например, добавить параметр запуска ОС), вынужден перезаписывать flash-память микросхемы на плате. Есть ли тут подводные камни? О да! Windows иногда способна сделать из ноутбука кирпич, linux тоже, причём разными способами. Качество прошивок часто оставляет желать лучшего — стандарты UEFI либо реализованы криво, либо не реализованы вообще. По логике, прошивка обязана переживать полное удаление всех переменных efivars без последствий, не хранить в них критичных для себя данных и самостоятельно восстанавливать значения по-умолчанию — просто потому что пользователь имеет к ним доступ, и вероятность их полного удаления далека от нуля. Я лично в процессе экспериментов неоднократно (к счастью, обратимо) «кирпичил» свой Lenovo — из загрузочного меню исчезали все пункты, включая опцию «зайти в настройки».

Работа с загрузочными записями UEFI — тоже не сахар. К примеру, утилита efibootmgr не имеет опции «редактировать существующую запись». Если ты хочешь немного изменить параметр ядра — ты удаляешь запись целиком и добавляешь её снова, уже измененную. При этом строка содержит в себе двойные и одинарные кавычки, а также прямые и обратные слеши в не особо очевидном порядке. Когда я наконец заставил эту магию работать — я сохранил её в виде bash-скриптов, которые до сих пор валяются у меня в корневой ФС:

Не надо использовать GRUB

Это чёртов мастодонт, 90% функциональности которого предназначено для дисков с MBR. Для настройки необходимо отредактировать ряд файлов, после чего выполнить команду генерации конфига. На выходе получается огромная малопонятная нормальному человеку простыня. В составе — гора исполняемых файлов. Ставится командой, которую просто так из головы не возьмешь — надо обязательно лезть в документацию

Для сравнения — самый простенький UEFI-bootloader, который есть в составе пакета systemd, ставится командой

Эта команда делает ровно две вещи: копирует исполняемый файл загрузчика на EFI-раздел и добавляет свою загрузочную запись в прошивку. А конфиг для неё занимает ровно СЕМЬ строчек.

«Самое краткое руководство» — чуть более подробно

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

Загрузочная запись нам не нужна — дело в том, что при выставлении в настройках BIOS загрузки с диска прошивка UEFI сначала ищет на нём EFI-раздел, а затем пытается исполнить файл по строго фиксированному адресу на этом разделе: /EFI/Boot/BOOTX64.EFI

Что такое «EFI-раздел»? В теории, он должен иметь особый тип «EFI System» (ef00). На практике, годится первый раздел на GPT-диске, отформатированный в FAT32 и имеющий достаточно места, чтобы разместить загрузчик и вспомогательные файлы (если есть).

Пункт 3: «Скачиваем из интернета любой UEFI-загрузчик». Что это значит? Загрузчик — это просто исполняемый файл определенного формата, к которому в комплекте идет конфиг. К примеру, если у вас есть под рукой установленный пакет с systemd — файл загрузчика можно найти по адресу /usr/lib/systemd/boot/efi/systemd-bootx64.efi, переименовать его в bootx64.efi и скопировать в /EFI/Boot/ на EFI-разделе. Нет под рукой systemd? Скачайте архив с сайта Archlinux. Или с репозитария Ubuntu. Или Debian. Есть под рукой система с Windows? Возьмите виндовый загрузчик оттуда, тоже сгодится )) Если сумеете настроить, я честно говоря не пробовал.

Пункт 4: «Настроить конфиг». Как и обычная программа, когда загрузчик запускается — он ожидает найти по определенным путям файлы конфигурации. Обычно эту информацию легко найти в интернете. Для загрузчика systemd-boot нам необходимо в корне EFI-раздела создать каталог «loader», а в нём файл «loader.conf» с тремя строчками (привожу свои):

Параметр editor отвечает за возможность отредактировать пункт загрузочного меню перед запуском.

Рядом с loader.conf необходимо создать каталог entries — один файл в нём будет отвечать за одну загрузочную запись в boot-меню. У меня там один файл arch.conf с таким содержанием:

Я не упомянул, но довольно очевидно — ядро и initramfs должны лежать в одной файловой системе с загрузчиком, то есть на EFI-разделе. Пути к ним в конфигах отсчитываются от корня этой ФС.

Другие загрузчики

systemd-boot очень простой и предоставляет спартанского вида чёрно-белое меню. Есть варианты красивей, если душа просит красоты.

rEFind — очень красивый загрузчик. Скачать можно тут в виде deb-пакета. Использую на своём ноуте. Умеет создавать загрузочное меню автоматически, без конфига — просто сканируя файлы.

Clover. Позволяет выставлять нативное разрешение экрана, имеет поддержку мыши на экране загрузки, разные темы оформления. Дефолтная тема ужасна, конфиг в виде xml нечитаем, настроить не смог.

Различные неочевидные последствия

Вы можете легко попробовать эту схему в работе. Берёте USB-флешку, форматируете в таблицу разделов GPT, создаете FAT-раздел и копируете туда загрузчик. Комп сможет с неё стартовать.

Если просто скопировать на такую флешку boot-раздел установленного linux — система будет спокойно загружаться с флешки, не видя разницы.

Источник

BootDev

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

Страницы

2018-05-23

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

Что такое uefi shell в биосе. Смотреть фото Что такое uefi shell в биосе. Смотреть картинку Что такое uefi shell в биосе. Картинка про Что такое uefi shell в биосе. Фото Что такое uefi 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:

Что такое uefi shell в биосе. Смотреть фото Что такое uefi shell в биосе. Смотреть картинку Что такое uefi shell в биосе. Картинка про Что такое uefi shell в биосе. Фото Что такое uefi shell в биосе

Что такое uefi shell в биосе. Смотреть фото Что такое uefi shell в биосе. Смотреть картинку Что такое uefi shell в биосе. Картинка про Что такое uefi shell в биосе. Фото Что такое uefi shell в биосе

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

1.6.3 Псевдонимы

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

Что такое uefi shell в биосе. Смотреть фото Что такое uefi shell в биосе. Смотреть картинку Что такое uefi shell в биосе. Картинка про Что такое uefi shell в биосе. Фото Что такое uefi shell в биосе

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

Что такое uefi shell в биосе. Смотреть фото Что такое uefi shell в биосе. Смотреть картинку Что такое uefi shell в биосе. Картинка про Что такое uefi shell в биосе. Фото Что такое uefi shell в биосе

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

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

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

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

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

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

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

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

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

Что такое uefi shell в биосе. Смотреть фото Что такое uefi shell в биосе. Смотреть картинку Что такое uefi shell в биосе. Картинка про Что такое uefi shell в биосе. Фото Что такое uefi shell в биосе

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

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

Источник

BootDev

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

Страницы

2018-10-29

UEFI Shell: Что делать если не загружается ОС

Представим ситуацию, что по какой то причине, вместо обычной загрузки операционной системы, перед вами появилась командная строка UEFI Shell, с сообщением «Press ESC in 1 in seconds to skip staurtup.nsh or any other key to continue». Что делать?

Что такое uefi shell в биосе. Смотреть фото Что такое uefi shell в биосе. Смотреть картинку Что такое uefi shell в биосе. Картинка про Что такое uefi shell в биосе. Фото Что такое uefi shell в биосе

Содержание

Возможные Причины

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

Что такое uefi shell в биосе. Смотреть фото Что такое uefi shell в биосе. Смотреть картинку Что такое uefi shell в биосе. Картинка про Что такое uefi shell в биосе. Фото Что такое uefi shell в биосе

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

Что такое uefi shell в биосе. Смотреть фото Что такое uefi shell в биосе. Смотреть картинку Что такое uefi shell в биосе. Картинка про Что такое uefi shell в биосе. Фото Что такое uefi shell в биосе

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

Что такое uefi shell в биосе. Смотреть фото Что такое uefi shell в биосе. Смотреть картинку Что такое uefi shell в биосе. Картинка про Что такое uefi shell в биосе. Фото Что такое uefi shell в биосе

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

Что такое uefi shell в биосе. Смотреть фото Что такое uefi shell в биосе. Смотреть картинку Что такое uefi shell в биосе. Картинка про Что такое uefi shell в биосе. Фото Что такое uefi shell в биосе

Что Делать в UEFI Shell

Последний шаг, это проверка вручную возможность загрузки с указанного EFI-приложения или диска.

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

К примеру, приложение /EFI/Boot/bootx64.efi, указанное в загрузочной записи, запускает /EFI/Microsoft/Boot/bootmgfw.efi, которое запускает приложение выполняющее запуск операционной системы с другого раздела /Windows/System32/Boot/winload.efi.

Если же загрузочная запись указывает просто на диск, то при загрузке с такой записи, на указанном накопителе будет производиться поиск загрузочного EFI-раздела, и в случае его нахождения, поиск на нем загрузочного EFI-приложения по умолчанию (/efi/boot/boot*.efi).

Вводим Команды

Все последующие операции будут производиться на виртуальной машине VirtualBox. На виртуальный диск которой, установлено две операционные системы, Windows 10 и Ubuntu 18.10. В качестве основного загрузчика используется GRUB2. Загрузчик Windows Boot Manager, так же присутствует, но не используется.

Что такое uefi shell в биосе. Смотреть фото Что такое uefi shell в биосе. Смотреть картинку Что такое uefi shell в биосе. Картинка про Что такое uefi shell в биосе. Фото Что такое uefi shell в биосе

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

Настройка Консоли

Что такое uefi shell в биосе. Смотреть фото Что такое uefi shell в биосе. Смотреть картинку Что такое uefi shell в биосе. Картинка про Что такое uefi shell в биосе. Фото Что такое uefi shell в биосе

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

Что такое uefi shell в биосе. Смотреть фото Что такое uefi shell в биосе. Смотреть картинку Что такое uefi shell в биосе. Картинка про Что такое uefi shell в биосе. Фото Что такое uefi shell в биосе

Что такое uefi shell в биосе. Смотреть фото Что такое uefi shell в биосе. Смотреть картинку Что такое uefi shell в биосе. Картинка про Что такое uefi shell в биосе. Фото Что такое uefi shell в биосе

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

Что такое uefi shell в биосе. Смотреть фото Что такое uefi shell в биосе. Смотреть картинку Что такое uefi shell в биосе. Картинка про Что такое uefi shell в биосе. Фото Что такое uefi shell в биосе

Что такое uefi shell в биосе. Смотреть фото Что такое uefi shell в биосе. Смотреть картинку Что такое uefi shell в биосе. Картинка про Что такое uefi shell в биосе. Фото Что такое uefi shell в биосе

Вывод Загрузочных Записей

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

Что такое uefi shell в биосе. Смотреть фото Что такое uefi shell в биосе. Смотреть картинку Что такое uefi shell в биосе. Картинка про Что такое uefi shell в биосе. Фото Что такое uefi shell в биосе

Текущая загрузочная конфигурация состоит из трех записей.

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

Что такое uefi shell в биосе. Смотреть фото Что такое uefi shell в биосе. Смотреть картинку Что такое uefi shell в биосе. Картинка про Что такое uefi shell в биосе. Фото Что такое uefi shell в биосе

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

Проверка Наличия EFI-раздела

Что такое uefi shell в биосе. Смотреть фото Что такое uefi shell в биосе. Смотреть картинку Что такое uefi shell в биосе. Картинка про Что такое uefi shell в биосе. Фото Что такое uefi shell в биосе

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

Что такое uefi shell в биосе. Смотреть фото Что такое uefi shell в биосе. Смотреть картинку Что такое uefi shell в биосе. Картинка про Что такое uefi shell в биосе. Фото Что такое uefi shell в биосе

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

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

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

Что такое uefi shell в биосе. Смотреть фото Что такое uefi shell в биосе. Смотреть картинку Что такое uefi shell в биосе. Картинка про Что такое uefi shell в биосе. Фото Что такое uefi shell в биосе

Все что не отмечено, это разделы отмеченных дисков.

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

Что такое uefi shell в биосе. Смотреть фото Что такое uefi shell в биосе. Смотреть картинку Что такое uefi shell в биосе. Картинка про Что такое uefi shell в биосе. Фото Что такое uefi shell в биосе

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

В предыдущем разделе, при просмотре загрузочных записей, мы выяснили что загрузочным диском является диск Sata(0x0, 0x0, 0x0). К данному диску относятся следующие записи, отмеченные на снимке ниже.

Что такое uefi shell в биосе. Смотреть фото Что такое uefi shell в биосе. Смотреть картинку Что такое uefi shell в биосе. Картинка про Что такое uefi shell в биосе. Фото Что такое uefi shell в биосе

Что такое uefi shell в биосе. Смотреть фото Что такое uefi shell в биосе. Смотреть картинку Что такое uefi shell в биосе. Картинка про Что такое uefi shell в биосе. Фото Что такое uefi shell в биосе

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

Проверка Наличия EFI-приложения

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

Что такое uefi shell в биосе. Смотреть фото Что такое uefi shell в биосе. Смотреть картинку Что такое uefi shell в биосе. Картинка про Что такое uefi shell в биосе. Фото Что такое uefi shell в биосе

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

Выполним переход на диск FS0.

Что такое uefi shell в биосе. Смотреть фото Что такое uefi shell в биосе. Смотреть картинку Что такое uefi shell в биосе. Картинка про Что такое uefi shell в биосе. Фото Что такое uefi shell в биосе

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

Что такое uefi shell в биосе. Смотреть фото Что такое uefi shell в биосе. Смотреть картинку Что такое uefi shell в биосе. Картинка про Что такое uefi shell в биосе. Фото Что такое uefi shell в биосе

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

Что такое uefi shell в биосе. Смотреть фото Что такое uefi shell в биосе. Смотреть картинку Что такое uefi shell в биосе. Картинка про Что такое uefi shell в биосе. Фото Что такое uefi shell в биосе

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

Что такое uefi shell в биосе. Смотреть фото Что такое uefi shell в биосе. Смотреть картинку Что такое uefi shell в биосе. Картинка про Что такое uefi shell в биосе. Фото Что такое uefi shell в биосе

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

Если сейчас выполнить запуск файла bootx64.efi, то загрузится загрузчик GRUB2.

Что такое uefi shell в биосе. Смотреть фото Что такое uefi shell в биосе. Смотреть картинку Что такое uefi shell в биосе. Картинка про Что такое uefi shell в биосе. Фото Что такое uefi shell в биосе

Что такое uefi shell в биосе. Смотреть фото Что такое uefi shell в биосе. Смотреть картинку Что такое uefi shell в биосе. Картинка про Что такое uefi shell в биосе. Фото Что такое uefi shell в биосе

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

Что такое uefi shell в биосе. Смотреть фото Что такое uefi shell в биосе. Смотреть картинку Что такое uefi shell в биосе. Картинка про Что такое uefi shell в биосе. Фото Что такое uefi shell в биосе

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

Что такое uefi shell в биосе. Смотреть фото Что такое uefi shell в биосе. Смотреть картинку Что такое uefi shell в биосе. Картинка про Что такое uefi shell в биосе. Фото Что такое uefi shell в биосе

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

Что такое uefi shell в биосе. Смотреть фото Что такое uefi shell в биосе. Смотреть картинку Что такое uefi shell в биосе. Картинка про Что такое uefi shell в биосе. Фото Что такое uefi shell в биосе

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

Что такое uefi shell в биосе. Смотреть фото Что такое uefi shell в биосе. Смотреть картинку Что такое uefi shell в биосе. Картинка про Что такое uefi shell в биосе. Фото Что такое uefi shell в биосе

Ожидания подтвердились, открылся явно не загрузчик 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. Попробуем провести такую подмену.

Что такое uefi shell в биосе. Смотреть фото Что такое uefi shell в биосе. Смотреть картинку Что такое uefi shell в биосе. Картинка про Что такое uefi shell в биосе. Фото Что такое uefi shell в биосе

Что такое uefi shell в биосе. Смотреть фото Что такое uefi shell в биосе. Смотреть картинку Что такое uefi shell в биосе. Картинка про Что такое uefi shell в биосе. Фото Что такое uefi shell в биосе

Что такое uefi shell в биосе. Смотреть фото Что такое uefi shell в биосе. Смотреть картинку Что такое uefi shell в биосе. Картинка про Что такое uefi shell в биосе. Фото Что такое uefi shell в биосе

Что такое uefi shell в биосе. Смотреть фото Что такое uefi shell в биосе. Смотреть картинку Что такое uefi shell в биосе. Картинка про Что такое uefi shell в биосе. Фото Что такое uefi shell в биосе

Windows Boot Manager успешно запустился, и загрузил операционную систему Windows 10.

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

Что такое uefi shell в биосе. Смотреть фото Что такое uefi shell в биосе. Смотреть картинку Что такое uefi shell в биосе. Картинка про Что такое uefi shell в биосе. Фото Что такое uefi shell в биосе

Добавление Загрузочных Записей

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

Что такое uefi shell в биосе. Смотреть фото Что такое uefi shell в биосе. Смотреть картинку Что такое uefi shell в биосе. Картинка про Что такое uefi shell в биосе. Фото Что такое uefi shell в биосе

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

Что такое uefi shell в биосе. Смотреть фото Что такое uefi shell в биосе. Смотреть картинку Что такое uefi shell в биосе. Картинка про Что такое uefi shell в биосе. Фото Что такое uefi shell в биосе

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

Что такое uefi shell в биосе. Смотреть фото Что такое uefi shell в биосе. Смотреть картинку Что такое uefi shell в биосе. Картинка про Что такое uefi shell в биосе. Фото Что такое uefi shell в биосе

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

Что такое uefi shell в биосе. Смотреть фото Что такое uefi shell в биосе. Смотреть картинку Что такое uefi shell в биосе. Картинка про Что такое uefi shell в биосе. Фото Что такое uefi shell в биосе

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

Что такое uefi shell в биосе. Смотреть фото Что такое uefi shell в биосе. Смотреть картинку Что такое uefi shell в биосе. Картинка про Что такое uefi shell в биосе. Фото Что такое uefi shell в биосе

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

Что такое uefi shell в биосе. Смотреть фото Что такое uefi shell в биосе. Смотреть картинку Что такое uefi shell в биосе. Картинка про Что такое uefi shell в биосе. Фото Что такое uefi shell в биосе

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

Что такое uefi shell в биосе. Смотреть фото Что такое uefi shell в биосе. Смотреть картинку Что такое uefi shell в биосе. Картинка про Что такое uefi shell в биосе. Фото Что такое uefi shell в биосе

Загрузочная запись полностью удалена.

Важным нюансом является нумерация. Учтите что она начинается с нуля. То есть если речь идет о третей записи по списку, ее номер будет 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.

Источник

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

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