GPT или MBR — какая технология лучше подходит для жестких дисков и твердотельных накопителей

Привет друзья! Меня часто спрашивают, как быстро определить стиль жёсткого диска MBR или GPT?

И на самом деле, если взять ноутбук или обычный компьютер и запустить на нём операционную систему, то вы не сразу поймёте, какой разметки накопитель. Я провёл небольшой эксперимент и попросил своих друзей определить стиль твердотельного накопителя моего мобильного компьютера. К моему удивлению несколько участников эксперимента полезли в БИОС смотреть, включен ли там интерфейс UEFI и только двое открыли «Управление дисками» и с помощью свойств диска установили разметку. Но хочу сказать, что сделать это можно ещё проще в командной строке или Windows PowerShell.

MBR или GPT

Любой жёсткий диск или твердотельный накопитель SSD содержит в начальных секторах небольшой программный код (загрузочную запись), используемый Windows для своей загрузки, ещё данный код несёт в себе таблицу разделов, то есть информацию о разделах жёсткого диска. Этот код может быть стандарта MBR или GPT .

Главная загрузочная запись MBR используется аж с 1983 года и давно устарела, так как не позволяет использовать всё пространство современных HDD объёмом 2 ТБ и более, и не поддерживает создание на диске больше 4 основных разделов. Есть ещё причины: слабая защищённость и способность работать только с устаревшей системой ввода вывода БИОС.

Стандарт GPT лишён всех этих недостатков, прекрасно видит всё пространство жёстких дисков любого объёма, позволяет создать 128 основных разделов, лучше защищён и использует более современный вариант БИОСа под названием UEFI.

Так вот, если вам дать ноутбук с установленной Windows 8.1 или Win 10, то вы не сразу поймёте какого стиля в нём HDD. В сегодняшней статье я вам покажу несколько способов определить это.

  • Внимательный читатель может спросить, а зачем вообще знать стандарт разметки накопителя? Самый простой ответ может прозвучать так: - Если диск, на который установлена операционная система разметки GPT, то значит перед вами современный компьютер или ноутбук с включенным интерфейсом UEFI. Соответственно способ восстановления загрузчика операционной системы отличается. Вы не сможете установить на этот ноутбук Windows 7 второй системой и так далее (могу назвать ещё много причин).

Итак, узнаём стандарт жёсткого диска или SSD с помощью Windows PowerShell.

Если на вашем компьютерном устройстве установлена последняя версия , то открываем Windows PowerShell

и вводим команду: get-disk

Видим на вкладке«Partition Style », что в системе имеется два диска и первый накопитель объёмом 1000 Гб имеет формат - GPT, а второй 500 Мб - MBR.

В командной строке администратора тоже можно узнать стиль винчестера, но только другой командой.

MBR (по-русски – главная загрузочная запись) – определенный набор данных, строчек кода, таблица разделов и сигнатуры. Необходим он для загрузки операционной системы Windows после включение компьютера. Бывают случаи, когда в результате различных аппаратных и системных сбоев, МБР повреждается или стирается, что приводит к невозможности запуска Windows. Подобные проблемы решает восстановление загрузочной записи MBR Windows 7. В данной статье рассмотрено несколько несложных способов, которыми можно восстановить записи.

Немного теории

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

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

Восстановление загрузочной записи

Для того чтобы восстановить MBR, вам понадобится инсталляционный диск, с которого вы устанавливали Windows (либо любой другой). Если же диска нет, можно создать загрузочную флешку с Win7. Алгоритм действия:

Автоматическое восстановление

Для начала стоит предоставить починку MBR стандартным средствам от Microsoft. Выберите пункт «Восстановление запуска». Больше ничего делать не требуется, пройдет некоторое время, и компьютер сообщит о завершении процесса. Попробуйте запустить Windows. Если ничего не получилось – значит, необходимо восстановить МБР вручную.

Командная строка

Этот путь требует ввода нескольких команд в командную строку Windows.

  • В меню восстановления системы выберите пункт «Командная строка».
  • Теперь необходимо ввести «bottrec/fixmbr ». Данная команда служит для записи новой MBR совместимой с Win 7. Команда удалит нестандартные части кода, исправит повреждения, но не будет затрагивать существующую таблицу разделов.
  • Следом введите «bootrec/fixboot ». Эта команда служит для создания нового загрузочного сектора для Windows.
  • Далее «bootrec/nt60 sys ». Эта команда обновит загрузочный код MBR.
  • Закройте консоль, перезагрузите компьютер и попробуйте запустить систему. Если проблема все еще не решена, необходимо ввести еще несколько команд.
  • Снова запустите консоль и введите «bootrec/Scanos » и «bootrec/rebuildbcd ». С помощью этих утилит компьютер просканирует жесткий диск на наличие операционных систем, а затем внесет их в меню загрузки.
  • Следом опять введите «bootrec/nt60 sys » и перезагрузите компьютер.

