Время на прочтение
6 мин
Количество просмотров 527K
Как устроена загрузка современных ОС? Как при установке системы настроить загрузку посредством UEFI, не утонув в руководствах и ничего не сломав?
Я обещал «самое краткое руководство». Вот оно:
- Создаём на диске таблицу разделов GPT
- Создаём FAT32-раздел на пару сотен мегабайт
- Скачиваем из интернета любой UEFI-загрузчик
(нам нужен сам загрузчик, это один бинарный файл!) - Переименовываем и кладем этот файл на созданный раздел по адресу /EFI/Boot/bootx64.efi
- Создаём текстовый конфиг, кладем его там, где загрузчик ожидает его увидеть
(настройка и местоположение конфига зависят от конкретной реализации загрузчика, эта информация доступна в интернете) - После перезагрузки видим меню загрузчика
(Если на диске установлена 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-скриптов, которые до сих пор валяются у меня в корневой ФС:
efibootmgr -c -L "Archlinux (debug)" -l '\EFI\archlinux\vmlinuz-linux' -u "root=/dev/mapper/vg1-lvroot rw initrd=\EFI\archlinux\initramfs-linux.img systemd.log_level=debug systemd.log_target=kmsg log_buf_len=1M enforcing=0"
Не надо использовать GRUB
Это чёртов мастодонт, 90% функциональности которого предназначено для дисков с MBR. Для настройки необходимо отредактировать ряд файлов, после чего выполнить команду генерации конфига. На выходе получается огромная малопонятная нормальному человеку простыня. В составе — гора исполняемых файлов. Ставится командой, которую просто так из головы не возьмешь — надо обязательно лезть в документацию
grub-install --target=x86_64-efi --efi-directory=esp_mount --bootloader-id=grub
Для сравнения — самый простенький UEFI-bootloader, который есть в составе пакета systemd, ставится командой
bootctl install --path=/boot
Эта команда делает ровно две вещи: копирует исполняемый файл загрузчика на 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» с тремя строчками (привожу свои):
default archlinux
timeout 10
editor 1
Параметр editor отвечает за возможность отредактировать пункт загрузочного меню перед запуском.
Рядом с loader.conf необходимо создать каталог entries — один файл в нём будет отвечать за одну загрузочную запись в boot-меню. У меня там один файл arch.conf с таким содержанием:
title Arch Linux
linux /efi/archlinux/vmlinuz-linux
initrd /efi/archlinux/initramfs-linux.img
options root=/dev/mapper/vg1-lvroot rw initrd=\EFI\archlinux\intel-ucode.img
Я не упомянул, но довольно очевидно — ядро и initramfs должны лежать в одной файловой системе с загрузчиком, то есть на EFI-разделе. Пути к ним в конфигах отсчитываются от корня этой ФС.
Другие загрузчики
systemd-boot очень простой и предоставляет спартанского вида чёрно-белое меню. Есть варианты красивей, если душа просит красоты.
rEFind — очень красивый загрузчик. Скачать можно тут в виде deb-пакета. Использую на своём ноуте. Умеет создавать загрузочное меню автоматически, без конфига — просто сканируя файлы.
Clover. Позволяет выставлять нативное разрешение экрана, имеет поддержку мыши на экране загрузки, разные темы оформления. Дефолтная тема ужасна, конфиг в виде xml нечитаем, настроить не смог.
Различные неочевидные последствия
Вы можете легко попробовать эту схему в работе. Берёте USB-флешку, форматируете в таблицу разделов GPT, создаете FAT-раздел и копируете туда загрузчик. Комп сможет с неё стартовать.
Если просто скопировать на такую флешку boot-раздел установленного linux — система будет спокойно загружаться с флешки, не видя разницы.
Попасть в редактор загрузчика (меню загрузки) Windows 10 можно из командной строки, запущенной на администраторских правах. Для редактирования этого сервиса есть виндовская утилита BCDEDIT. C помощью ее команд можно изменить конфигурацию меню. Последовательность загружаемых ОС удастся отредактировать из Boot Menu или с помощью сторонних утилит.
Удаление и добавление записей системы в меню загрузки
В старых версиях Виндовса загрузочное меню, то есть boot.ini, редактировалось из текстового редактора. В новых продуктах Win этот сервис именуется Boot Configuration Data. Изменять его параметры разрешается через графический интерфейс. Попасть в Boot Menu удастся в момент включения ПК. Данный сервис является опцией BIOS или UEFI. Однако абсолютный доступ к BCD можно получить исключительно из интерпретатора командной консоли cmd.exe.
Как войти в Boot Menu:
- в момент включения ПК нажать клавишу вызова Boot Menu (F8 или 9, 11, 12);
- предварительно потребуется отключить «Быстрый запуск Win» (через «Панель управления», «Электропитание»);
- в Boot Menu находится список устройств («boot device»), с которых возможен запуск ПК;
- отметить нужный вариант.
Как отредактировать загрузчик через «Конфигурацию системы»:
- включить ПК;
- вызвать службу «Выполнить»;
- написать символы:msconfig;
- откроется «Конфигурация системы»;
- во вкладке «Общие» активировать «Выборочный запуск»;
- во вкладке «Загрузка» выбрать из списка нужный вариант.
Как выполнить редактирование из командной строки:
- в пустом поле «Поиск» написать:cmd;
- запустить командную консоль на администраторских правах;
- для просмотра всех элементов, хранящихся в BOOT, написать: bcdedit;
- появится список в нескольких блоках («Диспетчер загрузки Win» и «Загрузка Win»);
- получить сведения о конкретной команде: bcdedit.exe/?/наименование.
Важно! Любые команды для самостоятельного редактирования БСД задаются после bcdedit/.
Список основных команд (задаются после bcdedit/):
- для активации параметра по умолчанию: default{ID};
- для удаления элемента: displayorder{ID}/remove;
- для очистки загрузчика от компонента: delete{ID}/cleanup.
Важно! Если при указании ID есть слово {default}, то команда должна писаться с /f. Когда ID пишется в виде кода, то /f писать не требуется.
Как добавить параметр через консоль (команды задаются после bcdedit/):
- скопировать текущую загрузочную запись и дать ей наименование: copy{current}/d “NewWin”;
- указать местонахождение загрузчика: set{ID}device partition=D;
- задать местонахождения операционки: set{ID} osdevice partition=D;
- добавить параметр в конец: displayorder{ID}/addlast.
Важно! Для редактирования виндовской конфигурации используется утилита с аббревиатурой BCDEDIT и ее родные команды. Вводить их нужно из командной консоли, запущенной исключительно на администраторских правах. Желательно вначале сохранить первоначальную конфигурацию «BDC». Например, на одном из накопителей создать папку «BootBackup», а потом перекинуть данные в это хранилище (export D:\\BootBackup\\bcd). Для восстановления конфигурации нужно вместо «/export» написать «/import».
Изменение порядка
Как изменить порядок следования загрузочных записей (команды задаются после bcdedit/):
- выполнить запуск командной строки на администраторских правах;
- вывести список всех элементов на дисплей;
- ID всех операционок находятся в блоке «Диспетчер…» в строчке: displayorder;
- конкретное ID и название операционки находится в одном из блоков «Загрузки…» в строчках: description (наименование ОС) и идентификатор (ID);
- поставить вторую операционную систему на первое место можно так: displayorder{ID2}{ID1};
- добавить операционку в начало (конец) своего списка удастся так: displayorder{ID}/addfirst (addlast).
Важно! Именно из командной консоли удастся изменить порядок следования дополнительных загрузочных записей. Однако загружаемый по умолчанию Виндовс так и останется на первом месте. Дополнительно необходимо изменить порядок в Metro-интерфейсе.
Способ изменения порядка с помощью утилиты EasyBCD:
- скачать софт на ПК;
- запустить утилиту;
- отыскать «Редактировать меню загрузки»;
- переупорядочить последовательность элементов.
Выбор системы по умолчанию
Как выставить режим в момент включения ПК:
- включить устройство;
- когда на дисплее появится «Выберите ОС», самостоятельно активировать опцию «Изменить значения по умолчанию…»;
- появится окно «Параметры»;
- активировать «Выбрать ОС по умолчанию».
Как настроить режим на работающем ПК:
- активировать «Система»;
- отыскать «Дополнительные параметры системы»;
- активировать окошко «Свойства…»;
- перейти в окошке «Свойства…» во вкладку под названием «Дополнительно»;
- отыскать «Загрузка и восстановление»;
- активировать «Параметры»;
- выбрать операционку, которая запустится «по умол.»;
- при желании активировать опцию «Отображать список…сек.» или «Отображать варианты восстановления…сек.».
Как задать режим «по умолчанию» из командной консоли (команды задаются после bcdedit/):
- активировать консоль;
- назначить current Win, загружаемый в режиме «по умол.»: default {current};
- назначить иную операционку загружаемую в режиме «по умол.»: default {ID}.
Можно ли переименовать систему в меню загрузки?
Как самостоятельно редактировать БСД (переименовывать операционку):
- активировать командную консоль на администраторских правах;
- вывести список элементов на дисплей;
- изменить наименование: bcdedit/set {current} description «Наименование».
Как изменить загрузочную запись через EasyBCD:
- запустить скачанную утилиту на ПК;
- отыскать подпункт «Редактировать меню загрузки»;
- перейти в «Редактирование загрузочного…»;
- отметить в списке конкретный элемент для переименования;
- кликнуть на кнопку «Переименовать»;
- написать новое наименование операционки.
Изменение времени отображения меню
Как изменить таймер для загрузчика:
- активировать командную консоль на администраторских правах;
- выставить время в секундах «??», по истечению которого начнется процедура запуска ОС: «bcdedit/timeout ??».
Вам помогло? Поделитесь с друзьями — помогите и нам!
Пару недель назад мы рассказывали о неплохой утилите WinToUSB, сейчас пришла очередь поведать о другой полезной программе от этого разработчика. EasyUEFI — это инструмент для редактирования загрузочного меню, служащего для запуска операционных систем, на компьютерах использующих UEFI.
С помощью этой программы пользователь легко сможет добавить новые пункты в загрузочное меню (к примеру установленный на том же компьютере дистрибутив Linux), отключить, удалить, отредактировать уже существующие, воспользоваться функцией разового запуска с нужными параметрами.
Кроме прочего пользователю доступны функции создания резервных копий загрузчика, установки нужного таймаута до старта системы. В качестве полезного бонуса в комплекте предлагается утилита для создания загрузочного диска с WinPE, который может пригодиться при восстановлении системы.
Распространяется EasyUEFI бесплатно, языки интерфейса: английский, китайский, корейский. Помните о том, что использовать подобного рода программное обеспечение нужно с умом и знанием дела.
Как устроена загрузка современных ОС? Как при установке системы настроить загрузку посредством UEFI, не утонув в руководствах и ничего не сломав?
Я обещал «самое краткое руководство». Вот оно:
TL;DR не надо прописывать путь к загрузчику в новых загрузочных записях UEFI — надо файл загрузчика расположить по стандартному «пути по-умолчанию», где UEFI его найдет, и вместо загрузочного меню UEFI пользоваться меню загрузчика, которое гораздо проще и безопаснее настраивается
Есть, на самом-то деле, несколько способов настроить UEFI-загрузку. Я начну с описания других вариантов — чтобы было понятно, как (и почему) делать не надо. Если вы пришли за руководством — мотайте в самый низ.
Наиболее «популярная» процедура установки загрузчика в систему такова: установщик ОС создаёт специальный раздел, на нём — структуру каталогов и размещает файлы загрузчика. После этого он с помощью особой утилиты (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-скриптов, которые до сих пор валяются у меня в корневой ФС:
Это чёртов мастодонт, 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 — система будет спокойно загружаться с флешки, не видя разницы.
Можно ли обновить мой BIOS на UEFI?
Не совсем. UEFI нельзя прошить вместо BIOS, поскольку он занимает гораздо больше памяти. Но существует такая штука, как DUET. Это загружаемая из BIOS посредством отдельного загрузочного раздела среда UEFI, которая может быть полезна, если вы собираетесь использовать диски объемом >2Тб на своем старом железе с BIOS. Подробнее можно ознакомиться здесь: http://www.rodsbooks.com/bios2uefi/
Что такое 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 либо аналоги.
Источник
Ручное восстановление конфигурации загрузчика BCD и записи MBR в Windows 10
Диспетчер загрузки в современных версиях Windows использует файл конфигурации загрузки BCD (Boot Configuration Data) для запуска операционной системы, установленной на компьютере. В этом файле хранятся данные об установленной Windows и параметрах ее загрузки. Если файл BCD удален или поврежден, Windows перестает загружаться. Также вы не сможете загрузить Windows, если повреждена MBR запись на жестком диске. В этой статье мы покажем способ ручного пересоздания файла хранилища данных конфигурации загрузки BCD и Master Boot Record (MBR) на примере Windows 10.
Если файл BCD поврежден, отсутствует, если вы удалили / отформатировали отдельный раздел диска с меткой System Reserved (и размером 500Мб), специальный OEM раздел, то скорее всего при попытке загрузить Windows, пользователь увидит такое сообщение:
При повреждении MBR может быть ошибка No operating system found.
Автоматическое восстановление конфигурации загрузчика Windows
При появлении такой ошибки, в первую очередь попытайтесь исправить проблему с загрузкой ОС с помощью режима автоматического восстановления (Startup Repair), который можно запустить из среды восстановления Windows RE.
В этом примере я буду использовать установочный диск с Windows 10. Выберите в настройках BIOS первичным загрузочным устройство DVD диск или USB флешку (в зависимости от того, с какого устройства вы хотите загрузить компьютер). Загрузитесь с установочного диска и на экране выбора языка установки нажмите сочетание клавиш Shift+F10. Перед вами откроется консоль командной строки.
Попробуйте восстановить BCD файл автоматически, выполнив команду:
Перезагрузите компьютер и проверьте, загружается ли Windows (не забудьте изменить приоритет загрузочных устройств в BIOS). Если ОС не загружается, еще раз загрузитесь с установочного диска и откройте окно командной строки.
Идентификация разметки дисков и букв томов
Как понять, используется ли у вас BIOS или UEFI система? Проще всего проверить тип таблицы разделов на диске, на котором установлена Windows: GPT или MBR. Для этого выполните команду:
Если у диска в столбце Gpt указана звездочка (*), значит на диске используется таблица разделов GPT (это значит, что у вас компьютер с UEFI, и для восстановления загрузчика нужно использовать статью по ссылке выше). Если в столбце GPT звездочка отсутствует, значит у вас на диске таблица разделов MBR, и вы можете продолжить следовать данной инструкции.
Далее вам нужно идентифицировать локальные диски и разделы системы (скорее всего назначенные им буквы дисков будут отличаться от дисков, которые вы видели при работе в Windows). Проще всего это сделать с помощью утилиты diskpart. Выполните следующие команды:
Перед вами появится список разделов в системе, назначенные им буквы дисков и их размер. В нашем случае к компьютеру подключен 1 жесткий диск, на котором имеются всего два раздела:
Восстановление загрузочного сектора MBR в Windows 10
С помощью следующих команд мы перезапишем данные в MBR и загрузочном секторе, поместим в них ссылки на загрузчик Windows (bootloader).
bootrec.exe /fixmbr
bootsect.exe /nt60 all /force
bootrec /FixBoot – команда создает новые загрузочный сектор на системном разделе.
bootrec /ScanOs
bootrec /RebuildBcd – сканирование всех дисков и поиск установленных Windows, занесение найденных копий в конфигурацию загрузчика BCD
После этого перезагрузите компьютер и проверьте загрузку Windows. Если ОС не загружается, следуйте инструкции.
Если команда bootsect.exe не будет найдена, попробуйте указать путь к ней:
X:bootbootsect.exe /nt60 all /force
Пересоздание BCD файла загрузчика Windows 10
Далее с помощью команды BCDedit нужно создать новый файл с конфигурацией загрузчика (предполагается, что у вас нет резервной копии BCD).
Удалите старый (поврежденный) файл BCD на разделе System Reserved и создайте вместо него новый.
del c:bootbcd
Выберите диск (в моем случае в компьютере имеется всего один жесткий диск, а вы можете вывести список дисков командой list disk): select disk 0
Из скриншота выше видно, что раздел с меткой System Reserverd называется Volume 1. Выберите его: select volume 1
Назначьте букву диска (я назначил букву C:, но вы можете использовать любую другую букву, в этом случае измените путь в следующих командах): assign letter C:
Создайте временный пустой файл bcd.tmp:
bcdedit /createstore c:bootbcd.tmp
Создайте запись для диспетчера загрузки bootmgr:
bcdedit.exe /store c:bootbcd.tmp /create /d «Windows Boot Manager»
Импортируйте в BCD настройки из файла bcd.tmp:
bcdedit.exe /import c:bootbcd.tmp
Укажите, что загрузчик находится на служебном разделе System Reserved (ему назначена буква диска C: )
bcdedit.exe /set device partition=c:
Настройте время ожидания при выборе ОС:
bcdedit.exe /timeout 10
Удалите временный файл:
del c:bootbcd.tmp
Команда должна вернуть уникальный идентификатор (GUID) данной записи загрузчика:
Укажем, что bootmgr должен использовать данную запись по-умолчанию (после истечения времени ожидания при выборе ОС, для загрузки будет используется именно эта запись).
Теперь в новой записи загрузчика осталось указать пути к имеющейся на диске установленной копии Windows 10. Ранее мы определили, что в среде WinPE диску с установленной Windows присвоена буква D:. Используйте эту букву диска в следующих командах:
bcdedit.exe /set device partition=d:
bcdedit.exe /set osdevice partition=d:
bcdedit.exe /set path Windowssystem32winload.exe
bcdedit.exe /set systemroot Windows
Осталось сделать данную загрузочную запись в BCD видимой (по умолчанию она скрыта):
bcdedit.exe /displayorder /addlast
Итак, мы полностью пересоздали загрузчик Windows 10 (обновили файл BCD и перезаписали загрузочный сектор в MBR). Теперь вы можете перезагрузить компьютер и убедится, что Windows 10 загружается в штатном режиме.
ren c:bootbcd bcd.bak
bcdboot d:windows /l ru-ru /s c:
Но за статью спасибо!
Bcdedit всегда вселял тихий ужас.
Boot.ini был в этом плане гораздо более человечней… 🙂
bcdboot c:windows /l ru-ru
Отработало на отлично и без указания /s C:
Пожалуйста!
Не ленитесь и оставляйте свои комментарии у статей которые Вам помогли. Это дань уважения как автору, так и подсказка другим людям с аналогичной проблемой.
🙂
Спасибо! Думал, уже ничего не поможет, система восстановилась!
Следовал порядку действий но на 3 этапе возникла проблема
Создайте временный пустой файл bcd.tmp
bcdedit /createstore c:bootbcd.tmp
Создайте запись для диспетчера загрузки bootmgr.
bcdedit.exe /store c:bootbcd.tmp /create /d «Windows Boot Manager»
У меня то же самое. Активный загрузочный диск С, система вин7 на диске F. BCD не удалилось,может потоу что папка BOOT скрытая, но временный файл создался. Т.е. файл c:bootbcd.tmp существует, а импортироваться не хочет.
Загрузился с другого диска (не установочного), вручную удалил BCD из папки boot на диске С — ничего не изменилось.
Аналогично, на этом пункте та же ошибка.
Проверьте путь, скорее всего буква диска вашей копии Windows не C:, в данном случае это системный диск среды WinPE.
Выведите содержимое диска C: командой dir c:, по каталогам и файлам на нем будет понятно что это за диск
На что именно обратить внимание?
У меня выдало следующее:
Том в устройстве С имеет метку Зарезервировано системой
Серийный номер тома: ——
Содержимое папки С:
0 Recovery.txt
Temp
1 файлов 0 байт
1 папка 157 904 896 байт свободно
У меня та же ошибка про импорт файла.
Судя по моим данным я верно выбрал букву? Не могу понять.
Добрый день. Можно назначить букву любому разделу с помощью diskpart (assign letter …).
См. примеры в статье:
https://winitpro.ru/index.php/2014/03/20/repair-bootloader-windows-8-uefi/
Все получалось до этих последних 5ти команд:
bcdedit.exe /set device partition=d:
bcdedit.exe /set osdevice partition=d:
bcdedit.exe /set path Windowssystem32winload.exe
bcdedit.exe /set systemroot Windows
bcdedit.exe /displayorder /addlast
После выдает ошибку :»Ошибка при установке ссылки указанной записи. Не удается найти указанный файл.»
PS
Восстанавливаю загрузку Win7. Разделы имеют назв. букв такие же (с: и d: сответсвенно по примеру статьи)
Не выполнив последних пять команд из-за ошибок, ПК после перезагрузки начал выдавать ошибку 0хс0000034
Подскажите.
У меня в системнике два диска. Один хдд, а второй ссд.
Установил на хдд 10ку.
Затем я приобрёл ссд и на него установил 10ку.
В итоги у меня получилось 2 системы.
Решил избавиться от одной системы (которая установлена на хдд диске) и заодно объединить диск (был раздел под систему и раздел под все остальное).
Отфармотировал диск на хдд и после перезагрузки не могу включить Винду — не видит ее.
Почему такое произошло? Ведь у меня на ссд стоит ещё одна винда. С которой я постоянно работаю. Почему сейчас он не может включать ее?
Потому что при установке винды на SSD надо было физически отключить все остальные диски.
Поскольку вы этого не сделали, то загрузчик для винды на ССД прописался на старый жесткий диск, который вы впоследствии отформатировали.
Понял и учту на будущее.
Спасибо, Вадим!
Не подскажите в какой теперь раздел прописывать bcd файл? Откуда я его снёс, на С? Ведь на ССД диске у меня так же имеется выделенное пространство (480Мб). В cmd он не обозначен как резервный (как было на С). Является ли этот раздел системным или он от ССДшника?
Установщик винды, если у нее нет возможности создать отдельный раздел под загрузчик, создаёт папку BOOT на том же разделе, на котором расположена папка WINDOWS.
Так что ДА: можно и на диск С:
Главное, если диск с MBR, не забыть сделать раздел АКТИВНЫМ (например, в DISKPART’е).
Если всё же диск в GPT, то проще конвертнуть его в MBR и сделать активным.
Десктопные материнки это спокойно переживут.
Не выходит. Продолжает писать, что ошибка импорта хранилища. Не удается найти запрашиваемое системное устройство. С несколькими разделами пробовал. Всё одно и то же.
Спасибо автору, форматнул неведомый локальный диск в винде на 500 мбайт, вылезла эта ошибка, помогла самая первая команда)
Здравствуйте, когда ввожу вот этот пунк bcdedit. exe /store m:bootbcd. tmp /create /c «Windows Boot Manager»
То пишет что указан неправильный ключ командной строки /с
У меня загрузчик в разделе м, а винда на с, подскажите что может быть.
Откуда вы ключ /c взяли? у bcdedit нет такого ключа…. В вашем случае команда выглядит так:
bcdedit.exe /store M:bootbcd.tmp /create /d «Windows Boot Manager»
Здравствуйте, спасибо за отве, но том системой имеет букву С
Но загрузчик то у вас на отдельном разделе… Я поэтому его и указал. А в конфигурации загрузчика BCD будет указано, где у вас находится папка Windows.
В вашем случае следующие строки должны быть такими:
bcdedit.exe /set device partition=c:
bcdedit.exe /set osdevice partition=c:
Вы случаем не в Москве находитесь? могли бы вы мне помочь? выезд есть у вас?
Спасибо за статью. Только после Вашего набора команд винда стала показывать другую ошибку. У меня несколько вопросов:
На ноуте стояла 8-ка, сама собой обновилась до 10-ки. Для ремонтирования загрузчика, мне какие инструкции брать? От 8-ки или от 10-ки (если они разные).
После Ваших инструкций, винда перестала вылетать с ошибкой и предложением попытатьсяее отремонтировать. Теперь просто черный экран. Без курсора, без мышки…..
Инструкции для Windows 10 и 8.1 идентичные.
Какая была ошибка до начала «ремонта».
Компьютер с BIOS или UEFI. Если UEFI — в каком режиме загружается компьютер — нативном или Legacy/CSM.
Безопасный режим или режим восстановления удается запустить (3 раза резет по питанию)?
Добрый день.
Спасибо за руководство. Все сделал, ошибок не было.
После перезагрузки — черный экран и начинает сильно шуметь кулер.
При перезагрузке и нажатии F4 появляется черно-белое окно, в котором можно выбрать либо загрузку Windows 10, либо альтернативную загрузку при нажатии F8. Пробовал оба варианта, но исход один — черный экран и усиленный шум кулера.
Если грузиться с восстанавливающей флешки и выбирать Восстановление при загрузке — восстановление не удается.
У меня ноут Lenovo, диск один — SSD.
Возможно какая-то проблема с самим SSD диском. Я бы снял его и проверил с помощью check SSD health утилиты производителя на другом компьютере.
К сожалению, не могу вытащить диск, т.к. ноут еще на гарантии.
Есть ли какие-то средства проверки из командной строки?
Стандартные команды не находят ошибок на диске.
Еще момент, может быть это важно, — при загрузке с флешки и попытке удалить последние обновления система пишет, что есть незавершенные обновления и удалить последние обновления невозможно.
При попытке ввести команду
The entry <8a7f03d0-5338-11e7-b495-c7fffbb9ccfs>was successfully created
выходит чсообщение «The» не является внутренней или внешней комнадой…
Это не команда, это результат выполнения предыдущей команды :).
У вас там будет свой идентификатор загрузочной записи, который нужно использовать в следующих командах.
Вопрос.Какой буквой мне обозначить диск system reserved вместо C,если этот диск не имеет буквы?Пробовал писать С,выдаёт не то.
Изначально буква диска разделу System Reserver не назначается совсем (https://winitpro.ru/index.php/2016/12/28/perenos-bootmgr-na-disk-c-v-windows-7/). В случае необходимости вы можете назначить ему произвольную букву диска, кроме занятых. C: обычно уже занят.
Спасибо,букву назначил.Но после команды del m:bootbcd выдало
The system cannot find the path specified.
Это же и выдавало после других команд с диском System Reserved
Подскажите пожалуйста.
Какая ошибка появляется при загрузке Windows 8.1?
У вас компьютер с EFI (тогда вам сюда https://winitpro.ru/index.php/2014/03/20/repair-bootloader-windows-8-uefi/) — или с BIOS (в этом случае последовательно выполните шаги из текущей статьи).
Ошибки нет (по крайней мере, ошибка не появляется на мониторе).
При включении компьютера появляется логотип НР (производитель компьютера) и бесконечно крутится колесо загрузки.
Компьютер с UEFI.
По причине обнаружения вируса в файле загрузки, антивирус безвозвратно удалил файл MBR. После этого отсутствует файл c:bootbcd
Создание точек восстановления было отключено в системе и в антивирусе, так что откат произвести невозможно.
Выполнил ручное восстановление загрузчика Windows 8.1 с помощью загрузочного диска как описано в статье, рекомендованной Вами. Почти все команды прошли успешно, только после команды ren BCD BCD.bak написано, что не удаётся найти указанный файл, а после команд bootrec /scanos и bootrec /rebuildbcd написано, что найдено операционных систем Windows 0
Лучше обсуждать вашу проблему в статье про восстановление загрузчика на UEFI системе.
Игнорируйте ошибки и выполните инструкцию до конца (ren BCD BCD.bak и bootrec это не критичные моменты).
Если компьютер все еще не загружается, проверьте какие разделы остались у вас на диске.
Через Diskpart видны следующие разделы:
Windows RE (в формате NTFS) — исправен
SYSTEM (в формате FAT32, объём 360 Мб) — исправен
MSR (в формате NTFS, объём 128 Мб) — не исправен
Диск С с операционной системой — исправен
без названия (в формате NTFS, объём 450 Мб) — исправен
Recovery In (в формате NTFS, объём 11 Гб) — исправен
Здравствуйте. Выполнил все по вашей инструкции, итог — черный экран при запуске ноутбука. Иногда он держится, иногда ноутбук выключается спустя примерно минуту.
Диск с виндой — «Е»
Диск sys. reserv. — «C»
После ввода команды bcdedit.exe /import c:bootbcd.tmp пишет:
Ошибка импорта хранилища.
Не удается найти запрошенное системное устройство.
Что делать, подскажите!
Извините, возможно не по теме, у меня система установлена на SSD диск с загрузкой из этого небольшого размера скрытого раздела Зарезервировано системой, сама система запускается с раздела C этого диска. На ПК установлены 3 диска, этот SSD для системы, второй и третий HDD, на другие HDD диски системы не устанавливались. Решил установить PE образ на диск через bootice, дело в том, что когда я выбираю в запущенной утилите bootice Диск назначения этот диск SSD, то далее через Управление MBR в окне внизу Текущий тип MBR выводится Неизвестная загрузочная запись, так и при выбранном втором HDD диске. При запуске утилиты в окне сразу по умолчанию высвечивается тот третий диск, на который я и хочу установить PE образ, при нём как раз отображается Windows NT 6.x MBR. Что у меня не так с MBR и как исправить положение?
Благодарю Вас безмерно, как и других Авторов подобных публикаций. Прошу Вас, если это не займёт у Вас много времени, объяснить: — Почему при выполнении команды bcdedit /createstore Path:BCD — создаётся новое хранилище, но доступ к нему мгновенно блокируется. И даже команда bcdedit /systore Path: не решает этой проблемы. Появляется надпись, что BCD было создано на другом компьютере и так далее.
Без загрузочного или установочного диска вы точно не решите проблему. Но и с ним не 100% шансы, не понятно чем вызван сбой. Если это просто повреждение загрузочных или системных файлов, скорее всего получится пофиксить ваш ноутбук. Сергей в комментарии выше привел несколько возможных путей решения.
Если проблема с диском или железом — то вряд ли.
Здравствуйте. Сделала описанные Вами действия, итог черный экран. Подскажите, пожалуйста, что делать? Спасибо.
Здравствуйте. Я не отрицаю свою тупость и криворукость)скорее всего именно это «Тогда вообще ничего работать не будет» я и сделала(((возможно ли каким то образом исправить сложившуюся ситуацию? Стоит win 10, ноут с предустановленной 8 обновленой до 10. Сейчас после нажатия кнопки включение черный экран, без надписей и прочего, ноут вырубается после 15-30 секунд работы. Спасибо.
И вам здравствовать, Мария. Дело не в тупости и криворукости, а в недостатке знаний по теме. Многие проблемы возникающие с ПК, на взгляд дилетанта, схожи, поэтому, найдя «рецепт решения» вроде бы его проблемы, он, скорее всего, его и применит. Исправить вашу ситуацию, скорее всего, можно, но для её решения потребуются инструменты, время и терпение. Поэтому ответьте, есть ли у вас в наличии одно из перечисленного ниже:
1.Установочный диск/флешка Windows 10.
2. Диск/флешка Восстановления Windows.
3. LiveUSB на основе WinPE Win8-10.
4. Другой исправный компьютер с Windows «на борту» и доступом к интернету.
Понятно, что при наличии четвёртого пункта заиметь остальные — не проблема, поэтому он (четвёртый пункт) наиболее желателен. Если другого компьютера нет, но есть возможность прийти к знакомым, у которых он есть, то то же самое.
Здравствуйте, Александр.
1. Есть установочная флешка с win 10 с оф сайта.
2. Нет. Резервной копии нет. Точки восстановления нет.
3. Нет.
4.Есть ноутбук на win 8.1
Мария, если я вас правильно понял, то у вас есть второй ноутбук с Windows 8.1. Чтобы не засорять данный раздел уточняющими вопросами (не имеющими отношения к статье) и ответами, предлагаю перенести наше с вами общение в другое место. Найдите сайт notebookclub(точка)org, зарегистрируйтесь на его форуме и отправьте личное сообщение форумчанину Neon2.
Создайте запись для диспетчера загрузки bootmgr.
bcdedit.exe /store c:bootbcd.tmp /create /d «Windows Boot Manager»
Указан неправильный ключ командной строки: /d
Для получения справки…
Параметр задан неверно.
Решил
ошибся в ключе
Всё перерыл, всё попробовал. На Виндовс 7 32бит. После Работы с Акронис, перестала система запускаться автоматически, приходилась при загрузке жать F10, заходить в Boot option menu, выбирать свой жёсткий диск и жать ентер. Не получалось заходить и в F8 что бы запустить устранение неполадок и восстановление системы, зайти удалось после входа F10, выбора диска, энтер и сразу F8. Пролечилось элементарным обновлением прошивки BIOS
Вопрос по теме, связан с китайским «железом». Купил недавно через Алиэкспресс нетбук A116 11,6 «Intel Atom x5-E8000 четырехъядерный Windows 10 ram 4 Гб-240 ГБ M.2 SSD. Аппарат поработал несколько дней и ОС перестала загружаться после удаления одной из мной установленных программ и перезагрузки. Обычно это не проблема, но не в этот раз.
Автовосстановления системы не произошло, а с загрузочного диска не получается, потому что нетбук не видит сторонние ни флешку, ни сидиром. Оказалось, в UEFI всё так устроено, что правом администратора обладает китайский магазин, как я понял. Я им написал, но китайцы пока не ответили.
Может, кто что знает по этому вопросу? Как восстановить заводские настройки?
Помогите у меня эта ошибка не знаю и не понимаю как исправить
Не помогло, к сожалению, все сделал — все получилось. Но после перезагрузки появляется ошибка только уже на английском, а изначально была на русском языке.
bcdedit.exe /set device partition=c: послей это команды пишет: Указанно недопустимое устройство. Присоединенное к системе устройство не работает
Diskpart видит том с буквой C:? Это тот самый диск, на котором установлена ваша Windows?
Здравствуйте!
Такая трабла, есть диск С: с виндой 10
и диск Е: который никак не обозначен, весит 800мб, предположив что это и есть резервный диск, при попытке начать один из способов, а именно del e:bootbcd
Мне выдает что система не смогла найти этот файл(System cannot find the file specified) как быть? На диске оч много важных данных, если проипался то жопа(
Посмотрите, что лежит на диске e:. Команда:
dir e:
Здравствуйте! После проведенных манипуляций компьютер зависает на логотипе материнской платы и не выдает никакой ошибки, на кнопки не реагирует. Если в самом начале загрузки нажать f11 то можно выбрать с чего грузиться, выбираю нужный носитель — черный экран. Система стоит на ссд, дополнительно установлен обычный хард. Сделал восстановление системы, картина та же.
При очередной попытке клонировать Win10 со старого SSD на новый SSD возникла проблема следующего характера: старт загрузки происходит со старого SSD, но операционная система загружается уже с нового SSD, т.е. где-то там в настройках при клонировании диска произошло изменение содержимого старого диска — направьте, пожалуйста, как в загрузчике старого ссд изменить загрузку операционной системы со старого же диска
Обычно проще всего пересоздать конфигурацию загрузчика. Вот здесь описан довольно простой способ пересоздания загрузчика для MBR и EFI систем.
https://winitpro.ru/index.php/2019/10/15/oshibka-zagruzki-operating-system-not-found/
Мне помогло старание разметки диска, и новая разметка тома. При установки в10.
У меня выдаёт ошибку на первом этапе:
C:UsersLenovo>bcdedit /createstore C:bootbcd.tmp
Ошибка создания хранилища.
Отказано в доступе.
Что делать?
Здравствуйте. Не удаётся найти файл c:bootbcd, пишет «Не удаётся найти указанный файл», когда пытаюсь создать пустой bcd(bcedit /createstore c:bootbcd.tmp) пишет «Ошибка создания хранилища. Системе не удаётся найти указанный путь.»
спасибо помогло! bootrec /FixBoot – команда создает новые загрузочный сектор на системном разделе.
bootrec /ScanOs
bootrec /RebuildBcd – сканирование всех дисков и поиск установленных Windows, занесение найденных копий в конфигурацию загрузчика BCD
После этого перезагрузите компьютер и проверьте загрузку Windows. Если ОС не загружается, следуйте инструкции.
Вот на этом моменте всё заработало! Безмерно благодарен! 31.03.21
Добрый день! Столкнулся с ошибкой 0xc0000014c, следуя инструкциям из Вашей статьи, успешно дошел до шага:
Импортируйте в BCD настройки из файла bcd.tmp:
bcdedit.exe /import c:bootbcd.tmp
На этом шаге выдается ошибка: Ошибка импорта хранилища. Не удается найти запрошенное системное устройство. Подскажите, в чем может быть проблема?
Никак не могу разобраться с этим. На ПК всего 1 SSD диск, обычный не UEFI BIOS. Работаю с единственным разделом, на котором есть папка Boot (c:boot), винда стоит на диске f:windows. Проблема на ноутбуке HP.
Источник
Adblock
detector
Редактирование загрузочного меню BIOS UEFI с помощью утилиты efibootmgr
Установка Linux или Windows могут изменять загрузочное меню в ноутбуке, добавляя в него свои пункты, например, «ubuntu».
Если операционная система удалена, этот пункт в BIOS только мешает…
Чтобы удалить пункт меню загрузки из EFI BIOS, нужна программа efibootmgr!
Данная программа efibootmgr по умолчанию входит в большинство дистрибутив Linux, устанавливать её не нужно.
Для проверки, работает ли программа, нужно запустить от имени суперпользователя программу:
sudo efibootmgr
Команда выведет список пунктов меню из setup UEFI BIOS.
Проблема может возникнуть лишь одна: при загрузке с жесткого диска с разбивкой MBR операционная система не сможет получить доступ к EFI меню, будет сообщение об ошибке: «EFI variables not supported on this system».
В таком случае есть решение: нужно перезагрузить компьютер и выполнить загрузку с «флешки» Linux с разметкой GPT (UEFI) также в режиме UEFI, выбрав пункт меню Setup «Boot override».
После чего подключиться к Wi-Fi и во временной среде выполнения Live CD программу в терминале команду установки efibootmgr:
sudo apt-get install efibootmgr
затем
sudo efibootmgr
На ноутбуке программа вывела следующий текст:
BootCurrent: 0003
Timeout: 0 seconds
BootOrder: 0001,0003,0000
Boot0000 ubuntu
Boot0001* Hard Drive
Boot0003* UEFI: USB
Как видно, пункт меню с надписью «ubuntu» под номером 0000 — его и следует удалить.
Удаление пункта меню UEFI BIOS производится командой sudo efibootmgr -b 0000 -B,
где 0000 — номер пункта меню «ubuntu» в данном случае.
Выполнил удаление пункта меню:
sudo efibootmgr -b 0000 -B
BootCurrent: 0003
Timeout: 0 seconds
BootOrder: 0001,0003
Boot0001* Hard Drive
Boot0003* UEFI: USB
Как видно из вывода программы, удаление пункта под номером 0000 выполнено успешно.
После перезагрузки в BIOS EFI нашёл этому подтверждение — пункт «ubuntu» из меню исчез.
Другие возможности программы efibootmgr описаны по ссылке:
- https://www.linuxbabe.com/ … efibootmgr-examples
Например, с помощью утилиты efibootmgr можно добавлять пункты в загрузочное меню EFI BIOS или менять порядок загрузки.
Меня же интересовало только удаление лишнего пункта.
Синтаксис команды для удаления пункта меню EFI:
sudo efibootmgr -b <num> -B
где — цифра, соответствующая пункту меню загрузки, который выводит утилита efibootmgr при её вызове без параметров.
Синтаксис команды для изменения порядка загрузки EFI BIOS или для выбора первого пункта загрузки (по умолчанию):
sudo efibootmgr -o 0003,0001,0004,0000
В данном примере пункт 0003 станет первым, 0001 вторым, 0004 третьим и 0000 четвертым в меню UEFI BIOS.
Похожие публикации
Содержание:
Здравствуйте админ! На моём ноутбуке не загружается Windows 10. Статью на вашем сайте о восстановлении загрузчика читал, но она к сожалению мне не помогла, хотя испробовал все приведённые в ней способы. В комментариях к статье один пользователь посоветовал мне создать загрузчик Windows 10 заново, но подробностей не привёл. Скажите, как это можно сделать?
Привет друзья! Если ваша Windows 10 не загружается из-за проблем с файлами, ответственными за загрузку операционной системы, располагающимися на скрытом шифрованном (EFI) системном разделе FAT32 (размер 99 Мб), то можно удалить этот раздел и затем создать заново. В результате файлы загрузчика обновятся и вполне возможно такое решение приведёт к успешной загрузке Windows. Здесь не лишним будет заметить, что за загрузку Windows отвечают файлы конфигурации хранилища загрузки (BCD) в папке Boot и менеджер загрузки системы (файл bootmgr).
Шифрованный (EFI) системный раздел FAT32, размер 99 Мб, можно увидеть в «Управлении дисками» вашего компьютера. Нам также придётся удалить первый раздел со средой восстановления (499 Мб), так как после пересоздания загрузчика она перестанет функционировать (среду восстановления можно будет позже создать заново).
Ещё мы создадим заново не отображаемый в Управлении дисками служебный раздел MSR, обязателен для разметки GPT в системах UEFI (размер 16 Мб).
Итак, перед работой ещё раз уточним, какие именно разделы мы будем удалять и затем создавать заново:
1. Раздел (499 Мб) содержащий среду восстановления Windows 10 (от данного раздела можно избавиться и пользоваться при необходимости средой восстановления, находящейся на загрузочном носителе с Win 10).
2. Раздел (99 Мб), шифрованный (EFI) системный раздел, содержащий все файлы загрузчика Windows 10.
3. Служебный раздел MSR (Microsoft System Reserved) 16 Мб, обязательный для разметки дисков GPT.
Загружаем ноутбук с загрузочной флешки с Windows 10 и в начальном окне установки системы жмём клавиатурное сочетание Shift + F10,
открывается окно командной строки, вводим команды:
diskpart
lis dis (выводит список физических дисков).
sel dis 0 (выбираем жёсткий диск ноутбука 120 Гб).
lis par (показ всех разделов выбранного диска, первые три раздела будем удалять).
sel par 1 (выбираем первый раздел
del par override (удаляем раздел, для удаления раздела ESP и MSR или раздела OEM-изготовителя ноутбука, необходимо указать параметр override)
sel par 2
del par override
sel par 3
del par override
Всё, все три скрытых раздела мы удалили.
Вводим команды:
diskpart
lis dis (выводим список дисков).
sel dis 0 (выбираем жёсткий диск ноутбука).
create par efi size=99 (создаём шифрованный (EFI) системный раздел 99 Мб).
format fs=fat32 (форматируем его в файловую систему FAT32).
creat par msr size=16 (создаём раздел MSR 16 Мб)
lis vol (выводятся все разделы жёсткого диска).
exit (выходим из diskpart)
Создаём загрузчик командой
bcdboot C:\Windows, так как буква диска операционной системы в среде восстановления (C:).
Файлы загрузки успешно созданы.
Перезагружаемся и Windows 10 должна загрузиться.
Рекомендуем другие статьи по данной теме
Заметили ошибку
Выделите и нажмите Ctrl+Enter