Press the windows key for uefi firmware settings что делать

Обновлено: 04.07.2024

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

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

  1. Создаём на диске таблицу разделов GPT
  2. Создаём FAT32-раздел на пару сотен мегабайт
  3. Скачиваем из интернета любой UEFI-загрузчик
    (нам нужен сам загрузчик, это один бинарный файл!)
  4. Переименовываем и кладем этот файл на созданный раздел по адресу /EFI/Boot/bootx64.efi
  5. Создаём текстовый конфиг, кладем его там, где загрузчик ожидает его увидеть
    (настройка и местоположение конфига зависят от конкретной реализации загрузчика, эта информация доступна в интернете)
  6. После перезагрузки видим меню загрузчика
    (Если на диске установлена Windows 8 или 10 — с большой вероятностью это руководство сокращается до пунктов 3 — 5.)

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

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

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

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

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

Восстановление загрузчика Windows 8.1 на ноутбуке с БИОСом UEFI

Привет друзья! Важное примечание перед статьёй: Способы восстановления загрузчика на простых компьютерах и новых ноутбуках с интерфейсом UEFI отличаются. Если у вас старенький ноутбук, купленный до 2013 года или обычный стационарный компьютер без БИОСа UEFI, а может у вас этот интерфейс выключен, то читайте статью о восстановлении загрузчике на ПК без интерфейса EFI. Если ваша Windows 8.1 на новом ноутбуке с БИОСом UEFI, загружается с ошибкой: File:\EFI\Microsoft\Boot\BCD. Error code: 0xc000000f, то всё дело в повреждённом загрузчике Windows 8.1 и сам текст ошибки напрямую указывает на файл BCD .


В Win 8.1 к загрузчику можно отнести файлы конфигурации загрузки Boot Configuration Data (BCD) находящиеся в скрытом разделе без буквы System (EFI). Данный раздел всегда отформатирован в файловую систему FAT32, обычный размер раздела EFI составляет 100Мб, но многие производители ноутбуков увеличивают его до 350 Мб и могут содержать на нём свои файлы. Но самое главное в этом разделе, это папка EFI\Microsoft\Boot с файлами конфигурации загрузки (BCD), среди которых находится и загрузчик Windows 8.1 файл BCD. В Управлении дисками раздел System (EFI) выглядит вот так. Исправен (Шифрованный (EFI) системный раздел)


Если в командной строке среды восстановления Win 8.1 присвоить данному разделу букву и войти в него,


то мы увидим папку EFI\Microsoft\Boot с файлами конфигурации загрузки (BCD), среди которых находится и загрузчик Windows 8.1 файл BCD.


Если целостность данной папки нарушена или файл BCD некорректен (или его вовсе нет), то мы при загрузке Windows 8.1 получаем ошибку File:\EFI\Microsoft\Boot\BCD. Error code: 0xc000000f.
  • Примечание : ещё наша статья пригодится читателям, которые хотят привести к исходному состоянию конфигурацию загрузки BCD на своём ноутбуке. Например всем известно, что если установить на новый ноутбук с БИОСом UEFI вторую Windows, то появится меню загрузки с выбором операционных систем. Если через некоторое время удалить вторую Windows , то меню загрузки никуда не денется, запись о ней останется в файле BCD. Избавить хранилище загрузки BCD от лишних записей и перезаписать его заново поможет информация из нашей статьи.
Итак, я предлагаю вам два способа восстановления загрузчика Windows 8.1. Загружаем наш ноутбук с установочного диска Windows 8.1, если на вашем ноутбуке нет дисковода, то создаём загрузочную UEFI-флешку Win 8.1 с помощью нашей статьи. Если вы правильно создали флешку, то ноутбук загрузится с неё с включенным БИОСом UEFI и включенным протоколом безопасной загрузки Secure Boot (то есть переключать в БИОСе ничего не нужно).


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


При появлении начального окна установки Windows 8.1 нажимаем комбинацию Shift+F10и открывается командная строка.


Выходит список всех дисков системы, выбираем диск с установленной Windows 8.1. в нашем случае 0, а Диск 1, это наша загрузочная флешка с Win 8.1 (ориентируемся по объёму накопителей).

Следующей командой выводим список всех разделов на диске 0.