Утилита TestDisk

Если у вас нет загрузочной флешки или диска, можно восстановить поврежденную запись с помощью сторонней программы. Для этого необходимо запустить другую (рабочую) ОС. Если на вашей машине была всего одна Windows, придется подключить жесткий диск к другому компьютеру. Работа с TestDisk достаточно сложна, поэтому рекомендуется ознакомиться с руководствами, посвященными конкретно этой программе.

Ситуация следующая. Есть винт на 160Гб. На нем 2 раздела - 40Гб и 120Гб. С целью установки убунты как второй системы была произведена разбивка 120Гб -> 100+10+2+8.
Итоги
1. При загрузке системы выводится сообщение MBR helper not found;
2. fdisk показывает один большой 160Гб диск.

Дураку понятно, что это начало веселой ночи.
Далее, под катом, решения вопроса.

1. Восстановление таблицы разделов

1.1. Parted magic
Данный LiveCD\USB дистрибутив , размером в 100Мб несет в себе огромную кучу софта, для работы с дисками. От разбивки, до восстановления.
Из них всех, нам нужны будут gpart , testdisk , fdisk и ms-sys .
1.2. Gpart
gpart - это утилита, сканирующая по-секторно диск на наличие разделов, которые присутствуют на носителе, но отсутствуют в таблице. В своей работе, она игнорирует уже существующую таблицу (если присутствует). Программа разаботана немецким программистом Michail Brzitwa и больше им не поддерживается. Вялотекущая разработка ведется командами Fedora и Debian. Текущая версия - 0.1h.

Утилита позволяет наиболее быстро и легко восстановить таблицу разделов, но она несет в себе несколько недостатков. Во-первых, разработка была давно заброшена, во-вторых, она иногда не совсем корректно определяет разделы.

Gpart может работать в 2-х режимах. Это быстрый анализ и подробное сканирование. В некоторых случаях, первого режима достаточно. Мы же будем смотреть на второй.

Gpart -if /dev/sda

-i - интерактивный режим. На каждую найденную партицию будет задан вопрос, сохранять ее, либо пропустить.
-f - полный скан диска.

После, довольно продолжительного времени, будет создан отчет с возможными разделами. Его-то и нужно обязательно максимально внимательно просмотреть перед записью.
Пример отчета (не мой):

Begin scan...
Possible partition(DOS FAT), size(1907mb), offset(0mb)
Possible partition(SGI XFS filesystem), size(5730mb), offset(1907mb)
End scan.
Checking partitions...
Partition(DOS or Windows 95 with 32 bit FAT, LBA): primary
Partition(Linux ext2 filesystem): primary
Ok.
Guessed primary partition table:
Primary partition(1)
type: 012(0x0C)(DOS or Windows 95 with 32 bit FAT, LBA)
size: 1907mb #s(3906544) s(16-3906559)
chs: (0/1/1)-(1023/19/16)d (0/1/1)-(12207/19/16)r
Primary partition(2)
type: 131(0x83)(Linux ext2 filesystem)
size: 5730mb #s(11736000) s(3906560-15642559)
chs: (1023/19/16)-(1023/19/16)d (12208/0/1)-(48882/19/16)r
Primary partition(3)
type: 000(0x00)(unused)
size: 0mb #s(0) s(0-0)

Primary partition(4)
type: 000(0x00)(unused)
size: 0mb #s(0) s(0-0)
chs: (0/0/0)-(0/0/0)d (0/0/0)-(0/0/0)r

Если все ОК, то соглашаемся на запись в таблицу разделов, скрещиваем пальцы и перезагружаемся.
В моем случае, программа определила разделы, которые были до разбивки (40 и 120), что не подходило и заставило искать альтернативные способы восстановления.

1.3. testdisk
Note: подробнее эта утилита описана в этом посте , здесь не буду повторяться.

Эта утилита аналогична предыдущей, но имеет ряд плюсов:
1. более свежая и активно поддерживается;
2. субъективно, работает намного быстрее;
3. функциональнее;
4. есть простой консольный интерфейс на базе ncurses.

