1. Главная страница » Компьютеры » Efi папка что это

Efi папка что это

Автор: | 16.12.2019

Содержание

В этой статье мы покажем, как вручную восстановить случайно удаленный загрузочный раздел Windows на UEFI системе. Изначально в статье был описан мой опыт по восстановлению загрузочного EFI раздела на Windows 7, однако статья актуальна и для современных операционных систем Microsoft (от Windows 7 и до Windows 10). Она не раз выручала меня, после случайного форматирования или удаления EFI раздела в Windows 10. В этой статье мы покажем простой способ ручного пересоздания загрузочного EFI и MSR разделов в Windows.

Итак, предположим, что каким-то образом случайно (или не очень случайно, например при попытке удалить с диска OEM разделы производителя) был удален или отформатирован загрузочный EFI раздел на UEFI системе (не BIOS), в результате чего Windows 10 / 8.1 / 7 перестала загружаться, циклически предлагая выбрать загрузочное устройство (Reboot and select proper boot device or insert boot media in selected). Разберемся можно ли восстановить работоспособность Windows при удалении раздела с Boot Manager без переустановки системы.

Структура разделов на GPT диске

Рассмотрим, как должна выглядеть таблица разделов загрузочного жесткого диска с GPT разметкой на UEFI системе. Как минимум должны присутствовать следующие разделы:

  • Системный раздел EFI (EFI System Partition или ESP — Extensible Firmware Interface) – 100 Мб (тип раздела — EFI).
  • Резервный раздел Майкрософт – 128 Мб (тип раздела — MSR).
  • Основной раздел Windows – раздел с Windows.

Это именно минимальная конфигурация. Эти разделы создает установщик Windows при установке системы на неразмеченный диск. Производители ПК или сами пользователи могут дополнительно создавать собственные разделы, содержащие, к примеру среду восстановления Windows в файле winre.wim (Windows RE), раздел с резервным образом системы от производителя (позволяет откатится к исходному состоянию компьютера), пользовательские разделы и т.д.

Раздел EFI c файловой системой Fat32 является обязательным на дисках с GPT разметкой на UEFI системах. Данный раздел, по аналогии с разделом System Reserved на дисках с MSR разметкой, хранит хранилище конфигурации загрузки (BCD) и ряд файлов, необходимых для загрузки Windows. При загрузке компьютера среда UEFI загружает с раздела EFI (ESP) загрузчик (EFIMicrosoftBootbootmgfw.efi) и передает управление ему. Если этот раздел удален, загрузить ОС нельзя.

MSR раздел на GPT диске используется для упрощения управления разделами и используется для служебных операций (например, при конвертирования диска из простого в динамический). Это резервный раздел, которому не назначается код раздела. На этом разделе нельзя хранить данные пользователя. В Windows 10 размер MSR раздела – всего 16 Мб (в Windows 8.1 размер MSR раздела – 128 Мб), файловая система – NTFS.

Вручную создаем EFI и MSR разделы на GPT диске

Т.к. система корректно не загружается, нам понадобится установочный диск с Windows 10 (Win 8 или 7) или любой другой загрузочный диск. Итак, загружаемся с установочного диска и на экране начала установки нажимаем комбинацию клавиш Shift+F10. Должно открыться окно командной строки:

Запустим утилиту управления дисками и разделами:

Выведем список жестких дисков в системе (в этом примере он один, disk . Звездочка (*) в столбце Gpt означает, что диск использует GPT таблицу разделов).

Выберем этот диск:

Выведем список разделов на диске:

В нашем примере в системе осталось всего 2 раздела:

  • Раздел MSR — 128 Мб
  • Системный раздел Windows – 9 Гб

Как мы видим, раздел EFI отсутствует (удален).

Наша задача удалить оставшийся MSR раздел, так чтобы на диске осталось неразмечено как минимум 228 Мб свободного места (для разделов MSR и EFI). Удалить оставшийся раздел можно с помощью графической GParted или непосредственно из командной строки (именно так и поступим).

Выбираем раздел для удаления:

Select partition 1
И удаляем его:
Delete partition override

Убедимся, что остался только раздел с Windows:

