Как отредактировать uefi загрузчик

Обновлено: 04.07.2024

Изменяем пути Загрузчика UEFI - В режиме UEFI путь BCD по умолчанию - EFI/Microsoft/Boot /BCD Я использую имя BCD для 64-битных и B86 для 32-битных, это дает мне два отдельных файла меню. В этом режиме 32-разрядные версии Windows не могут загружаться в 64-разрядные UEFI , а 64-разрядные версии Windows не могут загружаться на 32-разрядном UEFI . Я использую два отдельных файла BCD , чтобы убедиться, что все меню работают.
Мы отредактируем файл bootx64.efi для 64-битных и bootia32.efi для 32-разрядных. Примечание . Я буду использовать HxD для редактирования шестнадцатеричного кода этих файлов. Откройте bootx64.efi с помощью HxD , нажмите Ctrl + F , чтобы открыть окно поиска и введите следующее:
Поиск : 42 00 43 00 44
Тип данных : Шестнадцаричные значения
- Изменяем имя BCD-шки на любое Имя, к примеру на DART64
Учтите, не стирайте, а заменяйте значения, точки между не трогаем.
и сохраняем это дело в bootx64.efi в редакторе HxD
- И Так, теперь нам надо создать Флешку на GRUB2 что бы загрузить наш .efi
Воспользуемся инструментом AIOBOOT
На сайте есть инструкция как создать мультизагрузочную флешку в Два клика.
После создания мы видим нашу флешку, с двумя разделами.
- Создадим любую папку на флешке, у меня будет DART
В папке DART , создаем еще папку. к примеру DARTefi
в нее я скину сам модифицированый наш bootx64.efi и две папки.
Скрин ниже.
- Берем оригинальный BCD , Переменовываем его DART64 и переносим файл по пути \EFI\Microsoft\Boot\DART64
Далее открываем его BCD - тут мы можем добавлять пункты меню. Указывать любые пути на любые .Wim и.т.д
- +можно редактировать файл где содержится Внешний ввид в коде \DART\DARTefi\ru-RU\bootx64.efi.mui
открываем через программу Resuorce Hacker редактируем и сохраняем пример в картинке
- Если Вы! создали не посредственно в AIOBOOT то открываем файл по пути \AIO\Menu\Main.cfg
и добавляем туда вот эту строку. Пути к нашему загрузчику. теперь все протестируем в QEMU в режиме 64bit
- Это главное меню AIOBOOT его можно кастомизироватить менять интерфейс непосредственно в утилитке
Далее переходим в нашу Мини Сборку))) и смотрим
- Друзья. Я проверял на своем ноутбуке. В Режиме Security Boot Все работает как не странно. Файлы загрузчиков можете сказать по ссылке. Идея в том, что можно создать сколько угодно разных bcd и .efi загрузчиков на одной флешке. с красивыми разными оформлениями. ВОТ ЧТО У МЕНЯ ПОЛУЧИЛОСЬ

Последний раз редактировалось: vadlike (2017-11-02 15:10), всего редактировалось 1 раз

Как устроена загрузка современных ОС? Как при установке системы настроить загрузку посредством 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 — система будет спокойно загружаться с флешки, не видя разницы.

Загрузка с другого устройства может потребоваться в следующих случаях:

1. Переустановка операционной системы со съемного носителя или ее установка на новый жесткий диск.

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

3. Установка на дополнительное устройство хранения информации второй операционной системы.

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

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

4. Создание образа системного диска или резервной копии данных в экстренных ситуациях.

5. Проверка состояния жесткого диска на наличие неисправностей и поиск на нем нечитаемых секторов.

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

Изменение приоритета загрузки в BIOS

Для изменения приоритета загрузки в старых версиях BIOS вам потребуется:

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

2. Войти в BIOS. Для этого нужно нажать одну из функциональных клавиш или ввести определенную клавиатурную комбинацию. На что конкретно придется нажимать, зависит от модели материнской платы. Чаще всего это клавиши " Del ", "F2 ", " F10 " или "ESC ". Соответствующая подсказка будет отображена на экране после включения компьютера, но до начала загрузки операционной системы.

В данном случае для входа в BIOS надо нажать на "Del" (изображение загружено с Яндекс.Картинки). В данном случае для входа в BIOS надо нажать на "Del" (изображение загружено с Яндекс.Картинки).

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