Поехали!
1. в первом окне выбираем Create a new log file;
2. выбираем нужный диск (/dev/sda) -> Proceed;
3. отмечаем тип разделов как Intel;
4. выбираем Analyse current partition structure and search for lost partitions;
5. если найденные разделы верны, жмем Backup и переходим к пункту 6, есть возможность быстро пересканировать диск, если где-то ошибка (Quick search);
6. здесь уже виден зеленый список с разделами. Если ок, то записываем, иначе запускаем Deep search.;

В моем случае, результат был аналогичен результату gpart, что есть некорректен.
Запустив Deep search, выждав около 40 минут я получил ответ, от которого на душе так нехило отлегло.
Было найдено несколько партиций, которые накладывались одна на другую (это были изначальная (до манипуляций) 120Гб и новая, на 100Гб). Отметив ненужную, как удаленную, я записал таблицу на диск и перезагрузился. К счастью, все обошлось и компьютер вернулся к состоянию, который был изначально, а я мог с чистой совестью лечь спать.

3. Восстановление MBR

Для этой задачи, у нас в арсенале есть тулза ms-sys.
Сперва узнаем, что с нашей MBR.

Ms-sys /dev/sda
/dev/sda has an x86 boot sector
it is unknown boot sector

Теперь видно, что на данном диске нет загрузочного сектора.
Утилита может работать с MBR различных операционных систем. Список можно получить, запустив программу без агрументов. В моем случае, необходим был от Windows 7.
Записываем MBR на диск:

Ms-sys -7 /dev/sda
Windows 7 master boot record successfully written to /dev/sda

Проверяем:

Ms-sys /dev/sda
it is Microsof 7 master boot record, like the one this
program creates with the switch -7 on a hard disk device.

Вот и все, нужная MBR установлена и можно перезагружаться.

3. Outro

Этот пост пример того, как на пустом месте можно создать себе проблему и полночи заниматься не тем, чем надо. Но это дало неоценимый опыт, который я постарался изложить здесь.
Возможно, кому-нибудь он пригодится. Ведь в такую ситуацию попасть очень не сложно, а детального мануала особо-то и нет.

Выбор одного из стандартов GPT или MBR может оказаться довольно простым для владельца нового компьютера с большим жёстким диском и современным интерфейсом UEFI.

Такие параметры требуют перехода на более современный стандарт.

Тогда как при наличии более или ПК выбор может быть сделан в пользу практически устаревшего MBR – а он может оказаться и вообще единственным вариантом.

Cодержание:

Что означают эти аббревиатуры?

Любой жёсткий диск или твердотельный накопитель перед использованием для записи операционной системы, системной и другой информации обязательно разбивается на разделы.

Стандарт MBR, расшифровывающийся как «главная загрузочная запись» , представляет собой старый способ хранения данных , GPT (или «таблица разделов GUID») – новый.

Оба они необходимы ещё и для хранения сведений о начале и конце каждого раздела, благодаря которым система узнаёт расположение секторов и определяет, загрузочной ли является эта часть диска или нет.

Хотя при этом MBR считается надёжной и простой – и восстановление требуется нечасто.

К минусам стандарта относится невозможность поддержки большого количества разделов – небольшой недостаток для HDD размером до 500 ГБ, но уже достаточно серьёзный для терабайтных или даже 4-терабайтных моделей.

При необходимости создать больше 4 разделов требовалось использовать достаточно сложную технологию EBR.

Вторая проблема, связанная с увеличением объёмов жёстких дисков, заключается в невозможности работать с разделами больше 2,2 ТБ.

Преимущества и недостатки нового стандарта

Усовершенствованный стандарт GPT, постепенно заменяющий MBR, входит в состав технологии UEFI, который, в свою очередь, заменяет устаревший интерфейс BIOS.

У каждого раздела есть свой уникальный идентификатор – очень длинную строку символов. Преимуществом GPT по сравнению с устаревшим стандартом можно назвать :

  • отсутствие ограничений на объём раздела. Точнее, максимальная величина всё же существует – но достичь её получится не раньше, чем через несколько десятилетий;
  • неограниченное количество разделов – до 264 в целом, до 128 для ОС Windows.

На диске, поддерживающем стандарт MBR, данные о разделах и загрузке расположены в том же месте. При повреждении этой части накопителя у пользователя ПК возникает целый ряд проблем.

Ещё одно отличие GPT – хранение циклического избыточного кода, позволяющего контролировать сохранность данных.

Повреждение информации приводит к немедленной попытке её восстановления.

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

Среди минусов стандарта стоит отметить отсутствие поддержки предыдущих технологий – . И, хотя операционная система с устаревшим интерфейсом распознаёт , вероятность её загрузки минимальна. Кроме того, при использовании этого варианта нельзя назначать имена всем дискам, так же как разделам, а восстановление данных не всегда доступно – из-за ограничения количества и расположения дубликатов таблиц.