Теперь мы можем вручную пересоздать разделы EFI и MSR. Для этого в контексте утилиты diskpart последовательно выполните команды:

create partition efi size=100

Убеждаемся, что выбран раздел 100 Мб (звездочка напротив строки Partition 1):

list partition
select partition 1
format quick fs=fat32 label="System"
assign letter=G
create partition msr size=128
list partition
list vol

В нашем случае разделу с Windows уже назначена буква диска C:, если это не так, назначим ему букву следующим образом:

select vol 1
assign letter=C
exit

Восстановление EFI загрузчика и BCD в Windows

После того, как вы создали минимальную структуру дисковых разделов для UEFI системы, можно переходить к копированию загрузочных файлов EFI на диск и созданию конфигурационного файла загрузчика (BCD).

Скопируем файлы среды EFI из каталога вашего диска, в который установлена ваша Windows:

xcopy /s C:WindowsBootEFI*.* G:EFIMicrosoftBoot

Пересоздадим конфигурацию загрузчика Windows 10 / 7:

Читайте также:  Kingston hyperx fury black cl15

g:
cd EFIMicrosoftBoot
bcdedit /createstore BCD
bcdedit /store BCD /create /d “Windows Boot Manager”
bcdedit /store BCD /create /d “Windows 7” /application osloader

Вы можете заменить надпись “My Windows 10”, на любую другую.

Команда возвращает GUID созданной записи, в следующей команде этот GUID нужно подставить вместо .


bcdedit /store BCD /set default
bcdedit /store BCD /set
path EFIMicrosoftBootootmgfw.efi
bcdedit /store BCD /set
displayorder

Дальнейшие команды выполняются в контексте :

bcdedit /store BCD /set device partition=c:
bcdedit /store BCD /set
osdevice partition=c:
bcdedit /store BCD /set
path WindowsSystem32winload.efi
bcdedit /store BCD /set
systemroot Windows
exit

Перезагружаем компьютер … В нашем случае с первого раза он не загрузился, пришлось дополнительно поплясать с бубном:

  1. Отключаем питание ПК.
  2. Отключаем (физически) жесткий диск.
  3. Включаем ПК, дожидаемся появления окна с ошибкой загрузки и снова его выключаем.
  4. Подключаем диск обратно.

Затем в нашем случае (тестирование проводилось на виртуальной машине VMWare с UEFI средой) пришлось добавить новый загрузочный пункт меню, выбрав файл EFIMicrosoftBootootmgrfw.efi на EFI разделе.

В некоторых UEFI меню по аналогии нужно изменить приоритет загрузочных разделов.

После всех рассмотренных манипуляций Windows должна загрузиться корректно.

Статьи

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

Что такое EFI / UEFI ?

Как только мы включаем компьютер, в нем немедленно начинает работать миниатюрная операционная система, которую мы знаем как BIOS. Она занимается тестированием устройств, памяти, загрузкой операционных систем, распределением ресурсов аппаратуры. Многие функции этого набора программ (их объем обычно около 256-512 Кб) позволяют поддерживать старые операционные системы вроде MS-DOS, предоставляя им множество возможностей. Со времен PC/AT-8086 BIOS менялся очень мало, а ко времени запуска первых Пентиумов его развитие почти остановилось. Собственно, менять в нем стало нечего, кроме двойного BIOS, поддержки сетевых средств и возможности перепрошивки. А вот минусов стало много: стартовый вход в реальный режим процессора, 16-разрядная адресация и 1 Мб доступной памяти, невозможность иметь «ремонтную» консоль. И, конечно, вечная проблема поддержки жестких дисков. Даже сейчас гарантированно поддерживаются диски до 2,2 Тб, не более.