3. После того, как БИОС загрузится, следует перейти в раздел, в котором настраивается порядок загрузки. Чаще всего нужно настройки находится в меню "Boot". Если такого пункта меню нет, поищите нужные настройки в разделе "Advanced BIOS Features".

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

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

7. Для сохранения настроек и перезагрузки системы с новыми параметрами нужно нажать на функциональную клавишу " F10 ".

Изменение приоритета загрузки в UEFI

Настройка приоритета загрузки в UEFI во многом схожа с такой же процедурой в BIOS, но есть и некоторые нюансы. Теперь рассмотрим все по порядку:

1. Включаем компьютер или перезагружаем его.

BIOS UEFI загрузится после нажатия на клавишу "Del", а Boot-меню - после нажатия на "F11". BIOS UEFI загрузится после нажатия на клавишу "Del", а Boot-меню - после нажатия на "F11".

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

Boot-меню. Выбираем нужное устройство, жмем "Enter" и загружаемся. Boot-меню. Выбираем нужное устройство, жмем "Enter" и загружаемся.

3. После того, как UEFI загрузится, переходим на вкладку "Settings" и находим меню"Загрузка" или "Boot".

4. Переходим к первому загрузочному устройству и дважды щелкаем по нему левой кнопкой мыши.

5. Из открывшегося списка выбираем носитель, с которого загрузка должна идти в первую очередь (двойным щелчком мышью или клавишей "Enter")

6. Если в системе используется несколько жестких дисков, переходим к "Hard Disk Drive BBS Priorities и меняем их приоритет.

Для изменения приоритета жесткого диска дважды кликаем по нему мышью или жмем на "Enter" и выбираем из списка обнаруженных устройств другой диск.


но вот что интересно, в menu.lst находится информация только о Live CD Acronis True Image 2013 и всё. Никакого упоминания о Windows 7, 8, 8.1 в этом файле нет.


Значит, если я создаю UEFI флешку в программе WinSetupFromUSB, то меню загрузки находится не в menu.lst, а в каком-то другом файле?

Всё-таки я решился добавить на флешку образ Windows 8.1 Single Language


и теперь у меня при загрузке выходит вот такое меню.

и семёрка естественно не грузится (оно и понятно, ведь она удалена из флешки).


Как отредактировать меню загрузки мультизагрузочной флешки созданной в программе WinSetupFromUSB. Как менять названия операционных систем. Как удалять из меню загрузки ненужные ОС

Привет друзья! Меня зовут Владимир и я отвечу на вопрос читателя, но сначала давайте вспомним процесс создания загрузочной флешки в программе WinSetupFromUSB. При создании в программе WinSetupFromUSB мультизагрузочной UEFI флешки отформатированной в FAT32 или NTFS на накопителе создаётся универсальный линуксовый загрузчик Grub4Dos с файлом menu.lst и два файла конфигурации загрузки BCD ! Первый bcd находится по адресу: X:\efi\microsoft\boot\ bcd (где X: буква вашей флешки).



Если вы создаёте в WinSetupFromUSB мультизагрузочную флешку UEFI отформатированную в FAT32 или NTFS, то добавляете в неё образы ISO операционных систем через вторую строчку Vista/7/8/Server 2008/2012 based ISO


все добавленные системы прописываются в обоих хранилищах загрузки

Если вы загружаете с такой флешки ноутбук с включенным UEFI, то UEFI не видит загрузчик Grub4Dos, но видит хранилище загрузки bcd, находящийся в папке X:\efi\microsoft\boot\,и происходит загрузка ноутбука с флешки. При загрузке мы видим такое меню (файл menu.lst не участвует в процессе загрузки, так как Grub4Dos не задействован).


Если загрузка ноутбука с флешки происходит с отключенным UEFI и включенным Legacy, то у нас работает загрузчик Grub4Dos передающий загрузку диспетчеру загрузки Windows (BOOTMGR), находящемуся в папке X:\boot\bcd (где X: буква вашей флешки) , для этого нужно выбрать в этом меню пункт 0 Windows NT6 (Vista/7 and above) Setup.


В данном меню мы выбираем необходимую операционную систему для установки или возвращаемся в меню Grub4Dos .