В отобразившемся списке видим раздел (Том 3) с файлами конфигурации загрузки Windows 8.1, на нашем ноутбуке он называется ESP (EFI System Partition), определить его можно по файловой системе FAT32 и объёму 300 Мб. Также можно увидеть Том 0 под буквой C: Acer, это раздел с установленной Windows 8.1. Сейчас нужно назначить скрытому разделу EFI букву диска, к примеру N. Выбираем Том 3.

select volume 3

Назначаем ему букву

assign letter N:

Выходим из diskpart

Переходим в раздел N: с загрузчиком

cd /d N:\efi\microsoft\boot\

Переименуем некорректный файл BCD (таким образом мы сохраним его как резервную копию).

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

Следующей командой перезаписываем хранилище BCD

bcdboot C:\Windows /L ru-ru /S N: /F ALL

C:\Windows – путь к разделу с установленной Windows 8.1.

/l ru-ru – тип установленной системы ru-ru – русский язык.

/f ALL – копирование файлов среды загрузки для компьютеров с BIOS UEFI.


Вот и всё, теперь после перезагрузки Windows 8.1 должна загрузиться нормально. Данный способ заключается в полном восстановлении всего содержимого папки EFI, являющейся хранилищем загрузки Windows 8.1. Видим, что разделу с операционной системой Windows 8.1 присвоена буква C: Acer. Вводим команду, которая полностью перезапишет содержимое хранилища загрузки операционной системы. Файлы загрузки успешно созданы! Если ваша Windows под другой буквой, то вводите команду соответственно.


Рекомендуем другие статьи по данной теме

Комментарии (45)

Рекламный блок

Подпишитесь на рассылку

Навигация

Облако тегов

Архив статей

Сейчас обсуждаем

img

admin

Назовите пожалуйста модель своего ноутбука?

img

admin

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

img

admin

Здравствуйте andreus1948! То есть, в режиме IDE программа Виктория видит ваш HDD, а в режиме AHCI

img

admin

STAROGIL, загрузочный носитель с программой AOMEI Backupper создаётся в разделе программы

STAROGIL

admin, Дополню что на флешке: 4 папки: boot EFI ISO sources и файлик: bootmgr

RemontCompa — сайт с огромнейшей базой материалов по работе с компьютером и операционной системой Windows. Наш проект создан в 2010 году, мы стояли у истоков современной истории Windows. У нас на сайте вы найдёте материалы по работе с Windows начиная с XP. Мы держим руку на пульсе событий в эволюции Windows, рассказываем о всех важных моментах в жизни операционной системы. Мы стабильно выпускаем мануалы по работе с Windows, делимся советами и секретами. Также у нас содержится множество материалов по аппаратной части работы с компьютером. И мы регулярно публикуем материалы о комплектации ПК, чтобы каждый смог сам собрать свой идеальный компьютер.

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

propk.ru

Восстанавливаем загрузчик UEFI в Windows.

File :\EFI\Microsoft\Boot\BCD
Error code: 0xc000014CГ

Необходимо восстановить файлы загрузочной области UEFI.

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

Для восстановления загрузчика нам понадобится загрузочная флешка или диск с любым Windows не ниже версии 8. Но теоретически возможно и с windows 7 (не проверялось).

Внимание! Вначале внимательно читайте, осознайте, что вы делаете, прочитайте несколько раз, а потом делайте.

Если проявите терпение и внимание то у вас все получится.

Вставляем диск в привод или подключаем флешку и загружаемся с него. Как загрузиться с носителя описано в начале этой статьи.

Здесь нажимаем далее

далее

Здесь выбираем Восстановление системы

выбираем восстановление

После того как откроется командная строка набираем команду для запуска утилиты Diskpart:

diskpart

Посмотрим список дисков в системе

Выберем свой жесткий диск, если он один то это как правило disk 0.

Посмотрим какие разделы есть на выбранном диске

после этой команды откроется такой список ваших разделов на выбранном диске

выбираем диск

Раздел который нам нужен содержит загрузочный раздел размером 100мб, файловую систему Fat32.

(если его нет и у вас несколько дисков, то возможно вы выбрали не тот диск).

select volume 3

Чтоб работать с ним дальше, присвоим этому разделу свободную букву диска. Например K

assign letter K:

Выходим из утилиты Diskpart

cd /d K:\efi\microsoft\boot\

Перезапишем загрузочный сектор на диске:

На всякий случай переименуем старую конфигурацию загрузчика

Теперь последний шаг, создадим новую конфигурацию загрузчика

bcdboot C:\Windows /s K: /l ru-ru /f ALL