Компания Intel еще в 2005 года решила поменять BIOS на EFI/UEFI (Unified Extensible Firmware Interface). Система EFI — более продвинутая базовая операционная система. На некоторых платформах Unix и Windows UEFI уже давно работает, но массового перехода пока не свершилось, несмотря на благие намерения. А они таковы:

  • Наличие пресловутой консоли для ремонта системных параметров и установки ОС;
  • Раздел EFI даёт возможность совершать некоторые действия, не загружая ОС (просмотр фильмов, запуск музыки);
  • Вход в Интернет и, следовательно, наличие установленных драйверов сети, стека TCP/IP и т.д.);
  • Присутствие графического режима и пользовательских скриптов;
  • Поддержка гигантских по объему дисков;
  • Хранение UEFI на разделах нового формата (GPT);
  • Полная поддержка всей аппаратуры с момента старта.

UEFI может использовать универсальную исполняющую машину вроде JVM для использования аппаратно-независимого кода, а это открывает огромные горизонты для создания «загрузочного» ПО.

Существует и критика этой технологии. В частности, внедрение ее может привести к отсечению от рынка операционных систем новых игроков: для этого всегда найдется в коде какая-нибудь технологическая лазейка. Как, например, невозможность загружать ОС Windows 98 из современных BIOS. Но, что хуже, придется забыть о миллионах программ MS-DOS и других систем, которые опирались в своей работе на функции BIOS. Возможно, они еще будут эмулироваться, но в этом есть сомнения. А среди них наверняка есть и важные программы, которые некому будет переписывать. Впрочем, все это решаемые вопросы – хотя бы за счет виртуальных операционных систем. Но вот то, что появятся новые виды вирусов – это точно, и мы сможем увидеть это довольно скоро.

Напомним, что специалисты "Serty-Service" готовы помочь в настройке BIOS.

Extensible Firmware Interface (EFI) (с англ. — «интерфейс расширяемой прошивки») — интерфейс между операционной системой и микропрограммами, управляющими низкоуровневыми функциями оборудования, его основное предназначение: корректно инициализировать оборудование при включении системы и передать управление загрузчику операционной системы. EFI предназначен для замены BIOS — интерфейса, который традиционно используется всеми IBM PC-совместимыми персональными компьютерами. Первая спецификация EFI была разработана Intel, позднее от первого названия отказались и последняя версия стандарта носит название Unified Extensible Firmware Interface (UEFI). В настоящее время разработкой UEFI занимается Unified EFI Forum.

Содержание

История [ править | править код ]

Изначально EFI создавалась для первых систем Intel-HP Itanium в середине 1990-х годов. Ограничения PC-BIOS (16-битный исполняемый код, адресуемая память 1 Мбайт, аппаратные ограничения IBM PC/AT и т. д.) были, очевидно, недопустимы в больших серверных платформах, для использования в которых планировался Itanium. Изначально название — Intel Boot Initiative (Загрузочная инициатива Intel) — позже было переименовано в EFI [1] :

  • спецификация EFI 1.02 была выпущена Intel 12 декабря 2000 года (версия 1.01 имела юридические проблемы, связанные с торговой маркой, и была быстро изъята);
  • спецификация EFI 1.10 была выпущена 1 декабря 2002 года. Она включала модель драйвера EFI, а также несколько незначительных улучшений по сравнению с версией 1.02;
  • в 2005 году Intel внесла эту спецификацию в UEFI Forum, который теперь ответственен за развитие и продвижение EFI. [2] EFI был переименован в Unified EFI (UEFI), чтобы отразить это изменение, при этом большая часть документации использует оба термина;
  • UEFI Forum выпустил спецификацию 2.1 UEFI 7 января 2007 года. Она добавила и улучшила криптографию, установление подлинности сети и архитектуру пользовательского интерфейса;
  • версия 2.3.1 была принята в апреле 2011 года;
  • версия 2.4 была принята в июле 2013 года;
  • версия 2.5 была принята в апреле 2015 года.
  • версия 2.6 была принята в январе 2016 года.
Читайте также:  Error c2065 cout необъявленный идентификатор

Содержание [ править | править код ]

Интерфейс, определённый спецификацией EFI, включает таблицы данных, содержащие информацию о платформе, загрузочные и runtime-сервисы, которые доступны для загрузчика операционной системы (ОС) и самой ОС. Некоторые существующие расширения BIOS, типа ACPI и SMBIOS, также присутствуют в EFI, поскольку не требуют 16-разрядного runtime-интерфейса.