Совместимость

Попытка настроить диск GPT с помощью технологий, поддерживающих только MBR, ни к чему не приведёт – таким образом, защитный вариант главной загрузочной записи предотвращает случайную перезапись и разметку по старому стандарту.

Системы Windows загружаются с размеченных по технологии GPT дисков только на устройствах, поддерживающих интерфейс UEFI – то есть на ноутбуках и ПК с Виндоус от Vista до 10-й.

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

Хотя эти же операционные системы способны работать с GPT-дисками в качестве хранилища информации.

Следует знать: Стандарт GPT поддерживается и другими операционными системами – в том числе, Linux. А на компьютерах марки Apple эта технология заменила старую таблицу разделов APT.


Сравнение стандартов

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

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

Табл. 1. Сравнительные характеристики MBR и GPT
Стандарт MBR GPT
Работа с прошивками С BIOS и с UEFI Только с UEFI
Поддержка Windows Все версии, начиная с самых первых Только 64-битные версии Windows 7 и Vista, все варианты Виндоус 8 и 10
Чтение и запись Любые платформы Все операционные системы Windows от Vista и выше + XP Professional 64-бит
Число разделов одного диска Не больше 4 До 264
Максимальный размер раздела 2,2 ТБ 9,4 х 109 ТБ
Встроенный мультизагрузчик Отсутствует Есть

Проблемы работы с новым стандартом и их решение

Существование двух стандартов может привести к появлению определённых проблем. Особенно, если на компьютере запрещена загрузка другим способом, кроме использования жёсткого диска.

Исправить ситуацию позволяет переход к , который не позволяет работать с новым стандартом – и при попытке загрузиться на экране возникает ошибка, сообщающая о наличии стиля разделов GPT.

Решить проблему не так сложно – для этого понадобится взять обычный загрузочный диск с ОС Виндоус и выполнить следующие действия :

  • Начать загрузку с диска ;
  • Дойти до момента выбора раздела , на котором появляется проблема;
  • Запустить консоль (одновременное нажатие Shift и F10 );
  • Начать работу со специальной утилитой, введя команду diskpart .

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

Теперь достаточно ввести в командной строке «clean» , очистив лишнюю информацию, и перейти к преобразованию стандартов.

Для того чтобы диск GPT был преобразован в устаревший формат следует ввести команду convert mbr , позволяющую работать с диском и ставить на него любую платформу.

Эта же утилита обеспечивает работу с разделами.

Например, введение команды «create partition primary size=X» создаёт раздел размером X Гб, «format fs=ntfs label=»System» quick» выполняет форматирование в NTFS, а «active» позволяет разделу стать активным.

Форматирование жестких дисков выполняется в три этапа:

    низкоуровневое форматирование (физическая разметка диска на цилиндры, дорожки, секторы);

    разбиение диска на разделы (логические устройства):

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

На этапе низкоуровневого форматирования процессор, выполняя программу форматирования, поочередно передает в контроллер жесткого диска сначала команду "Поиск" для установки головок накопителя на нужный цилиндр, а затем посылает команду "Форматировать дорожку". Выполняя команду "Форматировать дорожку" контроллер жесткого диска, получив из накопителя импульс "Индекс" (начало дорожки), производит запись служебного формата дорожки, который разбивает ее на секторы. Каждый сектор содержит в себе блок данных (512 байт), обрамленный служебным форматом сектора (содержание к размер служебного формата определяется конкретной фирмой-разработчиком данного устройства). Служебный формат дорожки и секторов необходим контроллеру жесткого диска при выполнении команд. Читая и расшифровывая поля служебного формата, контроллер находит на диске нужный цилиндр, поверхность, сектор и блок данных внутри сектора. На следующих этапах форматирования в блоки данных ряда секторов записывается системная информация, которая обеспечивает организацию разделов на диске, автоматическую загрузку операционной системы и поддержку файловой системы на диске.

На этапе разбиения диска на разделы в блоке данных первого физического сектора диска (0 цилиндр, 0 поверхность, 1 сектор) с адреса 1BEh формируется таблица разделов (Partition table), состоящая из 4-х шестнадцатибайтных строк. Обычно системную информацию, записанную в блок данных этого сектора в процессе форматирования, называют Master Boot Record (MBR).

