Чем отличается MBR от GPT
Если вы когда нибудь делали разметку диска или даже более того, пытались установить 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. Просто выполните:
Disk /dev/sda: 465,8 GiB, 500107862016 bytes, 976773168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x1c50df99
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, а следовательно кириллические имена.
Источник
Разбираемся с UEFI и GPT: установка Windows и Kubuntu на один диск
Помните те времена, когда BIOS был 16-битным с адресным пространством в 1 Мб, а вся информация о загрузчиках писалась в MBR? На смену уже давно пришли более гибкие технологии: UEFI (замена BIOS), и GPT (замена MBR).
Предыстория: Понадобилось мне недавно на свой домашний десктоп поставить 2 системы, чтобы разграничить окружение. Kubuntu для разработки на Ruby on Rails (ибо работаю удаленно), и Windows для всяких игрушек в свободное время. Хочу заметить, что несколько лет назад это было достаточно просто: один раздел для винды и один раздел для линукса, загрузчик записывался в MBR. Однако, технологии не стоят на месте, и оказалось, что настройка dual boot’а теперь несколько изменилась.
Итак, начнем.
Терминология
GPT (GUID Partition Table, Таблица разделов GUID) — часть спецификации UEFI. UEFI использует GPT так же как BIOS использует MBR.
Главным отличием GPT от MBR, на мой взгляд, являются:
- Количество разделов: MBR поддерживает только 4 раздела. Можно и больше, но только через extended partition, что является просто хаком ограничений. GPT поддерживает до 128 разделов.
- Размер диска: MBR поддерживает диски до 2Тб, в то время как GPT — до 9.4 Зеттабайт (=9.4 × 10^21 байт, или условно 1000 Тб)
- Порядок загрузки: раньше BIOS загружал MBR, и в нем содержались адреса загрузчиков для каждого раздела диска. Теперь UEFI считывает GPT, находит в таблице все разделы типа efi (на них содержатся загрузчики), и подгружает их в память. Разберем это на примере немного позже.
Что делаем:
Устанавливаем следующие ОС на пустой HDD размером в 1 Тб.
- Windows 8.1 x64. Windows поддерживает загрузку с GPT начиная с Windows 8 для 32 битной архитектуры и с Windows Server 2003 и Windows Vista для 64 бит (Источник).
- Kubuntu 15.04. По идее подойдет любой дистрибутив, который поддерживает Grub2, лично я предпочитаю Kubuntu.
NB: Материнская плата поддерживает UEFI
Разбивка диска
Сначала устанавливаем Windows 8, т.к. она автоматически будет использовать GPT.
Разбивка будет выглядеть так (пардон за кривой снимок):
Винда по умолчанию создает 4 раздела:
- Recovery (300Мб). Очевидно, что он используется для восстановления системы. Оставим как есть.
- EFI partition (100Мб). Помечается как system type (не любят в Майкрософте называть вещи своими техническими именами). Собственно сюда и пишутся загрузчики.
- MSR (128Мб, Microsoft Reserved Partition). Для меня остается загадкой, зачем он нужен. Данных там никаких нет, просто пустое место, зарезервированное для каких-то непонятных целей в будущем.
- Основной раздел. Мы его поделим на 3: 200 гигов под винду, 500 гигов для раздела под данные и остальное пространство пока оставим неразмеченным (отформатируем потом при установке Kubuntu).
Пропустим саму установку Windows, т.к. в ней все стандартно и понятно.
Теперь загрузимся с USB в Kubuntu Live.
Проверим EFI раздел:
Boot0000 — виндовый загрузчик
Boot0001 — дефолтный загрузчик
Boot0003 — флешка с Kubuntu Live
Обратите внимание, что список загрузчиков не привязан к одному физическому диску как в MBR. Он хранится в NVRAM.
Можем также сразу посмотреть, что же в этом разделе, подмонтировав его:
Там окажутся следующие файлы:
Убедились, что все хорошо. Теперь продолжаем разбивку диска (через KDE Partition Manager).
Первые пять разделов остались прежними. Обратите внимание, как Kubuntu определила разделы:
- sda2 определился как FAT32. Это практически верно, т.к. файловая система типа EFI основана на FAT, только с жесткими спецификациями.
- sda3 (MSR) не определился, т.к. файловой системы там так таковой нет.
Нам осталось только отформатировать раздел для Kubuntu в ext4, и выделить раздел под swap.
Несколько слов про swap. Рекомендуют на swap выделять от SQRT(RAM) до 2xRAM. Т.к. у меня 16 Гб RAM, то по минимуму мне надо 4 Гб свопа. Хотя я с трудом могу представить ситуации, при которых он будет использоваться: десктоп в hibernate я не перевожу, и сильно тяжелых программ, которые жрут больше 16 гигов, не использую.
P.S. При форматировании раздела в swap Partition Manager может выдать ошибки, которые связаны с тем, что Kubuntu автоматически монтирует в себя любой swap раздел, однако на результат эти ошибки не влияют.
Итак, финальная разбивка:
Теперь самое главное для правильного dual boot’а. При установке Kubuntu важно выбрать, куда установить загрузчик:
Указываем, конечно же на раздел EFI.
После завершения установки Kubuntu, заходим в систему и проверяем, какие файлы появились на efi разделе (монтировать уже не нужно):
Смотрим, как теперь выглядит список загрузчиков:
Вот как это выглядит при загрузке:
А еще эти загрузчики доступны сразу из UEFI (в старом BIOS’е такое было бы невозможно — там был выбор только диска, он просто не знал, что такое загрузчики):
Ну и напоследок: чтобы dual boot правильно работал, в Windows надо обязательно отключить fast boot. Это такая нехорошая фича, которая может привести к потере данных.
При выключении компьютера Windows сохраняет файловую структуру NTFS разделов в файл (видимо, потому что один файл прочитать быстрее, чем сканировать много разных файлов). Если записать файл на NTFS раздел через линукс, и потом загрузиться в Windows, то Windows просто не увидит файл. Источник
Если выключить комп через Windows, и потом попытаться загрузить Linux, то он просто не запустится из-за «ошибки» NTFS. Источник
Источник