Сервисы [ править | править код ]

EFI определяет «загрузочные сервисы», которые включают поддержку текстовой и графической консоли на различных устройствах, шин, блоков и файловых сервисов, а также runtime-сервисы, например: дата, время и энергонезависимая память.

Драйверы устройств [ править | править код ]

В дополнение к стандартным, архитектурно-зависимым драйверам устройств, спецификация EFI предусматривает независимую от платформы среду драйверов, названную EFI Byte Code (EBC). От системного встраиваемого ПО (firmware) спецификацией UEFI требуется иметь интерпретатор для любых образов EBC, которые загружены или могут быть загружены в среду. В этом смысле EBC подобен Open Firmware, независимому от аппаратных средств встраиваемому ПО, используемому в компьютерах Apple Macintosh и Sun Microsystems SPARC.

Некоторые архитектурно-зависимые (non-EBC) типы драйверов EFI могут иметь интерфейсы для использования ОС. Это позволяет ОС использовать EFI для базовой поддержки графики и сети до загрузки драйверов, определённых в ОС.

Менеджер загрузки [ править | править код ]

Менеджер загрузки EFI используется для выбора и загрузки ОС, исключая потребность в специализированном механизме загрузки (загрузчик ОС является приложением EFI).

Поддержка дисков [ править | править код ]

В дополнение к стандартной схеме разметки дисков MBR EFI имеет поддержку GPT, которая свободна от характерных для MBR ограничений. Спецификация EFI не включает описание для файловых систем, однако реализации EFI обычно поддерживают FAT32 как файловую систему [3] .

Оболочка EFI [ править | править код ]

Сообщество EFI создало открытую среду оболочки (англ. EFI shell ) [4] . Пользователь для выполнения некоторых операций может загрузить оболочку EFI вместо того, чтобы загружать ОС. Оболочка — приложение EFI; она может постоянно находиться в ПЗУ платформы или на устройстве, драйверы для которого находятся в ПЗУ.

Оболочка может использоваться для выполнения других приложений EFI, таких как настройка, установка ОС, диагностика, утилиты конфигурации и обновления прошивок. Она также может использоваться, чтобы проиграть CD или DVD носители, не загружая ОС, при условии, что приложения EFI поддерживают эти возможности. Команды оболочки EFI также позволяют копировать или перемещать файлы и каталоги в поддерживаемых файловых системах, загружать и выгружать драйверы. Также оболочкой может использоваться полный стек TCP/IP.

Оболочка EFI поддерживает сценарии в виде файлов .nsh, аналогичных пакетным файлам в DOS. При этом файл сценария с именем startup.nsh исполняется при загрузке автоматически.

Названия команд оболочки часто наследуются от интерпретаторов командной строки (COMMAND.COM или Unix shell). Оболочка EFI может рассматриваться как функциональная замена интерпретатора командной строки и текстового интерфейса BIOS.

Расширения [ править | править код ]

Расширения EFI могут быть загружены с практически любого энергонезависимого устройства хранения данных, присоединённого к компьютеру. Например, OEM-производитель может продать систему с разделом EFI на жёстком диске, который добавил бы дополнительные функции к встраиваемому ПО EFI, размещённому в ПЗУ системной платы.

Реализация [ править | править код ]

Intel Platform Innovation Framework для EFI [ править | править код ]

Intel Platform Innovation Framework для EFI (рус. инновационный инструментарий Intel ) — ряд спецификаций, разработанных Intel совместно с EFI. Если EFI определяет интерфейс между ОС и firmware, то инструментарий определяет структуры, используемые для создания встраиваемого ПО на более низком уровне, чем интерфейс между ОС и firmware.

В частности, инструментарий поддерживает все шаги, необходимые для инициализации компьютера после включения. Эти внутренние возможности встраиваемого ПО не определены как часть спецификации EFI, но включены в спецификацию инициализации платформы (Platform Initialization Specification), разработанную UEFI. Инструментарий был проверен на платформах: Intel XScale, Intel Itanium и IA-32.

