Время на прочтение11 мин
Количество просмотров699K
Вы когда-нибудь задумывались о том, как загружается компьютер? Независимо от аппаратуры и операционной системы, все компьютеры при загрузке используют или традиционный метод BIOS-MBR, или более современный UEFI-GPT, реализованный в последних версиях ОС.
В этой статье мы сравним структуры разделов GPT и MBR; GPT означает GUID Partition Table, а MBR — Master Boot Record. Начнём с того, что разберём сам процесс загрузки.
В следующих главах выделяются различия между стилями разделов GPT и MBR, в том числе приводятся инструкции, как осуществить преобразование между двумя стилями, и советы, какой из них выбрать.
Понимание процесса загрузки
Когда вы нажимаете кнопку питания на своём ПК, стартует процесс, который в итоге приведёт к загрузке операционной системы в память. Первая команда зависит от того, какова структура разделов на вашем жёстком диске.
Если два вида структур разделов: MBR и GPT. Структура разделов на диске определяет три вещи:
- Структура данных на диске.
- Код, который используется при загрузке, если раздел загрузочный.
- Где начинается и заканчивается раздел.
Процесс загрузки MBR
Вернёмся к процессу загрузки. Если в вашей системе используется структура разделов MBR, то первый процесс выполнения загрузит BIOS. Базовая структура ввода-вывода (Basic Input/Output System) включает в себя микропрограмму загрузчика. Микропрограмма загрузчика содержит низкоуровневые функции, такие как ввод с клавиатуры, доступ к видеодисплею, осуществление дисковых операций ввода-вывода и код для загрузки начальной стадии загрузчика. До того как BIOS может определить загрузочное устройство, он выполняет последовательность функций системной конфигурации, начиная со следующих:
- Самотестирование при включении питания.
- Обнаружение и инициализация видеокарты.
- Отображение стартового экрана BIOS.
- Осуществление быстрой проверки памяти (RAM).
- Конфигурация устройств plug and play.
- Определение загрузочного устройства.
Как только BIOS определил загрузочное устройство, он считывает первый дисковый сектор этого устройства в память. Первый сектор диска — это главная загрузочная запись (MBR) размером 512 байт. В этот размер поместились три объекта:
- Первая стадия загрузчика (446 байт).
- Таблица разделов диска (16 байт на раздел × 4 раздела) — MBR поддерживает только четыре раздела, подробнее об этом ниже.
- Подпись (2 байта).
На этом этапе MBR сканирует таблицу разделов и загружает в оперативную память загрузочный сектор — Volume Boot Record (VBR).
VBR обычно содержит начальный загрузчик программ — Initial Program Loader (IPL), этот код инициирует процесс загрузки. Начальный загрузчик программ включает в себя вторую стадию загрузчика, который затем загружает операционную систему. На системах семейства Windows NT, таких как Windows XP, начальный загрузчик программ сначала загружает другую программу под названием NT Loader (аббревиатура NTLDR), которая затем загружает операционную систему.
Для операционных систем на ядре Linux используется загрузчик GRUB (Grand Unified Bootloader). Процесс загрузки похож на описанный выше, единственная разница в наименовании загрузчиков на первой и второй стадии.
В GRUB первая стадия загрузчика называется GRUB Stage 1. Она загружает вторую стадию, известную как GRUB Stage 2. Вторая стадия загружает получает список операционных систем на жёстких дисках и предоставляет пользователю список для выбора ОС для загрузки.
Процесс загрузки GPT
На том же этапе загрузки в структуре разделов GPT происходит следующее. GPT использует UEFI, в котором нет такой как у MBR процедуры хранения в загрузочном секторе первой стадии загрузчика с последующим вызовом второй стадии загрузчика. UEFI — унифицированный расширяемый интерфейс прошивки (Unified Extensible Firmware Interface) — является более продвинутым интерфейсом, чем BIOS. Он может анализировать файловую систему и даже сам загружать файлы.
После включения вашего компьютера UEFI сначала выполняет функции системной конфигурации, также как и BIOS. Это управление энергопотреблением, установка дат и других компонентов управления системой.
Затем UEFI считывает GPT — таблицу разделов GUID. GUID расшифровывается как «глобальный уникальный идентификатор» (Globally Unique Identifier). GPT располагается в первых секторах диска, сразу после сектора 0, где по-прежнему хранится главная загрузочная запись для Legacy BIOS.
GPT определяет таблицу разделов на диске, на которой загрузчик EFI распознает системный раздел EFI. Системный раздел содержит загрузчики для всех операционных систем, установленных на других разделах жёсткого диска. Загрузчик инициализирует менеджер загрузки Windows, который затем загружает операционную систему.
Для операционных систем на ядре Linux существует версия GRUB с поддержкой EFI, которая загружает файл, такой как grub.efi, или загрузчик EFI, который загружает свой файл, такой как elilo.efi.
Вы можете заметить, что и UEFI-GPT, и BIOS-MBR передают управление загрузчику, но сами напрямую не грузят операционную систему. Однако в UEFI не требуется проходиить через несколько стадий загрузчика, как в BIOS. Процесс загрузки происходит на самой ранней стадии, в зависимости от вашей аппаратной конфигурации.
Различия между структурами разделов GPT и MBR
Если вы когда-нибудь пытались установить Windows 8 или 10 на новый компьютер, то скорее всего видели вопрос: какую структуру разделов использовать, MBR или GPT.
Если вам хочется узнать больше или вы планируете установить новую операционную систему на компьютер, то читайте дальше. Мы уже рассмотрели различия в процессах загрузки, которые стоит держать в уме, разбивая диск или выбирая структуру разделов.
GPT — более новая и продвинутая структура разделов, и у неё много преимуществ, которые я перечислю ниже. MBR используется давно, она стабильная и обладает максимальной совместимостью. Хотя GPT со временем может вытеснить MBR, поскольку предлагает более продвинутые функции, но в некоторых случаях можно использовать только MBR.
Главная загрузочная запись
MBR — традиционная структура для управления разделами диска. Поскольку она совместима с большинством систем, то по-прежнему широко используется. Главная загрузочная запись расположена в первом секторе жёсткого диска или, проще говоря, в самом его начале. Она содержит таблицу разделов — информацию об организации логических разделов на жёстком диске.
MBR также содержит исполняемый код, который сканирует разделы на предмет активной ОС и инициализирует процедуру загрузки ОС.
Диск MBR допускает только четыре основных раздела. Если вам нужно больше, то можно назначить один из разделов расширенным разделом, и на нём можно создавать больше подразделов или логических дисков.
MBR использует 32 бита для записи длины раздела, выраженной в секторах, так что каждый раздел ограничен максимальным размером 2 ТБ.
Преимущества
- Совместима с большинством систем.
Недостатки
- Допускает только четыре раздела, с возможностью создания дополнительных подразделов на одном из основных разделов.
- Ограничивает размер раздела двумя терабайтами.
- Информация о разделе хранится только в одном месте — в главной загрузочной записи. Если она повреждена, то весь диск становится нечитаемым.
Таблица разделов GUID (GPT)
GPT — более новый стандарт для определения структуры разделов на диске. Для определения структуры используются глобальные уникальные идентификаторы (GUID).
Это часть стандарта UEFI, то есть систему на основе UEFI можно установить только на диск, использующий GPT, например, таково требование функции Windows 8 Secure Boot.
GPT допускает создание неограниченного количества разделов, хотя некоторые операционные системы могут ограничивать их число 128 разделами. Также в GPT практически нет ограничения на размер раздела.
Преимущества
- Допускает неограниченное количество разделов. Лимит устанавливает операционная система, например, Windows допускает не более 128 разделов.
Не ограничивает размер раздела. Он зависит от операционной системы. Ограничение на максимальный размер раздела больше, чем объём любых существующих сегодня дисков. Для дисков с секторами по 512 байт поддерживается максимальный размер 9,4 ЗБ (один зеттабайт равен 1 073 741 824 терабайт)- GPT хранит копию раздела и загрузочных данных и может восстановить данные в случае повреждения основного заголовка GPT.
- GPT хранит значения контрольной суммы по алгоритму циклического избыточного кода (CRC) для проверки целостности своих данных (используется для проверки целостности данных заголовка GPT). В случае повреждения GPT может заметить проблему и попытаться восстановить повреждённые данные из другого места на диске.
Недостатки
- Может быть несовместима со старыми системами.
GPT против MBR
- GPT допускает неограниченное количество основных разделов, в то время как MBR допускает только четыре основных, а остальные — дополнительные.
- GPT позволяет создавать разделы любого размера, в то время как MBR имеет ограничение в 2 ТБ.
- GPT хранит копию данных раздела, позволяя восстановить их в случае повреждения основного заголовка GPT; MBR хранит только одну копию данных раздела в первом секторе жёсткого диска, что может привести к потере всей информации в случае повреждении информации о разделах.
- GPT хранит значения контрольной суммы для проверки, что данные не повреждены, и может выполнить необходимое восстановление из других областей диска в случае повреждения; MBR не имеет способа узнать о повреждении данных, вы можете узнать об этом только если компьютер откажется загружаться или исчезнет раздел.
Совместимость с операционными системами
Первый сектор (сектор 0) на диске GPT содержит защитную запись MBR, в которой записано, что на диске один раздел, который распространяется на весь носитель. В случае использования старых инструментов, которые читают только диски MBR, вы увидите один большой раздел размером с весь диск. Защитная запись сделана для того, чтобы старый инструмент ошибочно не воспринял диск как пустой и не перезаписал данные GPT новой главной загрузочной записью.
MBR защищает данные GPT от перезаписи.
Apple MacBook’и используют GPT по умолчанию, так что невозможно установить Mac OS X на систему MBR. Даже хотя Mac OS X может работать на диске MBR, но установка на него невозможна. Я пыталась сделать это, но безуспешно.
Большинство операционных систем на ядре Linux совместимы с GPT. При установке ОС Linux на диск в качестве загрузчика будет установлен GRUB 2.
Для операционных систем Windows загрузка из GPT возможна только на компьютерах с UEFI, работающих под 64-битными версиями Windows Vista, 7, 8, 10 и соответствующими серверными версиями. Если вы купили ноутбук с 64-битной версией Windows 8, то с большой вероятностью там GPT.
Windows 7 и более ранние системы обычно устанавливают на диски с MBR, но вы всё равно можете преобразовать разделы в GPT, как будет рассказано ниже.
Все версии Windows Vista, 7, 8, 10 могут считывать и использовать данные из разделов GPT — но они не могут загружаться с таких дисков без UEFI.
Так GPT или MBR?
Вы можете комфортно себя чувствовать и с MBR, и c GPT. Но учитывая преимущества GPT, упомянутые ранее, и факт постепенного перехода современных компьютеров на эту технологию, вы можете предпочесть GPT. Если цель заключается в поддержке старого оборудования или нужно использовать традиционный BIOS, то вы застряли на MBR.
Проверьте тип раздела жёсткого диска
На каждом жёстком диске под Windows можно проверить тип разделов с помощью «Управления дисками» (Disk Management). Для запуска «Управления дисками» сделайте следующее:
Нажмите сочетание «горячих клавиш» Windows+R, откроется окно для запуска программ.
Наберите diskmgmt.msc
и нажмите клавишу Enter.
Windows просканирует жёсткие диски и вскоре покажет их. Для проверки типа разделов любого жёсткого диска нажмите правой кнопкой мыши на плашку диска в нижней части интерфейса. Нужно нажимать на «Диск 0», «Диск 1» и так далее, а не на разделы.
В появившемся контекстном меню выберите «Свойства». Откроется окно со свойствами выбранного диска.
Перейдите на вкладку «Тома» и посмотрите на значение «Стиль раздела».
Если вы предпочитаете командную строку, то можете выбрать другой вариант. Его преимущества в том, что он чуть быстрее, поскольку сразу выводит на экран диски и стили разделов.
- Нажмите клавишу Windows, наберите
cmd.exe
, удерживая Ctrl и Shift, нажмите Enter. - Подтвердите UAC-сообщение о повышении привилегий в системе.
- Наберите
diskpart
и нажмите Enter. - Наберите
list disk
и снова нажмите Enter.
В списке перечислены все диски. В колонке Gpt указан стиль раздела для каждого диска. Если видите звёздочку в колонке, то это GPT, если её нет — это MBR.
Преобразование между MBR и GPT во время установки Windows
Есть два типичных сообщения об ошибке, которые могут возникнуть при установке Windows на жёсткий диск:
- Ошибка № 1: «Windows не может быть установлена на этот диск. Выбранный диск не имеет стиль разделов GPT».
- Ошибка № 2: «Windows не может быть установлена на этот диск. Выбранный диск имеет стиль разделов GPT».
Когда появляется одна из этих двух ошибок, то у вас может не быть возможности выбрать раздел для установки. Но это не значит, что с компьютером что-то не то.
Как вы уже знаете, MBR и GPT — это две абсолютно разные структуры разделов жёсткого диска. MBR — это традиционная структура разделов, а GPT — более новая.
Ошибка № 1 возникает, когда вы пытаетесь установить Windows на компьютер с UEFI, а раздел жёсткого диска не сконфигурирован для режима UEFI или совместимости с Legacy BIOS. Microsoft TechNet предлагает два варианта решения проблемы.
- Перезагрузить компьютер в режиме совместимости с Legacy BIOS. Этот вариант позволит сохранить текущий стиль раздела.
- Переформатировать диск под UEFI, используя стиль раздела GPT. Этот вариант позволит вам использовать функции прошивки UEFI. Переформатирование можно сделать самостоятельно, следуя инструкциям ниже. Всегда сохраняйте резервную копию данных перед форматированием.
Конечно, есть сторонние утилиты для преобразования дисков в GPT с сохранением данных, но всё равно безопаснее сделать резервную копию на случай, если утилита не сможет завершить преобразование.
Инструкции для преобразования жёсткого диска с MBR на GPT
С помощью Windows Setup
- Выключите компьютер и вставьте загрузочный накопитель Windows (USB или DVD).
- Загрузитесь с него в режиме UEFI.
- Выберите «Другое» (Custom) в типе установки.
- Появится экран с сообщением «Куда вы хотите установить Windows?» Выберите все разделы на диске и нажмите «Удалить».
- После успешного удаления диск будет представлять собой единую область нераспределённого пространства.
- Выберите нераспределённое пространство и нажмите «Далее». Windows определит, что компьютер загружен в режиме UEFI, и автоматически переформатирует диск с применением стиля раздела GPT. Процесс установки начнётся сразу после этого.
Преобразование вручную
- Выключите компьютер и вставьте загрузочный накопитель Windows (USB или DVD).
- Загрузитесь с него в режиме UEFI.
- Из установки Windows нажмите Shift+F10, чтобы открыть консоль. После каждой следующей команды нажимайте Enter.
- Запустите инструмент diskpart командой
diskpart
. - Чтобы выбрать диск для преобразования, наберите
list disk
. - Укажите номер диска для преобразования:
select disk #
. - Очистите диск:
clean
. - Преобразование в GPT осуществляется командой
convert gpt
. - Наберите
exit
для выхода из diskpart. - Закройте консоль и возвращайтесь к установке Windows.
- При выборе типа установки выберите «Другое». Диск будет представлять собой единую область нераспределённого пространства.
- Выберите нераспределённое пространство и нажмите «Далее». Windows начнёт установку.
Инструкции для преобразования жёсткого диска с GPT на MBR
Иногда бывает необходимо преобразовать диск в структуру разделов MBR. Например, если во время установки Windows возникает такое сообщение об ошибке:
«Windows не может быть установлена на этот диск. Выбранный диск имеет стиль разделов GPT»
Загрузка с GPT поддерживается только в 64-битных версиях Windows Vista, 7, 8, 10 и соответствующих серверных версиях на UEFI-системах. Это сообщение об ошибке означает, что ваш компьютер не поддерживает UEFI, а поэтому вы можете использовать только BIOS, который работает со структурой разделов MBR.
Microsoft TechNet предлагает два варианта решения проблемы.
- Перезагрузить компьютер в режиме совместимости с BIOS. Этот вариант позволит сохранить текущий стиль раздела.
- Переформатировать диск, используя стиль раздела MBR. Всегда сохраняйте резервную копию данных перед форматированием. Хотя есть сторонние утилиты для преобразования дисков в GPT с сохранением данных, но всё равно безопаснее сделать резервную копию на случай, если утилита не сможет завершить преобразование.
Если вы выбрали второй вариант, то следуйте пошаговой инструкции:
С помощью Windows Setup
- Выключите компьютер и вставьте загрузочный накопитель Windows (USB или DVD).
- Загрузитесь с него в режиме UEFI.
- Выберите «Другое» (Custom) в типе установки.
- Появится экран с сообщением «Куда вы хотите установить Windows?» Выберите все разделы на диске и нажмите «Удалить».
- После успешного удаления диск будет представлять собой единую область нераспределённого пространства.
- Выберите нераспределённое пространство и нажмите «Далее». Windows определит, что компьютер загружен в режиме BIOS, и автоматически переформатирует диск с применением стиля раздела MBR. Процесс установки начнётся сразу после этого.
Преобразование вручную
- Выключите компьютер и вставьте загрузочный накопитель Windows (USB или DVD).
- Загрузитесь с него в режиме BIOS.
- Из установки Windows нажмите Shift+F10, чтобы открыть консоль. После каждой следующей команды нажимайте Enter.
- Запустите инструмент diskpart командой
diskpart
. - Чтобы выбрать диск для преобразования, наберите
list disk
. - Укажите номер диска для преобразования:
select disk #
. - Очистите диск:
clean
. - Преобразование в GPT осуществляется командой
convert mbr
. - Наберите
exit
для выхода из diskpart. - Закройте консоль и возвращайтесь к установке Windows.
- При выборе типа установки выберите «Другое». Диск будет представлять собой единую область нераспределённого пространства.
- Выберите нераспределённое пространство и нажмите «Далее». Windows начнёт установку.
Учебные видео
Что такое разделы диска?
Различия между BIOS и UEFI
Таблицы разделов MBR и GPT
Источники
Следующие источники содержат дополнительную информацию о стилях разделов MBR или GPT:
- Загрузка в рехимах UEFI Mode или Legacy BIOS (Microsoft Technet)
- Загрузка из GPT (Род Смит)
- Преобразование диска MBR в диск GPT (Microsoft Technet)
- Различие между GPT и MBR (HowToGeek)
- Таблица разделов GUID (Википедия)
- Проблемы использования Legacy BIOS при использовании GPT (Род Смит)
- Главная загрузочная запись (Microsoft Technet)
- FAQ по Windows и GPT (Microsoft Hardware Dev Center)
- Windows Setup: установка с применением стилей разделов MBR или GPT (Microsoft Technet)
Организация разделов на MBR и GPT дисках (ликбез).
При подготовке дисков к работе их разбивают на разделы и в разделах создаются структуры для поддержки соответствующей файловой системы данного раздела, например, NTFS, FAT32 и др. Структуры файловых систем в разделах MBR и GPT дисков идентичны, но структуры осуществляющие разбиение на разделы у этих дисков значительно отличаются.
Таблица разделов MBR.
Таблица разделов — это часть главной загрузочной записи (MBR), состоящая из четырёх записей (строк) по 16 байт. Каждая запись описывает один из разделов жёсткого диска. Первая запись находится по смещению 1BEh от начала сектора, содержащего MBR, каждая последующая запись вплотную примыкает к предыдущей. Для созания на диске более 4 разделов используются расширеные разделы, позволяющие создать неограниченое количество логических дисков внутри себя.
MBR находится в блоке данных 1-го сектора, 0 поверхности, 0 цилиндра (или LBA 0) диска, его логически можно разделить на три основные области (рис. 1): код начального загрузчика (446 байт), таблицу разделов (четыре записи по 16 байт каждая, первая запись находится по смещению 1BEh от начала MBR) и сигнатуру — слово со значением AA55h, занимающее последние два байта MBR (смещение 1FEh). BIOS проверяет сигнатуру, чтобы убедиться в корректности MBR, если сигнатура не равна указанному значению, загрузка не выполняется и выдаётся сообщение об ошибке.
В операционных системах Microsoft серии Windows NT и их последовательницах, включая Windows Vista и Windows 7, а также в некоторых альтернативных системах длина области загрузчика была сокращена до 440 байт; непосредственно за ней (со смещения 1B8h) следует четырёхбайтовая сигнатура («номер») диска и два резервных байта, обычно равных нулю (рис. 2). Существуют и структуры более современного варианта MBR (рис. 3).
Начальный загрузчик, находящийся в MBR, в общем случае определяет, какой из разделов диска является активным, загружает в память начальный сектор этого раздела (Boot-сектор) и передаёт ему управление.
Рис. 1. Структура MBR (блок данных 1 сектора, 0 поверхности, 0 цилиндра — или LBA 0).
Рис. 2. Структура MBR.
Рис. 3. Структура более современного варианта MBR.
Каждая 16-ти байтная строка таблицы разделов MBR определяет раздел следующим образом (см. рис. 4). Адреса начала и конца раздела задаются в формате CHS или в формате LBA.
Рис. 4. Формат строки таблицы разделов.
В формате CHS используемом традиционными функциями дискового сервиса BIOS, номер цилиндра разорван на две части (рис. 5): старшие два бита хранятся в двух старших битах слова, отведённого под номера цилиндра и сектора; за ними следуют шесть бит номера сектора, а младшие восемь бит номера цилиндра занимают весь младший байт слова. Если задать корректный адрес с помощью формата CHS невозможно, все три байта полей начала и конца раздела должны содержать FFh.
Рис. 5. Два байта (2-й и 3-й) содержащие номер цилиндра и номер сектора.
32-разрядные номер начального сектора раздела и количество секторов в разделе, указанные в таблице разделов, позволяют использовать функции расширенного дискового сервиса, поддерживающие адресацию LBA. В этом случае 32-разрядный номер сектора является младшим двойным словом адреса в формате LBA, а старшее двойное слово будет равно нулю. Если число секторов в разделе превосходит FFFFFFFFh, то в поле длины указывается это значение. Если в 0-м байте строки содержится 80h — раздел активный из него возможна загрузка операционной системы, если в нем 00h — раздел неактивный (предназначен для хранения файлов). В 4-м байте строки указывается код тип файловой системы используемой в данном разделе (рис. 6).
Рис. 6. Коды определяющие тип файловой системы раздела (существуют и др. коды).
32-разрядные номер и количество секторов позволяют работать с разделами ёмкостью до 2 Тбайт; для выхода за пределы этого ограничения применяется иная схема деления диска на разделы, основанная на GUID-таблице разделов (GPT).
Таблица разделов GPT.
На рис. 7 показана структура диска GPT. GUID Partition Table (GPT) — стандарт формата размещения таблиц разделов на физическом жестком диске. Он является частью Расширяемого программного интерфейса (англ. Extensible Firmware Interface, EFI) — стандарта, предложенного Intel на смену BIOS. EFI использует GPT там, где BIOS использует Главную загрузочную запись (англ. Master Boot Record, MBR).
GUID Partition Table (GPT) является стандартом для верстки таблицы разделов на физическом жестком диске, c использованием глобальных уникальных идентификаторов (GUID). Хотя это является частью Unified Extensible Firmware Interface (UEFI), он также используется на некоторых BIOS системах из-за ограничения таблиц разделов в MBR. Диски GPT поддерживают тома до 18 эксабайт (1024 петабайт или 1048576 терабайт) и 128 разделов.
Рис. 7. Структура диска GPT.
UEFI — это стандартный интерфейс встроенного программного обеспечения (ПО) для компьютеров, заменяющий BIOS. В создании этого стандарта участвовали более 140 технологических компаний, составляющих часть консорциума UEFI, включая Майкрософт. Стандарт был создан для улучшения взаимодействия программного обеспечения и устранения ограничений BIOS.Вот некоторые из преимуществ UEFI:
— повышение безопасности при защите процессов, происходящих перед запуском или загрузкой, от атак bootkit.
— уменьшение времени загрузки или восстановления после гибернации;
— поддержка дисков объемом более 2,2 Тбайт;
— поддержка современных драйверов устройств с 64-разрядным встроенным ПО, которые система может использовать для привлечения более 17,2 миллиарда гигабайт памяти во время запуска;
— возможность использовать BIOS с оборудованием UEFI.
MBR (главная загрузочная запись) в силу своих особенностей ограничивает максимальный размер загрузочного диска до 2,2 ТБ. UEFI использует таблицу разделов GUID, которая использует глобальные уникальные идентификаторы и адреса разделов которые позволяют загрузку с жесткого диска такого размера, как 9,4 ZB (зетабайт). Терабайт составляет 1024 Гб, а зетабайта (zebibyte) является 1024x1024x1024 Гб. Также UEFI позволяет больше вариантов загрузки, не предписывает особые файловые системы и имеет превосходные способности к загрузке сети. Более быстрая загрузка осуществляется за счет отсутствия необходимости поиска загрузчика на всех диска.
Отсутствует ограничение на 4 основных раздела, и как следствие — отсутствие необходимости в логических разделах. Повышенная безопасность — GPT хранит резервную копию таблицы разделов в конце диска, поэтому в случае неполадок существует возможность восстановления разметки при помощи запасной таблицы. Реализована защита от повреждения устаревшими программами посредством Protective MBR. Существует возможность использования старых загрузочных секторов.
В отличие от MBR, которая начинается с исполняемой двоичной программы, призванной идентифицировать и загрузить ОС из активного раздела, GPT (рис. 7) опирается на расширенные возможности EFI для осуществления этих процессов. Однако MBR присутствует в самом начале диска (блок LBA 0) как для защиты, так и в целях совместимости. Собственно GPT начинается с Оглавления таблицы разделов (англ. Partition Table Header – загодовок GPT).
GPT использует современную систему адресации логических блоков (LBA) вместо применявшейся в MBR адресации «Цилиндр — Головка — Сектор» (CHS). Доставшаяся по наследству MBR со всей своей информацией содержится в блоке LBA 0, оглавление GPT — в блоке LBA 1.
В оглавлении содержится адрес блока, где начинается сама таблица разделов, обычно это следующий блок — LBA 2. В случае 64-битной версии ОС Microsoft Windows NT, за таблицей разделов было зарезервировано 16384 байт (при использовании сектора размером 512 байт это будет 32 сектора), так что первым используемым сектором каждого жёсткого диска в ней будет блок LBA 34. Кроме того, GPT обеспечивает дублирование — оглавление и таблица разделов записаны как в начале, так и в конце диска. Теоретически, GPT позволяет создавать разделы диска размером до 9,4 ЗБ (9,4 × 1021 байт), в то время как MBR может работать только до 2,2 ТБ (2,2 × 1012 байт).
Основная цель помещения MBR в начало диска c GPT чисто защитная. MBR-ориентированные дисковые утилиты могут не распознать и даже переписать GPT диски. Чтобы избежать этого, в таблице разделов MBR указывается наличие всего одного раздела, охватывающего весь GPT диск). Системный идентификатор (англ. System ID) для этого раздела устанавливается в значение 0xEE, указывающее, что применяется GPT. Вследствие этого EFI игнорирует MBR. Некоторые 32-битные операционные системы, не приспособленные для чтения дисков, содержащих GPT, тем не менее распознают этот cистемный идентификатор и представляют том в качестве недоступного GPT диска. Более старые ОС обычно представляют диск, как содержащий единственный раздел неизвестного типа и без свободного места; как правило, они отказываются модифицировать такой диск, пока пользователь явно не потребует и не подтвердит удаление данного раздела. Таким способом предотвращается случайное стирание содержимого GPT диска.
Оглавление (GPT заголовок) таблицы разделов (LBA 1) указывает те логические блоки на диске, которые могут быть задействованы пользователем (англ. the usable blocks). Оно также указывает число и размер записей данных о разделах, составляющих таблицу разделов. Так на машине с установленной 64-битной ОС Microsoft Windows Server 2003, было зарезервировано 128 записей данных о разделах, каждая запись длиной 128 байт. Таким образом возможно создание 128 разделов на диске.
Оглавление содержит GUID (англ. Globally Unique IDentifier — Глобально Уникальный Идентификатор) диска. В оглавлении также содержится его собственный размер и местоположение (всегда блок LBA 1), а также размер и местоположение вторичного (запасного) оглавления и таблицы разделов, которые всегда размещаются в последних секторах диска. Важно, что оно также содержит контрольную сумму CRC32 для себя и для таблицы разделов. Эти контрольные суммы проверяются процессами EFI при загрузке машины. Из-за проверок контрольных сумм недопустима и бессмысленна модификация содержимого GPT в шестнадцатеричных редакторах. Всякое редактирование нарушит соответствие содержания контрольным суммам, после чего EFI перезапишет первичный GPT вторичным. Если же оба GPT будут содержать неверные контрольные суммы, доступ к диску станет невозможным.
Первой структурой данных GPT является её заголовок (GPT Header); он размещается в первом секторе диска (LBA 1). Длина заголовка в будущем может увеличиться, однако он никогда не превысит размер одного физического сектора диска. Для увеличения надёжности хранения данных и устойчивости к сбоям предусмотрена резервная копия заголовка GPT, она хранится в последем секторе диска. Обе копии заголовка имеют ссылки друг на друга. Поля FirstUsableLBA и LastUsableLBA (рис. 8) определяют область диска, доступную для размещения в ней разделов. За пределами этой области находятся лишь структуры данных UEFI, предназначенные для управления разделами, то есть MBR, заголовок GPT и массив разделов GPT.
Рис. 8. Заголовок (GPT Header).
Массив разделов. Записи данных о разделах (массив разделов: LBA 2-33). Массив разделов начинается непосредственно за блоком заголовка GPT, то есть со второго блока диска (LBA 2). Копия массива находится в конце диска и вплотную примыкает к копии заголовка, то есть кончается предпоследним блоком диска. Массив разделов состоит из записей одинакового формата, каждая из которых описывает один раздел диска. Первая запись начинается с начала первого сектора массива, последующие вплотную примыкают друг к другу. Размер записей может меняться, однако на одном диске все записи имеют одинаковую длину, указанную в заголовке GPT и кратную 8 (рис. 9). Например, на машине с установленной 64-битной ОС Microsoft Windows, зарезервировано 128 записей данных о разделах, каждая запись длиной 128 байт (т. о. возможно создание 128 разделов на диске).
Записи данных о разделах (англ. Partition entries) просты и расположены с равным приращением адресов. Первые 16 байт определяют GUID типа раздела (например, GUID системного EFI-раздела имеет вид «C12A7328-F81F-11D2-BA4B-00A0C93EC93B»). Следующие 16 байт содержат GUID, уникальный для данного конкретного раздела. Далее записываются данные о начальном и конечном (64-бита) LBA раздела. Остальное место отводится информации об именах и атрибутах разделов.
Рис. 9. Запись определяющая раздел (128 байт).
Разработчики ОС для своих файловых систем формируют собственные коды GUID. Каждая файловая система получает свой GUID, однозначно ее идентифицирующий (рис. 10).
Рис. 10.
GPT использует простые и прямые 128 байтные записи для описания разделов. Первые 16 байт обозначают тип раздела — глобально уникальный идентификатор (GUID). Например, для системного раздела EFI {C12A7328-F81F-11D2-BA4B-00A0C93EC93B}. Вторые 16 байтов содержат GUID уникальный для раздела. Затем следуют 64-разрядные (8 байт) LBA адреса начального и конечного логического блока раздела, далее (8 байт) атрибуты раздела (флаги атрибутов), далее имя раздела (72 байта).
Местоположение массива записей разделов на диске определяется в заголовке GPT. Заголовок GPT содержит поле, указывающее размер записи таблицы разделов. Минимально необходимый составляет 128 байт, но реализации должны предусмотреть возможность использования других значений. Кроме того, в расчетах (см. Advanced Format) размер сектора не должен считаться жестко установленым на 512 байт в секторе, то есть, не может быть более четырех записей разделов в одном секторе. Спецификация GPT просто описывает размер и организацию структуры данных, а не в том, как много секторов она занимает на диске. 64 бита атрибутов таблицы разделов делятся между 48 бит — общие характеристики для всех типов разделов и — 16 бит для конкретного типа атрибутов. Каждый раздел имеет поле атрибутов длиной 64 бита. Версия 2.2 спецификации UEFI определяла их следующим образом (см. рис. 11).
Рис. 11. 64 бита атрибутов в записи таблицы разделов.
Материнским платам с UEFI, не нужна BIOS, потому что в ней есть своя встроенная BIOS, называется — модуль поддержки совместимости. Поэтому те программы, которым для работы нужен был BIOS, спокойно могут работать и на компьютерах с UEFI.
В этой статье мы покажем, как вручную восстановить случайно удаленный загрузочный EFI раздел Windows на компьютере с UEFI. Этот простой способ ручного пересоздания загрузочного EFI и MSR разделов Windows позволит вам загрузить ОС после случайного форматирования или удаления загрузочного EFI раздела. Инструкции в статье актуальны для всех версий Windows (в том числе Windows 10 и 11, и Windows Server).
Если вы случайно (или не очень случайно, например при попытке удалить с диска OEM разделы производителя) удалили или отформатировали загрузочный EFI раздел на компьютере с UEFI (не BIOS), ваша Windows 11/10/8.1 /7 перестанет загружаться и будет циклически предлагать выбрать загрузочное устройство (
Reboot and select proper boot device or insert boot media in selected
или
Windows Boot Manager: No media
). Далее мы покажем, как восстановить загрузку Windows при удалении раздела диска с загрузчиком Boot Manager без переустановки ОС.
Предупреждение. Инструкция предполагает работу с разделами диска и не предназначена новичкам. В случае неверной интерпретации команд, вы можете случайно удалить все данные на жестком диске. Также настоятельно рекомендуется создать резервную копию важных данных на отдельном носителе.
Содержание:
- Структура разделов GPT диска для Windows
- Что будет, если в Windows отсутствует раздел EFI?
- Как вручную создать EFI и MSR разделы на GPT диске?
- Восстановление EFI загрузчика и BCD в Windows
Структура разделов GPT диска для Windows
Рассмотрим, как должна выглядеть таблица разделов загрузочного жесткого диска Windows с GPT разметкой на UEFI компьютере. Как минимум должны присутствовать следующие разделы:
- Системный раздел EFI (Extensible Firmware Interface, или EFI System Partition — ESP) с загрузчиком – 100 Мб (тип раздела — EFI);
- Резервный раздел Майкрософт (Microsoft Reserved) – 128 Мб (тип раздела — MSR);
- Основной раздел Windows – раздел с Windows.
Это именно минимальная конфигурация. Эти разделы создает установщик Windows при чистой установке системы на неразмеченный диск.
Производители компьютеров или сами пользователи могут дополнительно создавать собственные разделы, содержащие, к примеру раздел Recovery со средой восстановления Windows в файле winre.wim (Windows RE), раздел с резервным образом системы от производителя (позволяет откатится к исходному состоянию компьютера), пользовательские разделы и т.д.
Раздел EFI c файловой системой FAT32 является обязательным на дисках с GPT разметкой на UEFI системах и имеет GUID
c12a7328-f81f-11d2-ba4b-00a0c93ec93b
. Стандартный размер EFI раздела 100Мб (на дисках расширенного формата с секторами 4Кб /4K Native / размер EFI раздела 260Мб).
MSR раздел раздел (Microsoft System Reserved) на GPT диске используется для упрощения управления разделами и используется для служебных операций (например, при конвертировании диска из простого в динамический). Это резервный раздел c GUID
e3c9e316-0b5c-4db8-817d-f92df00215ae
, которому не назначается код раздела. На этом разделе нельзя хранить данные пользователя. В Windows 10 и 11 размер MSR раздела – всего 16 Мб (в Windows 8.1 размер MSR раздела – 128 Мб), файловая система – NTFS. MSR раздел должен находиться между разделами EFI (ESP) и первичным разделом с операционной системой Windows.
На основном разделе с файловой системой NTFS находится установленная Windows, программы и данные пользователя. Также на диске могут присутствовать дополнительные разделы с данными.
Что будет, если в Windows отсутствует раздел EFI?
На EFI разделе (по аналогии с разделом System Reserved на дисках с MBR разметкой) хранится хранилище конфигурации загрузки (BCD) и ряд файлов, необходимых для загрузки Windows. При загрузке компьютера среда UEFI загружает загрузчик (EFI\Microsoft\Boot\bootmgfw.efi) с раздела EFI (ESP) и передает управление ему. Исполняемый файл bootmgfw.efi выполняет запуск основного загрузчика Windows Boot Manager, который загружает данные конфигурации из BCD. После загрузки BCD начинается загрузка Windows через winload.efi.
При загрузке UEFI компьютера он ищет системный раздел EFI на всех подключенных дисках. Если раздел EFI удален или поврежден, вы не сможете загрузить Windows с такого диска. Появится ошибка UEFI:
could not locate \efi\boot\bootx64.efi – not found
, пустой UEFI Shell с предложением выбрать загрузочное устройство.
Также вы не сможете загрузить Windows, если EFI раздел отформатирован в файловой системе NTFS. Даже при чистой установке Windows в таком случае вы получите ошибку:
Windows detected that the EFI system partition was formatted as NTFS. Format the EFI system partition as FAT32, and restart the installation.
Установлено, что системный раздел EFI отформатированный в NTFS. Отформатируйте системный раздел EFI в формате FAT32 и перезапустите программу установки.
Как вручную создать EFI и MSR разделы на GPT диске?
Т.к. Windows не загружается корректно, нам понадобится загрузочное устройство с Windows 10/11 или любой другой загрузочный диск (см. как создать загрузочную USB флешку c Windows для UEFI компьютера). Загрузите компьютера с установочного диска и на экране начала установки нажмите комбинацию клавиш Shift+F10. Должно открыться окно командной строки
Запустите утилиту управления дисками и разделами:
Diskpart
Выведите список жестких дисков в системе:
list disk
В этом примере к компьютеру подключен только один disk 0. Звездочка (*) в столбце Gpt означает, что на диск создана таблица разделов GPT).
Если в столбце GPT отсутствует *, значит на диске MBR таблица разделов. Вам нужно убедиться, что ранее вы загружали компьютер в нативном UEFI режиме (иначе следовать данной инструкции бессмысленно). Если вы уверены, что тип таблицы разделов сменился, возможно его нужно стоит переконвертировать из MBR в GPT.
Выберите этот диск:
Select disk 0
Выведите список разделов на диске:
List partition
В нашем примере в системе осталось всего 3 раздела:
- Раздел Reserved (MSR) — 16 Мб
- Системный раздел с Windows – 30 Гб
- Recovery (раздел восстаовления0) – 541 Мб
Как вы видите, раздел EFI (может называться System) отсутствует (удален).
Совет. Если на разделе EFI были повреждены только файлы среды EFI, а сам раздел остался на месте, вы можете пропустить процесс пересоздания разделов с помощью diskpart. В большинстве случаев достаточно восстановить загрузчик по статье Восстановление EFI загрузчика в Windows . Если у вас компьютер с BIOS и MBR диск, вы можете пересоздать BCD так.
Наша задача удалить оставшийся MSR раздел, так чтобы на диске осталось неразмечено как минимум 228 Мб свободного места (для разделов MSR и EFI). Вы можете удалить оставшийся раздел с помощью графической утилиты GParted или непосредственно из командной строки (именно так и поступим).
Важно! Здесь будьте максимально внимательными и не удалите случайно раздел с Windows или разделы с пользовательскими данными (если таковые имеются).
Выберите раздел для удаления:
Select partition 1
И удалите его:
Delete partition override
Убедитесь, что остался только Primary раздел с Windows размером 30 Гб (в нашем случае) и раздел восстановления:
List partition
Теперь вы можете вручную создать разделы EFI и MSR для размещения загрузчика Windows. Для этого в контексте утилиты diskpart последовательно выполните команды:
Выберите диск:
select disk 0
Создайте EFI раздел размером 100 Мб, отформатируйте его в файловой системе FAT32 и назначьте ему букву диска:
create partition efi size=100
Убедитесь, что в diskpart выбран раздел 100 Мб с именем System (звездочка напротив строки Partition 1):
list partition
select partition 1
format quick fs=fat32 label="System"
assign letter=G
Теперь нужно создать MSR раздел размером 16 Мб (для Windows 10 и 11):
create partition msr size=16
list partition
list vol
В нашем случае основному разделу с Windows уже назначена буква диска C:. Если это не так, назначьте ему букву следующим образом:
select vol 1
assign letter=C
exit
Назначьте букву диска вашему EFI разделу:
Select vol 3
Assign letter=G
Закройте diskpart:
exit
При создании EFI или MSR раздела может появится ошибка
No usable free extent could be found. It may be that there is insufficient free space tocreate a partition at the specified size and offset. Specify different size and offset values or don't specify either to create the maximum sized partition. It may be that the disk is partitioned using the MBR disk partitioning format and the disk contains either 4 primary partitions, (no more partitions may be created), or 3 primary partitions and one extended partition, (only logical drives may be created).
В этом случае вам нужно уменьшить раздел основного раздела с Windows на 128 Мб(в нашем примере это volume 1):
select volume 1
shrink desired=128 minimum=128
После этого создайте разделы EFI и MSR как описано выше.
Восстановление EFI загрузчика и BCD в Windows
После того, как вы создали минимальную структуру разделов для GPT диска на компьютере с UEFI, нужно скопировать загрузочные файлы EFI на ваш диск и создать конфигурационный файла загрузчика (BCD).
Теперь с помощью утилиты bcdboot.exe скопируйте файлы среды загрузки UEFI из системного каталога Windows в загрузочный EFI раздел и пересоздайте конфигурацию загрузчика BCD. Выполните команду:
bcdboot c:\windows /s G: /f UEFI
Boot files successfully created.
В результате на EFI разделе будет создана структура каталогов. На системном разделе EFI должны обязательно присутствовать следующие файлы:
- \EFI\Microsoft\Boot\bootmgfw.efi
- \EFI\Microsoft\Boot\bootmgr.efi
- \EFI\Microsoft\Boot\memtest.efi
- \EFI\Microsoft\Boot\BCD
- \EFI\Microsoft\Boot\Fonts\wgl4_boot.ttf
- \EFI\Boot\bootx64.efi
Выведите текущую конфигурацию загрузчика Windows Boot Manager. В разделе {bootmgr} должна появиться запись, которая указывает на раздел с файлом управления загрузкой UEFI (
\EFI\MICROSOFT\BOOT\bootmgfw.efi
). В этом примере это
partition=G
, или
partition=\Device\HarddiskVolume2
(если вы не назначили букву EFI разделу).
Загрузчик UEFI затем должен передать управление файлу загрузчика Windows Boot Loader
\Windows\system32\winload.efi
на partition=C:
Перезагрузите компьютер (для перезагрузки из среды WinPE нужно выполнить команду wpeutil reboot) и извлеките загрузочную флешку.
Опционально! Вы можете вручную выполнить действия, которые выполняет команда bcdboot. Далее мы покажем, как самостоятельно скопировать системные файлы EFI и пересоздать BCD.
Скопируйте загрузочные файлы среды EFI из каталога вашего диска, на который установлена ваша Windows:
mkdir G:\EFI\Microsoft\Boot
xcopy /s C:\Windows\Boot\EFI\*.* G:\EFI\Microsoft\Boot
Пересоздайте конфигурацию загрузчика Windows:
g:
cd EFI\Microsoft\Boot
bcdedit /createstore BCD
bcdedit /store BCD /create {bootmgr} /d “Windows Boot Manager”
bcdedit /store BCD /create /d “Windows 10” /application osloader
Команда возвращает GUID созданной записи. Этот GUID нужно подставить в следующей команде вместо
{your_guid}
.
bcdedit /store BCD /set {bootmgr} default {your_guid}
bcdedit /store BCD /set {bootmgr} path \EFI\Microsoft\Boot\bootmgfw.efi
bcdedit /store BCD /set {bootmgr} displayorder {default}
Дальнейшие команды bcdedit выполняются в контексте {default}:
bcdedit /store BCD /set {default} device partition=c:
bcdedit /store BCD /set {default} osdevice partition=c:
bcdedit /store BCD /set {default} path \Windows\System32\winload.efi
bcdedit /store BCD /set {default} systemroot \Windows
exit
Если с первого раза Windows не загрузился, выполните следующие действия:
- Отключите питание компьютера;
- Отключите (физически) жесткий диск;
- Включите ПК, дождитесь появления окна с ошибкой загрузки Operating System not found. Выключите компьютер;
- Подключите диск обратно.
Если это не помогло, опять загрузитесь с установочной USB флешки и выполните команду:
bootrec /rebuildbcd
Перезагрузите компьютер
Затем в нашем случае (тестирование проводилось на виртуальной машине VMWare с UEFI средой) пришлось добавить новый загрузочный пункт меню, выбрав файл EFI\Microsoft\Boot\bootmgrfw.efi на EFI разделе.
В некоторых UEFI меню по аналогии нужно изменить приоритет загрузочных разделов.
После всех рассмотренных манипуляций Windows должна загрузиться корректно.
Совет. Если что-то не заработало, рекомендуем проверить, что загрузочный флаг (boot flag) установлен только у раздела EFI. Проще всего в этом убедится с помощью LiveCd GParted.
В некоторых случаях после пересоздания разделов EFI и MSR и восстановления BCD Windows может перестать корректно выключаться. Если у вас проявляется эта проблема, чтобы исправить ее нужно отключить функцию быстрого запуска в Windows в настройках электропитания компьютера:
- Откройте панель управления электропитанием
powercfg.cpl
; - Выберите Choose what the power buttons does;
- Нажмите кнопку Change settings that are currently unavailable и отключите опцию «Turn on fast startup» в разделе «Shutdown settings».
Как было рассказано из материала «Что такое загрузочный диск?» у нас есть два варианта таблиц разделов, для BIOS систем это MBR, для EFI это GPT. Теперь о том, что
выбрать, какой из этих вариантов таблиц использовать для будущего загрузочного
диска.
На данный момент времени не все системы используют EFI стиль жестких дисков.
Конечно каждый новый купленный компьютер, да, но вокруг все еще много старых
систем, либо они новые, но по какой-то причине размечены в старом MBR стиле и
из-за этого грузятся в BIOS режиме.
В данной ситуации, для универсальности будущего загрузочного
устройства, необходимо чтобы была возможность грузиться как в BIOS, так и в EFI системах. Рассмотрим
все возможные варианты. Их будет четыре.
Первый вариант — флешка с таблицей разделов MBR и
единственным основным активным разделом. Файловая система FAT32. В таком варианте возможна
загрузка как в BIOS так и в EFI системах.
Второй вариант — все аналогично первому варианту, кроме
файловой системы. Вместо файловой системы FAT32 используется NTFS. В таком варианте загрузка возможна только в BIOS системах.
Третий вариант – флешка с таблицей разделов MBR, содержащая в себе 2
основных раздела. Первый имеет файловую систему FAT32, второй, активный раздел с
файловой системой NTFS.
В таком варианте возможна загрузка как в BIOS так и в EFI системах.
Четвертый вариант – флешка с таблицей разделов GPT и двумя разделами.
Файловые системы аналогичны третьему варианту. В таком варианте возможна
загрузка только EFI системах.
Универсальность первого варианта достигается за счет использования
файловой системы FAT32,
которую EFI понимает изначально. Минусом такого подхода, являются
ограничения используемой файловой системы — максимальный размер файла, который
можно хранить в файловой системе FAT32, составляет 4 GB.
При использовании второго варианта, особого ущерба вы не
почувствуете, так как BIOS
материнских плат позволяет переключаться между режимами UEFI или Legacy. Но есть минусы, если
вы будете устанавливать операционные системы с таких загрузочных дисков. При установке
жесткий диск будет размечаться в MBR стиле так как загрузка производилась
в BIOS
режиме.
В третьем варианте специально используется отдельный FAT32 раздел для загрузки в
режиме EFI. Для данного
раздела характерен небольшой объём, порядка 100 MB. В нем располагается какой-нибудь
универсальный загрузчик (например GRUB2), поддерживающий файловую систему NTFS, или же драйвер файловой системы NTFS, для загрузки с второго
раздела. Основное файловое хранилище отводится второму разделу.
Последний вариант целиком и полностью предназначен для EFI систем.
Суть разделов такая же как и в третьем варианте, единственное различие это
используемая таблица разделов. Так как GPT таблицу понимает только EFI, соответственно и
грузиться диск размеченный в данном варианте будет тоже только в EFI режиме.
В итоге, очевидным выбором
становится третий вариант. Данное решение универсально в плане загрузки на
различных системах, и в плане хранения файлов.
В следующей статье мы на практике разберем создание разделов для универсальной загрузочной флешки.