Если вы когда нибудь делали разметку диска или даже более того, пытались установить Linux на ноутбук с предустановленой Windows 8 или более новой версией, то скорее всего встречались с такими понятиями как таблица разделов, gpt и mbr. Даже если вы стерли Windows, все равно наверное задавались вопросом чем отличается mbr от gpt, какая таблица разделов лучше, какие преимущества gpt от mbr. В этой статье мы ответим на все эти вопросы и после ее прочтения вы уже будете точно знать какая таблица разделов вам нужна, но сначала немного теории.
Содержание статьи:
Таблица разделов
Как вы знаете, жесткий диск не целая субстанция, на которую устанавливается система. Мы можем разделить его на несколько разделов, чтобы на один установить одну систему, на другой - другую, а третий вообще оставить под файлы. Подобное разделение было и в Windows - это диск С:, D:, такое есть и в Linux - sda1, sda2, sda3.
Но вопрос в том, как система узнает структуру жесткого диска? По сути жесткий диск представляет собой огромное адресное пространство в которое можно записывать данные. Чтобы знать сколько разделов существует, какого они размера, на какой ячейке начинаются и на какой заканчиваются нужно где-то хранить эти данные. Вот тут уже нужна таблица разделов MBR или GPT. Или как они расшифровываются Master Boot Record и GUID Partition Table. Не смотря на то, что они отличаются архитектурой, они выполняют одну и ту же работу. Разница между mbr и gpt будет лучше понятна, если мы рассмотрим их по очереди.
MBR (Master Boot Record)
MBR - это старый стандарт таблицы разделов, но он до сих пор широко используется многими людьми. Эта таблица разделов разработана еще во времена DOS, в 1983 году, а поэтому содержит много соответствующих ограничений.
MBR находится в самом начале диска, если точнее, то она занимает первые 512 байт. Она содержит информацию, о том, какие логические и расширенные разделы есть на этом устройстве. Кроме того в MBR находится исполняемый код, который может сканировать разделы в поисках операционной системы, а также инициировать загрузку операционной системы. Для Windows - это загрузчик WIndows, в Linux там находится код инициализации Grub. Поскольку места там очень мало, обычно этот код используется только для инициализации основного загрузчика расположенного где-нибудь на диске.
Очень неудобное ограничение MBR, это то, что вы можете иметь только четыре раздела диска. Это связанно с ограниченным количеством памяти выделенным под таблицу разделов. Так было с самого начала, но потом разработчики нашли решение. Обычные разделы начали называть первичными (primary), а также добавили расширенные (extended) и логические (logical). Один расширенный раздел, может содержать несколько логических, таким образом вы сможете создать необходимое количество разделов.
Кроме того MBR использует 32-битную адресацию пространства, поэтому вы сможете работать только с дисками размером до двух терабайт. Конечно, со временем появились способы поддерживать и большие объемы, но работать с ними она будет не так хорошо. Еще один минус в том, что MBR расположена только в начале диска и если вы ее случайно затрете, то диск станет полностью нечитаемым. Плюсом MBR можно назвать полную совместимость со многими операционными системами в том числе Windows, включая старые версии, Linux и MacOS.
GPT (GUID Partition Table)
GPT это современный стандарт управления разделами на жестком диске. Это часть стандарта EFI (Extensible Firmware Interface), разработанного в Intel для замены устаревшего BIOS.
Самое первое отличие - это использование совсем другой адресации диска. В MBR использовалась адресация зависимая от геометрии диска. Адрес состоял с трех значений головка, цилиндр и сектор (например 0,0,0). В GPT используется адресация LBA. Это блочная адресация, каждый блок имеет свой номер, например LBA1, LBA2, LBA3, и так далее, при чем адреса MBR автоматически транслируются в LBA, например LBA1 будет иметь адрес 0,0,1 и так далее.
GPT не содержит кода загрузчика, она рассчитывает что этим будет заниматься EFI, здесь размещена только таблица разделов. В блоке LBA0 находится MBR, это сделано для защиты от затирания GPT старыми утилитами работы с дисками, а уже с блока (LBA1) начинается сама GPT. Под таблицу разделов резервируется 16 384 байт памяти, по 512 на блок, а это 32 блока, таким образом первые разделы начнутся с блока LBA34 (32+1MBR+1GPT).
Важным преимуществом есть то, что количество разделов не ограничено. Точнее ограничено, только операционной системой. Ядро Linux поддерживает аж до 256 разделов.
Благодаря адресации LBA, GPT в отличии от MBR может создавать разделы до 9,4 ЗБ, а этого в ближайшее время вполне хватит.
Кроме того служебная информация GPT дублирована, она размещается не только в начале диска но и в конце, таким образом во многих случаях при повреждении GPT может сработать автоматическое восстановление и вы даже не заметите проблем. Тут уже сразу становится понятно, что лучше mbr или gpt.
GPT поддерживает юникод поэтому вы можете задавать имена и атрибуты разделам. Имена могут быть заданы на любом поддерживаемом языке и вы сможете обращаться к дискам по этим именам. Для дисков используются глобальные уникальные идентификаторы GUID (Globally Unique IDentifier), это одна из вариаций UUID с большей вероятностью уникальных значений, может также использоваться для идентификации дисков вместо имен.
Минусом или еще одним плюсом GPT есть то, что при загрузке проверяются контрольные суммы таблиц, а это значит, что если вы захотите что-то изменить вручную, то система не загрузится. Как видите разница между mbr и gpt просто колоссальная.
Поддержка операционных систем
MacOS и новые версии Windows начиная от Windows 8 используют GPT по умолчанию. Вы не сможете установить MacOS в системе с MBR, она будет работать на этом диске, но вы не сможете ее туда установить. Windows поддерживает как MBR так и GPT начиная с версии 8, более ранние версии установить на GPT не удастся, но работать с GPT можно начиная с XP.
Ядро Linux включает поддержку как MBR так и GPT, только для установки на GPT вам придется использовать загрузчик Grub2. Здесь сравнение MBR vs GPT не так однозначно. Если вам нужна старая операционная система ничего с GPT не выйдет.
Какая таблица разделов
Теперь давайте рассмотрим как узнать gpt или mbr используется на вашем компьютере. Конечно, если у вас предустановлена Windows 10 на ноутбуке, то тут и думать нечего, там точно GPT, но в других случаях будет полезно узнать.
В Linux мы можем использовать для этого утилиту fdisk. Просто выполните:
sudo fdisk -l
Disklabel type: dos - значит, что у вас используется mbr, в gpt так будет и написано - gpt. Также узнать gpt или mbr используется можно с помощью программы gparted.
Выводы
Теперь вы знаете чем отличается mbr от gpt, и у вас не возникнет трудностей при выборе таблицы разделов. Если вы используете диск размером меньше двух терабайт и вам не нужно больше четырех разделов, то возможно и не стоит выбирать GPT. Некоторые старые BIOS не поддерживают нормальную загрузку системы с таблиц GPT, к тому же без UEFI вы не сможете установить Windows на эту таблицу разделов. Но если вы хотите устанавливать на GPT только Linux то ничего плохого в этом нет. Определять что лучше mbr или gpt нужно в зависимости от вашей ситуации.
Давайте подведем итог всего выше написанного и еще раз приведем преимущества gpt перед mbr:
- MBR поддерживает диски до 2 Тб, GPT - до 9 Зб
- GPT поддерживает более четырех разделов
- GPT использует GUID для идентификации дисков, а значит меньше шанс конфликтов имен
- GPT использует новую систему адресации LBA, вместо устаревшей CHS
- Служебная информация GPT дублируется в начале и конце диска
- GPT проверяет контрольные сумы, что позволяет обнаружить модификацию таблицы разделов
- GPT поддерживает Unicode, а следовательно кириллические имена.
"занимает первые 512 килобайт" - может все же "байт"?
Да, спасибо!
Как всегда — чётко и ясно.
Благодарю.
🙂
MBR находится в самом начале диска, если точнее, то она занимает первые 512 БАЙТ.
Здравствуйте! Какая программа самая простая и самая удобная для разметки диска? Спасибо. Be happy!
Разумеется, Gparted
Аллах акбар. Бисмилля хиль рахмат.
Исправьте опечатку: "Кончено", со временем появились способы поддерживать ...
Думаю имелось ввиду слово конечно =)
Поправочка - Windows 7 умеет ставиться и загружаться с GUID'а
Столкнулся, когда у человека был затык с активатором - а всё упёрлось именно в то, что диск в GPT разметке был ДО установки Windows 7 xD
Картинки в статье не работают.
Ошибка 404
Спасибо, уже работают.
>> только для установки на GPT вам придется использовать загрузчик Grub2
не только, у меня Syslinux и GPT прекрасно уживаются
Логический получается не раздел а диск (том). У вас даже на картинке написано logical drive, а не logical partition.
...
Получается первичный раздел это раздел в который можно записывать файл, а расширенный раздел - это раздел в который можно записывать логические тома. Или просто - раздел в котором можно создавать большое количество логических дисков. Я правильно понимаю?
Да, правильно.
Хорошая статья, но вот что еще интересно, - на что ориентироваться при выборе железа?
Очень странно, у меня на ноутбуке ст оит win10 максималка, partition wizard tool показывает, что HDD размечен в MBR. Такое возможно? Не очень поняла про установку различных ОС на MBR и GPT
Такое вполне может быть, если Windows установлена не производителем, а, например, каким-нибудь сервис центром или интернет магазином.
Ситуация - ставлю Linux на программный RAID1 (2 диска по 2 Tb).
fdsik -l выдает для каждого из дисков
GPT PMBR size mismatch (3907028863 != 3907029167) will be corrected by write.
The backup GPT table is not on the end of the device. This problem will be corrected by write.
читал, что это связано с тем, что RAID пишет свою информацию в конец диска и резерв GPT туда-же.
пробовал корректировать, приводило к результату: «Резервная таблица GPT повреждена, но с основной, кажется, все в порядке, поэтому она будет использована.»
Статья предельно мутная.
Например, не сказано, сколько логических разделов м.б. внутри extended-раздела.
Не сказано, почему первичных разделов м.б. только четыре. Запись о разделе занимает 16 байт, MBR занимает 512 байт - значит, можно создать 32 записи о разделах.
Ладно, добавлю, что в конце - два байта, которые должны иметь определённое значение (сигнатура MBR). Значит, можно создать 31 запись о разделах. Если диск не загрузочный (второй диск в системе; или загрузка происходит с внешнего носителя, а на диске только данные и некоторые программы) - то больше мне там ничего и не нужно.
Имеется путаница между CHS и линейной системой адресации секторов. Не сказано про то, что CHS бывает в разных режимах: стандартном, Large и LBA.