Совместимость с ОС для платформы x86, требующими для работы интерфейса «legacy BIOS», достигается с помощью модуля поддержки совместимости (CSM). CSM включает 16-битную программу (CSM16), реализуемую изготовителем BIOS, и слой, связывающий CSM16 с инструментарием.

Intel разработал эталонную реализацию для инструментария под кодовым названием «Tiano». Tiano — полная, legacy-free реализация встраиваемого ПО, обеспечивающая поддержку EFI. Tiano не включает 16-битную часть CSM, но обеспечивает интерфейсы, требуемые для дополнений, реализуемых производителями BIOS. Intel не предоставляет полную реализацию Tiano для конечных пользователей.

Часть Tiano была выпущена в виде исходных текстов TianoCore проекта как EFI Developer Kit (EDK) [5] . Эта реализация включает EFI и некоторый код инициализации аппаратных средств, но не раскрывает полностью особенностей непосредственно встраиваемого ПО. Несколько лицензий использовались для этого кода, включая BSD license и Eclipse Public License.

Продукты, основанные на EFI, UEFI и спецификациях инструментария, доступны через независимых производителей BIOS, например, American Megatrends (AMI) и Insyde Software. Некоторые реализации производителей полностью основаны на Tiano, в то время как другие, соответствуют спецификациям, но не основываются на эталонной реализации Intel [6] .

Платформы, использующие EFI или инструментарий [ править | править код ]

Выпущенные в 2000 году Intel системы на платформе Itanium поддерживали EFI 1.02. Выпущенные в 2002 году Hewlett-Packard системы на платформе Itanium 2 поддерживали EFI 1.10; они могли загружать Windows, Linux, FreeBSD и HP-UX. Все системы Itanium или Itanium 2, которые выпускаются с EFI-совместимым встраиваемым ПО, должны соответствовать спецификации DIG64.

В ноябре 2003 года, Gateway представила Gateway 610 Media Center — первую x86 компьютерную систему на основе Windows, использующую встраиваемое ПО, основанное на инструментарии, InsydeH2O от Insyde Software. Поддержка BIOS была реализована с помощью модуля поддержки совместимости (CSM) для загрузки Windows.

Читайте также:  Http ru wikipedia org wiki инсталляция по

В январе 2006 года Apple Inc. представила первые компьютеры Macintosh на платформе Intel. Эти системы используют EFI и инструментарий вместо Open Firmware, который использовался на предыдущих системах платформы PowerPC [7] .

5 апреля 2006 года Apple выпустила пакет Boot Camp, который позволяет создать диск с драйверами Windows XP, а также содержит неразрушающий инструмент разметки дисков, позволяющий установить Windows XP совместно с Mac OS X. Также было выпущено обновление встраиваемого ПО, которое добавило поддержку BIOS для данной реализации EFI. Последующие модели Macintosh были выпущены с обновлённым встраиваемым ПО. Теперь все современные компьютеры Macintosh могут загружать BIOS-совместимые ОС, такие как Windows XP, Vista и Windows 7.

Большое количество системных плат фирмы Intel выпускается с встраиваемым ПО на основе инструментария [ уточнить ] . Так, в течение 2005 года было выпущено более одного миллиона систем Intel [8] . Новые мобильные телефоны, настольные компьютеры и серверы, использующие инструментарий, начали производить в 2006 году. Например, все системные платы, которые построены на наборе системной логики Intel 945, используют инструментарий. Однако, производимое встраиваемое ПО обычно не включает поддержку EFI и ограничено поддержкой BIOS [9] .

С 2005 года EFI начал применяться в не-ПК архитектурах, таких как встраиваемые системы на ядре XScale [10] .

EDK включает цель NT32, которая позволяет встраиваемому ПО EFI и приложениям EFI выполняться в приложениях Windows.

В 2007 году компания Hewlett-Packard выпустила многофункциональный принтер серии 8000, оснащённый встраиваемым ПО, совместимым с EFI [11] .

Как происходит загрузка в UEFI [ править | править код ]

С GPT-раздела с идентификатором EF00 и файловой системой FAT32, по умолчанию загружается и запускается файл efiootoot[название архитектуры].efi, например: efiootootx64.efi.