Редактировать эти два BCD нужно стандартными командами с помощью удаляем ненужные записи операционных систем и PE bcdedit -store x:\efi\microsoft\boot\bcd /set description " любое имя", кавычки обязательны. bcdedit -store x:\boot\bcd /set description " любое имя", кавычки обязательны.

bcdedit -store x:\boot\bcd> C:\bcd.txt

bcdedit -store x:\efi\microsoft\boot\bcd> C:\bcd.txt

создаём в корне диска (C:) текстовый вариант файла BCD с названием bcd.txt

Больше ничего (по моему мнению) в редактировании не нуждается. Рассмотрим реальный пример редактирования меню мультизагрузочной флешки Создадим в программе WinSetupFromUSB такую же загрузочную UEFI флешку, как и у нашего читателя. На флешке, имеющей букву (R:), находится четыре операционные системы: Windows 7, 8 , 8.1 , Windows 8.1 Single Language и ещё Live CD Acronis True Image 2013.


Если загрузить с неё ноутбук с включенным UEFI, то меню загрузки выглядит так


Если загрузить ноутбук с включенным Legacy , то сначала откроется загрузчик Grub4Dos , где нам нужно выбрать пункт 0 Windows NT6 (Vista/7 and above) Setup (здесь же вы можете загрузить Live CD Acronis True Image 2013).


Открывается меню диспетчера загрузки Windows (BOOTMGR) , находящийся в папке R:\boot\bcd


Предлагаю для закрепления материала удалить последнюю систему - Windows 8.1 Single Language

Открываем командную строку и вводим команду:

bcdedit -store R: \efi\microsoft\boot\bcd , где R буква нашей флешки.


Открывается файл конфигурации хранилища загрузки нашей флешки bcd находящийся в папке R: \efi\microsoft\boot. Копируем ID последней операционки, которую мы хотим удалить : Windows 8.1 Single Language


вводим команду, которая удалит запись в файле конфигурации загрузки BCD о Windows 8.1 Single Language:

bcdedit -store R:\efi\microsoft\boot\bcd /delete


Операция успешно завершена.

Запись удалена и теперь меню загрузки ноутбука с включенным UEFI выглядит без Windows 8.1 Single Language


Но если загрузиться с флешки в Legacy , то запись о Windows 8.1 Single Language всё ещё останется. Её тоже удаляем.

Открываем командную строку и вводим команду: bcdedit -store R:\boot\bcd , где R буква нашей флешки.


Открывается файл конфигурации хранилища загрузки нашей флешки bcd находящийся в папке R:\boot. Копируем ID < b54bcd64-3513-11e5-82fd-ac220b79a339 >Windows 8.1 Single Language.


вводим команду, которая удалит запись о Windows 8.1 Single Language в файле конфигурации загрузки BCD в папке R:\boot

bcdedit -store R:\boot\bcd /delete


Теперь и при загрузке в режиме Legacy никакой записи о Windows 8.1 Single Language не будет.


Под конец нужно вручную удалить папку с ISO-образом Windows 8.1 Single Language с флешки. Удаляем папку W81x64_1, в которой находится ISO-образ Windows 8.1 Single Language.



Как редактировать файл menu.ls загрузчика Grub4Dos


и грузится прямо из него.


Запись Live CD Acronis True Image 2013 удаляется в menu.lst



Все добавленные на флешку ISO-образы Live CD находятся в папке ISO


Из неё удаляем ненужные образы.


Редактирование файла menu.lst допускается только английскими буквами.

Можно добавить вручную перезагрузку компьютера

title Restart

и выключение компьютера

title Shutdown

добавление этих записей можно делать после имеющейся в

в menu.lst. записи

ls /usbdrive.tag > nul || find --set-root --devices=hf /usbdrive.tag > nul

ls /default > nul && default /default

Статьи на эту тему:

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

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

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

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

Навигация

Облако тегов

Архив статей

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

img

glavred

Gregory F, Исправлено, спасибо.

Gregory F

DDR5 и DDR4 имеют 288 контактов, а не 380

Grey3

Но при этом изменяется имя адаптера, а вовсе не имя сети?! А мне хотелось бы менять имя сети, а не

img

admin

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

гость

Сколько по вашему мнению на сегодняшний день нужно оперативной памяти для компьютера с Windows 11?

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

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

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