С самого начала блока данных этого сектора располагается программа (IPL 1). Переход на программу IPL 1 процессор осуществляет после успешного завершения POST и программы "Начального загрузчика", выполняя которую процессор загружает с диска в память MBR, и передает управление на начало MBR (на программу IPL 1), продолжая действия ведущие к загрузке операционной системы. Программа IPL 1 (загрузчик), находящаяся в MBR просматривает строки таблицы разделов в поисках активного раздела с которого возможна загрузка операционной системы. Если в таблице разделов нет активного раздела, выдается сообщение об ошибке. Если хотя бы один раздел содержит неправильную метку, либо несколько разделов помечены как активные, выдается сообщение об ошибке Invalid partition table, и процесс загрузки останавливается. Если активный раздел обнаружен, то анализируется загрузочный сектор этого раздела. Если найден только один активный раздел, то содержимое блока данных его загрузочного сектора (BOOT) читается в память по адресу 0000:7С00 и управление передается по этому адресу, если загрузочный сектор активного раздела не читается за пять попыток, выдается сообщение об ошибке: Error loading operating system и система останавливается; проверяется сигнатура считанного загрузочного сектора активного раздела и если последних два его байта не соответствуют сигнатуре 55AAh, выдается сообщение об ошибке: Missing operating system и система останавливается). Процессор читает по адресу 0000:7С00 команду JMP, выполняя ее, передает управление на начало программы IPL 2, которая осуществляет проверку, действительно ли раздел активный: IPL 2 проверяет имена и расширения двух файлов в корневом каталоге - это должны быть файлы IO.SYS и MSDOS.SYS (NTLDR для Windows NT), загружает их и. т. д.

Система Windows 9x во многом основана на тех же концепциях, что и DOS, но в ней эти концепции получили дальнейшее логическое развитие. Те же два системных файла IO.SYS и MSDOS.SYS, но теперь вся системная программа находится в IO.SYS , а второй файл MSDOS.SYS содержит ASCII-текст с установками, управляющими поведением системы при загрузке. Эквиваленты программ Himem.sys. Ifshlp.sys и Setver.exe автоматически загружаются программой IO.SYS при запуске системы. Как и прежде, для загрузки в память драйверов и резидентных программ можно использовать файлы Config.sys и Autoexec.bat, но загрузку 32-разрядных драйверов устройств, которые разработаны специально для Windows 9x, теперь обеспечивают записи в системном реестре. Когда вся предварительная работа выполнена, запускается файл Win.com, и Windows 9x загружается и предоставляет свои возможности через графическое меню.

Системный реестр является базой данных, в которой Windows 9x хранит информацию обо всех настройках, конфигурационных установках и параметрах, необходимых для работы ее собственных модулей и отдельных приложений. Системный реестр как бы выполняет функции Config.sys, Autoexec.bat и ini-файлов Windows 3.1 вместе взятых. На диске компьютера реестр хранится в виде двух отдельных файлов: System.dat и User.dat. В первом из них содержатся всевозможные аппаратные установки, а во втором - данные о работающих в системе пользователях и используемых ими конфигурациях. Каждый пользователь может иметь свой файл User.dat, т.е. собственную рабочую среду, которую он настраивает по своему вкусу и потребностям. Системный реестр можно импортировать, экспортировать, а также создавать его резервные копии и, используя их, восстанавливать сохраненные данные - одним словом, это довольно мощный механизм управления системными параметрами и их защиты от потерь и повреждений.

Таблица 3. Компоненты MBR

Область

Описание

Программа IPL 1 (программа загрузчика занимает зону от адреса 00h до 1BEh)

Код программы Сообщения об ошибках (Error Messages):

    Invalid Partition Table (неправильная таблица разделов).

    Error loading operating system (ошибка при загрузке операционной системы)

    Missing operating system (операционная система отсутствует).

Таблица разделения физического диска на логические устройства (Partition Tables) (4 строки по 16 байт = 64 байта) занимает зону с адреса 1BEh до 1FDh

1 строка (16 байт):

    Флаг загрузки (80h - активный / 00h -обычный раздел) - 1 байт

    Начальный физический сектор раздела (головка, сектор и цилиндр) - 3 байта

    Тип раздела -1 байт

    Конечный физический сектор раздела (головка, сектор и цилиндр) - 3 байта

    Число секторов предшествующих разделу - 4 байта

    Общее количество секторов в данном разделе - 4 байта

2 последних байта в блоке данных сектора с адреса 1FE по 1FF- концевая сигнатура (Ending Signature)

55АА - отмечает конец MBR. Проверяется программой начального загрузчика

Область MBR, изменившаяся в FAT32 - это Partition Table. Она, как и прежде, состоит из четырех 16-байтных записей. Каждая запись определяет раздел. В FAT32 введено 2 новых типа разделов DOS32 (0В) и DOS32X (ОС).