То есть чтобы, например, создать загрузочную флешку с Windows, достаточно просто разметить флешку в GPT, создать на ней активный FAT32-раздел и скопировать все файлы с компакт-диска с дистрибутивом операционной системы

Пример создания GPT диска в Linux:

  • gdisk: создать раздел, указав тип EFI System (EFI System в fdisk или ef00 в gdisk). Затем отформатировать его в файловую систему FAT32 командой mkfs.fat -F32 /dev/ ;
  • GNU Parted: создать раздел FAT32 и затем установить (активировать) загрузочный флаг (но не флаг legacy_boot) на этот раздел.

Также в большинстве реализаций UEFI возможна загрузка в режиме совместимости с диска с разметкой MBR.

Операционные системы [ править | править код ]

  • Ядро Linux могло использовать EFI при загрузке с начала 2000 года, используя загрузчик EFI elilo или появившиеся позднее EFI-версии загрузчика grub [12] . На данный момент ядро Linux может быть загружено напрямую, без использования загрузчика. [13]
  • ОС HP-UX начали использовать EFI как загрузочный механизм в системах на платформе IA-64 с 2002 года. ОС OpenVMS использовала его начиная с января 2005 года;
  • Apple приняла EFI для линейки своих компьютеров, основанных на архитектуре Intel (Intel-based Macs). Mac OS X 10.4 (Tiger) для Intel и Mac OS X 10.5 (Leopard) поддерживают EFI v1.10 в 32-разрядном режиме, а также на 64-разрядных центральных процессорах (новые Macintosh имеют 64-разрядный EFI) [14] .

Microsoft Windows [ править | править код ]

Itanium версии Windows 2000 (Advanced Server Limited Edition и Datacenter Server Limited Edition) получили поддержку EFI 1.1 в 2002 году.

Windows Server 2003 для IA-64, 64-разрядная версия Windows XP и Windows 2000 Advanced Server Limited Edition, предназначенные для семейства процессоров Intel Itanium, поддерживают EFI, определённый для данной платформы спецификацией DIG64 [15] .

Microsoft ввела поддержку UEFI в 64-разрядных ОС Windows начиная с Windows Server 2008 и Windows Vista Service Pack 1 [16] [17] . Microsoft утверждает, что отсутствие официальной поддержки EFI на 32-разрядных ЦП происходит из-за недостаточной поддержки изготовителями ПК и поставщиками. Миграция Microsoft к 64-разрядным ОС не позволяет использовать EFI 1.10, так как 64-разрядные расширения процессора, необходимые этим ОС, не поддерживаются окружением процессора. Поддержка x86-64 была включена в UEFI 2.0.

Microsoft выпустила видео с Эндрю Рицом (англ. Andrew Ritz ) и Джейми Шварцем (англ. Jamie Schwarz ), разъясняющим реализацию поддержки UEFI в Windows Vista и Windows Server 2008 [18] .

Графические возможности [ править | править код ]

EFI поддерживает графические меню и некоторые возможности, например, осуществленные Aptio или Great Wall UEFI [19] .

Критика [ править | править код ]

EFI критиковался за то, что он привёл к усложнению системы, не давая существенных преимуществ [20] , и за отказ от альтернатив BIOS с полностью открытыми исходными текстами — OpenBIOS и coreboot [21] .

В 2011 году пользователи и разработчики операционных систем на ядре Linux предупреждали, что внедрение технологии Secure Boot способом, требуемым Microsoft для устройств с Windows 8, существенно ограничит свободу пользователей этих устройств в выборе операционной системы или действиях с ней [22] [23] .

В сентябре 2018 года одна из антивирусных компаний опубликовала доклад о LoJax — первый известный руткит для системы UEFI, замеченный в реальном употреблении. Инженерами компании был обнаружен случай успешного поражения подсистемы SPI, и сохранения руткита во флэш-накопителе этой подсистемы. Благодаря этому, вредоносное ПО могло оставаться в компьютере не только при переформатировании жёсткого диска, а также при замене самого жёсткого диска. Единственный шанс избавиться от такого руткита — перезапись флэш-памяти встроенного ПО системы UEFI.

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

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