Теперь набираем несколько раз exit , нажимаем enter, пока не закроется окно командной строки.

Добрый день! В этой статье я расскажу о восстановлении UEFI запуска Windows 8/8.1/10, а так же о том что же такое UEFI. Поехали!

Вспомните те времена, когда BIOS был 16-битным с адресным пространством в 1 Мб, а вся информация о загрузчиках писалась в MBR? Это были насколько помню 1990 годы. И все было неизменным, менялись только характеристики оборудования. Но развитие серверов и технологий толкнули Intel к разработке EFI.

Изначально EFI создавалась для первых систем Intel-HP Itanium в середине 1990-х годов. Ограничения PC-BIOS были, очевидно, недопустимы в больших серверных платформах, для использования в которых планировался Itanium. После того как Intel передала разработку UEFI Forum (альянс AMD, American Megatrends, ARM, Apple, Dell, Hewlett Packard Enterprise, HP Inc., IBM, Insyde Software, Intel, Lenovo, Microsoft, Phoenix Technologies). 7 января 2007 года была выпущена первая версия универсальной платформы UEFI 2.1. И впервые на смену пришли более гибкие технологии: UEFI (замена BIOS), и GPT (замена MBR).

Терминология

MBR («Master Boot Record» — основная загрузочная запись) использует 32-битные идентификаторы для разделов, которые размещаются в очень маленьком кусочке пространства (64 байта) в самом начале диска (в конце первого сектора диска). Из-за такого маленького объёма поддерживаются только четыре первичных раздела. Поскольку используется 32-битная адресация, то каждый раздел может быть не более 2,2 ТБ. Кроме того, загрузочная запись не имеет никакой запасной MBR, так что если приложение перезапишет основную загрузочную запись, то вся информация о разделах будет потеряна.

GPT («GUID Partition table» — таблица разделов GUID) использует уже 64-битные идентификаторы для разделов, поэтому кусочек пространства, в котором сохраняется информация о разделах, уже больше чем 512 байт, кроме того, не существует ограничения на количество разделов. Заметьте, ограничение на размер раздела в этом случае почти 9,4 ЗБ (да-да, вы всё прочитали правильно — зеттабайт, единичка с двадцатью одним нулём!). А в конце диска имеется копия GPT, которая может использоваться для восстановления повреждённой основной таблицы разделов в начале диска.

Как происходит загрузка в UEFI?

С GPT-раздела с идентификатором EF00 и файловой системой FAT32, по умолчанию загружается и запускается файл \efi\boot\boot[название архитектуры].efi, например: \efi\boot\bootx64.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.

Менеджер загрузки

Менеджер загрузки EFI используется для выбора и загрузки ОС, исключая потребность в специализированном механизме загрузки (загрузчик ОС является приложением EFI). То есть сам загрузчик к которому мы так сильно привыкли, ни куда не делся. Он теперь универсальный для всех операционных систем и находится в ПЗУ основной прошивки системной платы (где раньше был BIOS). И для того что бы загрузить нужную нам операционную систему, нужно всего лишь загрузочный файл с расширением .efi на загрузочном разделе. Теперь нет надобности в загрузочной записи в MBR, вот и все!

Восстанавливаем запуск

Чтобы восстановить конфигурацию загрузчика (BCD), необходимо загрузится с оригинального установочного DVD диска с Windows 8
(или диска восстановления, или специально подготовленной загрузочной флешки)
и открыть окно командной строки: выбрав Восстановление системы -> Диагностика -> Командная строка (System Restore – > Troubleshoot-> Command Prompt ),
или нажав комбинацию клавиш Shift + F10 .

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

diskpart


list volume


Выберите загрузочный раздел (100mb, и файловая система у него FAT32)

select volume 3


format fs=fat32 (форматируем загрузочный раздел, перед копированием новых загрузочных файлов).

assign letter=Z (присваиваем букву Z этому разделу).


exit (выходим из Diskpart)


Если у вас несколько OC Windows , повторите команду для второй копии (с новым расположением файлов).

diskpart

list volume

select volume N (номер скрытого раздела, которому мы присваивали букву)

remove letter=Z (удаляем букву, чтобы том не отображался в системе, когда мы перезагрузимся).

exit (выходим из diskpart).

Перезагружаемся, извлекаем все носители. И грузимся в обычном режиме. Если все сделано правильно, система начнет загрузку.

Читайте также: