Как установить windows через uefi shell

BootDev

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

Страницы

2018-11-16

Загрузочная флешка с UEFI Shell

Содержание

Подготовка Флешки

Можно обойтись и без форматирования. Главное чтобы на флешке был раздел отформатированный в файловую систему FAT32. Замечу, что в Windows 10 последних редакций, отсутствует ограничение на создание только одного раздела на USB-флешках.

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

Скачиваем UEFI Shell

Скачать Clover можно по тут https://sourceforge.net/projects/cloverefiboot/files/Bootable_ISO/. На странице по ссылке качаем последнюю версию архива.

Загрузочная Флешка с Shell.efi

Открываем флешку, после подготовки. Копируем скачанный файл Shell.efi по пути /EFI/boot. Последовательность данных каталогов нужно создать.

Переименовываем скопированный файл в boot * .efi. Вместо звездочки вписываем архитектуру скачанного файла x64 , ia32 , arm или aa64 . Должно получиться что то подобное boot x64 .efi, boot ia32 .efi, boot arm .efi или boot aa64 .efi.

Можно сделать и универсальный вариант. Разместить Shell.efi файлы всех архитектур, переименовав их в соответствующие имена. В таких условиях флешка будет грузиться на любой из архитектур, файлы которых расположены в папке /EFI/boot.

Проверим флешку в виртуальной машине.

Загрузочная Флешка с Clover

Открываем скачанный ISO-образ с загрузчиком. Для этих целей хорошо подойдет 7-Zip.

Извлекаем содержимое ISO-образа в корень флешки.

Проверяем на виртуальной машине.

Загрузочная Флешка с rEFInd

Открываем скачанный архив с загрузчиком. Для этих целей хорошо подойдет 7-Zip.

Извлекаем содержимое архива в корень флешки.

Проверяем на виртуальной машине.

Для Чего Нужна Флешка с Загрузчиком

Загрузочная флешка с Clover или rEFInd может помочь при различных ситуациях.

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

Ситуация 2 . У вас был установлен дистрибутив Linux, с загрузчиком GRUB2. Вы решили установить второй операционной системой Windows. После установки загрузчик Windows перезаписал загрузчик GRUB2 и установленный Linux больше не доступен для загрузки. В данной ситуации загрузившись с флешки с загрузчиком, вы сможете загрузить установленный Linux, и уже через него вернуть загрузчик GRUB2 обратно. GRUB2 в свою очередь определит установленный Windows, и позволит грузить обе операционные системы.

Ситуация 3 . На используемой материнской плате отсутствует UEFI Shell. А вам он необходим, для установки специального драйвера в автозагрузку (такое обычно делают на системах с процессорами Xeon для увеличения быстродействия), или добавления новой загрузочной записи.

Вопросы рассмотренные в данном материале: Как создать загрузочную флешку с UEFI Shell? Где скачать UEFI Shell? Как установить Clover на флешку? Как установить rEFInd на флешку? Как можно использовать загрузочную флешку с UEFI Shell?

В заключении приведу пару полезных ссылок. Описание командной оболочки UEFI Shell, смотрим тут. Решение проблемы загрузки ОС с помощью UEFI Shell, описано здесь. Загрузка и установка драйверов в UEFI Shell, рассмотрена тут.

Как установить windows через uefi shell

В чем преимущества UEFI перед BIOS?

  • Более быстрая загрузка за счет отсутствия необходимости поиска загрузчика на всех дисках
  • Поддержка носителей объемом >2Тб
  • Более простая подготовка загрузочных носителей, отсутствие необходимости в записи разных загрузочных секторов
  • Наличие собственного менеджера загрузки. Теперь необязательно заводить многоуровневую чехарду загрузчиков, чтобы организовать мультизагрузочную среду, в EFI NVRAM штатно хранятся все записи о имеющихся загрузчиках, и переключение между загружаемыми ОС осуществляется так же, как и между загрузочными носителями.
  • Более защищенная среда загрузки
  • Графический режим конфигурации UEFI, с поддержкой графики и мыши

Сообщение отредактировал saintonotole — 01.06.13, 17:59

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

Сообщение отредактировал saintonotole — 01.06.13, 16:37

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

Выбор, что грузить, если на носителе есть и бутсектор, и efi-загрузчик

Сообщение отредактировал saintonotole — 16.06.13, 18:52

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

Сообщение отредактировал saintonotole — 01.06.13, 16:38

В чем преимущества GPT перед MBR?

  • Поддержка носителей объемом >2.2Тб
  • Отсутствие ограничения на 4 основных раздела, и как следствие-отсутствие необходимости в логических разделах
  • Повышенная безопасность-GPT хранит резервную копию таблицы разделов в конце диска, поэтому в случае неполадок существует возможность восстановления разметки при помощи запасной таблицы.
  • Защита от повреждения устаревшими программами посредством Protective MBR
  • Существует возможность использования старых загрузочных секторов.

Сообщение отредактировал saintonotole — 08.06.13, 18:32

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

Сообщение отредактировал saintonotole — 01.06.13, 16:38

Возможно ли сконвертировать диск из 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 либо аналоги.

Сообщение отредактировал Shoore — 21.05.14, 22:22

Что такое UEFI Shell?
Это среда работы с окружением EFI (терминалоподобная), позволяющая на ходу запускать efi-совместимые загрузчики, выполнять простейшие операции с файлами, а также оперировать встроенным менеджером загрузки. Взять можно тут: https://github.com/tia…/ShellBinPkg/UefiShell
Основные команды тут: http://software.intel.com/en-us/articles/e. -and-scripting/

Сообщение отредактировал AndrewP_1 — 17.12.18, 10:03

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

Найдя таким образом необходимый диск, нужно перейти в него
fs0:
затем при помощи старых добрых досовских команд dir и cd нужно нащупать и перейти в каталог с загрузочными efi-файлами. Обычно это /EFI/boot/. Затем, находясь в этом каталоге, можно, введя имя файла загрузчика, сразу же загрузиться в него. Чтобы добавить нужный файл в список загрузочных записей, желательно сначала считать уже имеющиеся записи при помощи команды
bcfg boot dump
Затем, чтобы добавить загрузочный файл в этот список, нужно ввести
bcfg boot add N filename.efi » label «
Где N -порядковый номер записи (если на ее месте что-то было-этот пункт перезапишется)
filename.efi -имя файла с загрузчиком
label -имя, под которым эта запись будет отображаться в списке
Можно снова просмотреть список загрузочных записей через
bcfg boot dump
и убедиться, что все на месте. Можно перезагружаться и проверять.
Для удаления записи из списка используется команда
bcfg boot rm N
где N -номер записи

Сообщение отредактировал Shoore — 31.10.14, 16:34

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 происходит согласно загрузочным записям. Если в 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.

Читайте также:  Windows 10 когда скачается
Оцените статью
Adblock
detector