Что выбрать mbr или gpt для linux

Обновлено: 06.07.2024

GPT и MBR, прежде чем использовать диск, его необходимо разбить на разделы. MBR (Главная загрузочная запись) и GPT (Таблица разделов GUID) представляют собой два различных способа хранения информации о разделах диска. Сюда входят данные о начале и конце разделов, чтобы система знала, к какому разделу принадлежит каждый сектор, и какой раздел является загрузочным. Вот почему вы должны выбрать MBR или GPT перед созданием разделов на диске.

Ограничения MBR

Аббревиатура MBR расшифровывается как Главная загрузочная запись. Этот стандарт был представлен в 1983 году вместе с DOS 2.0 для IBM PC.

Ограничения MBR

Аббревиатура MBR расшифровывается как Главная загрузочная запись. Этот стандарт был представлен в 1983 году вместе с DOS 2.0 для IBM PC.

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

Преимущества GPT

У этой системы нет ограничений в отличии от MBR. Диски могут быть гораздо объёмнее, а ограничение на размер будет зависеть от операционной и файловой систем. GPT позволяет создавать практически неограниченное количество разделов. Всё будет зависеть от вашей операционной системы. К примеру, в Windows можно создать до 128 разделов на GPT диске, так что вам больше не придётся возиться с расширенными разделами.

На MBR диске данные о разделах и загрузочная информация хранятся в одном месте. Если эти данные повреждены или перезаписаны, у вас проблемы. GPT же хранит несколько копий этих данных по всему диска, поэтому работает гораздо быстрее и позволяет восстановить повреждённую информацию. GPT так же хранит значения циклического избыточного кода (CRC), чтобы точно знать, что данные нетронуты. Если информация повреждена, GPT замечает проблему и пытается восстановить повреждённые данные с другого места на диске. MBR не может узнать о повреждении информации. Вы увидите, что возникла проблема, только если не сможете загрузить систему или один из разделов диска исчезнет.

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

Windows может загружаться с GPT только на компьютерах с UEFI, работающих под управлением 64-битных версий Windows 8.1, 8, 7, Vista и соответствующих серверных версий. Все версии Windows 8.1, 8, 7 и Vista могут читать GPT диски и использовать их для хранения данных, но они не могут с них загружаться.

Другие современные операционные системы так же могут использовать GPT. Linux имеет встроенную поддержку GPT. Компьютеры компании Apple на базе процессоров Intel больше не используют схему APT (Таблица разделов Apple), заменив её GPT.

При настройке диска вы, скорее всего, захотите использовать GPT. Это более современный и быстрый стандарт, к которому движутся все компьютеры. Если вам необходима совместимость со старыми системами, например, возможность загружать Windows на компьютере с традиционным BIOS, придётся пока остановиться на MBR.

Программы для преобразования между GPT и MBR, в том числе и без потери данных

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

Преимущества GPT

У этой системы нет ограничений в отличии от MBR. Диски могут быть гораздо объёмнее, а ограничение на размер будет зависеть от операционной и файловой систем. GPT позволяет создавать практически неограниченное количество разделов. Всё будет зависеть от вашей операционной системы. К примеру, в Windows можно создать до 128 разделов на GPT диске, так что вам больше не придётся возиться с расширенными разделами.

На MBR диске данные о разделах и загрузочная информация хранятся в одном месте. Если эти данные повреждены или перезаписаны, у вас проблемы. GPT же хранит несколько копий этих данных по всему диска, поэтому работает гораздо быстрее и позволяет восстановить повреждённую информацию. GPT так же хранит значения циклического избыточного кода (CRC), чтобы точно знать, что данные нетронуты. Если информация повреждена, GPT замечает проблему и пытается восстановить повреждённые данные с другого места на диске. MBR не может узнать о повреждении информации. Вы увидите, что возникла проблема, только если не сможете загрузить систему или один из разделов диска исчезнет.

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

Windows может загружаться с GPT только на компьютерах с UEFI, работающих под управлением 64-битных версий Windows 8.1, 8, 7, Vista и соответствующих серверных версий. Все версии Windows 8.1, 8, 7 и Vista могут читать GPT диски и использовать их для хранения данных, но они не могут с них загружаться.

Другие современные операционные системы так же могут использовать GPT. Linux имеет встроенную поддержку GPT. Компьютеры компании Apple на базе процессоров Intel больше не используют схему APT (Таблица разделов Apple), заменив её GPT.

При настройке диска вы, скорее всего, захотите использовать GPT. Это более современный и быстрый стандарт, к которому движутся все компьютеры. Если вам необходима совместимость со старыми системами, например, возможность загружать Windows на компьютере с традиционным BIOS, придётся пока остановиться на MBR.

Программы для преобразования между GPT и MBR, в том числе и без потери данных

Для конвертации дисков из GPT в MBR и обратно, вы можете использовать программы для управления разделами и HDD.

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

Существует 2 типа таблиц разметки:

  • Устаревшая MSDOS (MBR) [часто обозначается как BIOS, Legacy BIOS] - главная загрузочная запись - Master Boot Record, редакторы его могут отображать как dos или msdos.
  • И современная UEFI (GPT) - GUID Partition Table.

Диск можно разметить и поделить при установке операционной системы или в случае с многими установочными образами Линукса - операционная система запускается с флешки или с диска и можно в графическом режиме разметить диски. И не только - можно наставить софта, сделать какие-то изменения и все они будут записаны при установке операционной системы (это как вариант). Т.е. под рукой всегда живой образ системы с которого можно загрузиться и что-то сделать..

В графическом режиме доступны утилиты, например Редактор разделов System - PartitionManager , или GParted , кому что больше нравится.. Ниже покажу как это можно сделать из командной строки (консоли Linux).

Смысл делить диск на разделы в Линуксе - чтоб директория /home была в отдельном разделе (папки и настройки пользователей). В случае переустановки операционной системы отформатируем первый (корень) раздел и установим недостающий софт, и вуаля все настройки программ автоматом подцепятся из /home.. Сегодня достаточно 20Гб под корень / и от 10 ГБ под /home. т.е. создаём 2 раздела на диске + EFI раздел если доступен UEFI (GPT)..

Своп (linux-swap - раздел подкачки) я не использую, начиная с Ubuntu 18.04 отказываются от раздела swap, вместо него будет использоваться файл подкачки (swapfile) . Он может понадобиться для режима сна ноутбука или если мало памяти - система менее 1 - 2 Гб памяти использует (в зависимости от сборки).. Для режима сна необходим раздел/файл подкачки = размер памяти + 2 Гб. т.е. просто добавьте запас места в корневом разделе..

Если используете SSD диск - оставляйте 10% (от 10 до 20%) места в конце неразмеченными, это продлит его ресурс, поскольку там будут проходить фоновые операции записи.. (По умолчанию на SSD диске есть скрытая область для этого, эта неразмеченная пойдёт в плюс к ней..) И судя по тестам из интернетов - эта дополнительная область увеличит IOPS - количество операций ввода и вывода, тем самым ускоряя операции с диском.

Просмотр разметки диска и прочей информации в консоли

Вариантов намного больше, но первых 4-х вполне достаточно..

Диск с таблицей разделов MBR

Где-то в 80-х был создан формат для загрузки диска с таблицей разделов MBR, он имеет ограничение поддержки дисков объёмом до 2.2 Тб и ограничения по количеству(4) первичных (главных - primary) разделов, остальные создаются в расширенном разделе.. Необходимо выставлять флаг с какого раздела грузиться для БИОС-а компьютера, его ещё активным разделом называют.. Запись MBR занимает первые 512 байт в первом секторе на диске..

В консоли создать MBR и поделить можно так (пусть диск будет 30 Гб):

Изменяем тип таблиц на Linux (L введите чтоб уточнить, зависит от версий).
Должно по умолчанию назначаться..

Скопировать разметку на диск 2, для MBR это делается так (в случае с RAID - полезно):

Диск с таблицей разделов GPT

Диск с таблицей разделов GPT устроен по иному и имеет ряд преимуществ:

  • Размер диска может быть до 9.4 Зеттабайт, для сравнения:
    MBR=2,2Тб против GPT=10 093 173 145,6 Тб.
    Запас на будущее колоссальный, весь трафик интернета за 2016 примерно 1,1 Зеттабайт.
  • GPT допускает 2 64 = 18 446 744 073 709 552 000 основных разделов, но вот Windows допускает не более 128 разделов, хотя в реальной жизни более 3-х не используется..
  • GPT хранит копию данных раздела в конце диска и значения контрольной суммы для проверки целостности данных, позволяя восстановить их в случае повреждения основного заголовка GPT. (MBR же такого не умеет и помнится у меня были случаи повреждения этой записи под Windows.)
  • Загрузка операционной системы происходит быстрее, с UEFI быстрее инициализируется железо.. (На EFI разделе находятся драйверы аппаратных компонентов, к которым может получать доступ запущенная операционная система и в этом случае загрузка происходит прямо с этого раздела, что быстрее.)
  • Нет необходимости в boot флаге разделу.

В биосе должен быть включён режим UEFI или UEFI + Legacy ищите где-то в Boot Options (загрузка итп..), обычно спаренный режим уже включен на новом железе. Естественно грузимся из под UEFI при установке с флешки (F2, F8, F10, F11, бут меню в БИОС-е или иные)..

Если связь между оборудованием и операционной системой (ОС) осуществляется только через режим UEFI (а не Legacy BIOS), использование GPT для разбивки разделов становится практически обязательным, иначе могут быть проблемы совместимости с MBR. Советую из консоли или при помощи редактора разделов GParted итп. установить тип таблицы gpt, при установке операционной системы, установщик может по умолчанию dos поставить..

UEFI имеет собственный загрузчик операционных систем с интегрированными менеджерами их запуска. Для загрузчика UEFI на диске должен быть создан небольшой загрузочный раздел, который называется EFI System Partition , он же ESP , он же EFISYS и имеет тип EF00 .
При установке Linux будет возможность обозначить тип - системный раздел EFI.
EFI - Extensible Firmware Interface System Partition - системный раздел расширяемого интерфейса прошивки.

На дисках расширенного формата 4K Native (секторы по 4 Кб, по сути это неминуемо в будущем (сейчас 512кб в ходу), с 2010г операционные системы поддерживают новый формат) EFI должен быть не менее 256 Мб в виду ограничений FAT32, посему я делаю его с запасом = 260 Мб (этого хватит на несколько ОС на 1 диске), но можно и 100 Мб.. В интернете встречаются экспериментаторы советующие делать размер не менее 520 Мб (546 Мб), чтоб любой каприз влез, но Линукс занимает около 4 Мб.

На каждом диске может быть не более одного раздела EFI. По стандартам, раздел должен быть отформатирован в файловой системе FAT32 (для USB HDD, USB Flash могут быть поняты при загрузке более старые FAT12, FAT16 (в том числе и EFI)).

Запись GPT занимает первые 2048 секторов (1 Мб) на диске и включает в себя резерв - отступ для MBR 512 байт.

В консоли создать GPT и поделить можно так (пусть диск будет 30 Гб):

Посмотреть разметку диска:

Непосредственно работа с дисками

Тип таблиц на Linux (L введите чтоб уточнить, обозначение зависит от версий)
8200 Linux swap
8300 Linux filesystem

Копирование разметки диска для GPT (в случае с RAID - полезно):

Будьте бдительны, какому гению в голову пришло в обратном порядке выстраивать диски, точнее применять сразу после ключа -R, --replicate=second_device_filename. Поэтому запись в логичном/привычном порядке sgdisk -R /dev/sda /dev/sdb приведёт к затиранию первого диска sda, в этой форме первым пишется диск на который копируется разметка, а вторым с которого копируют.

Если вы когда нибудь делали разметку диска или даже более того, пытались установить 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-disk-layout

Кроме того 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).

gpt-partition-scheme

Важным преимуществом есть то, что количество разделов не ограничено. Точнее ограничено, только операционной системой. Ядро 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+BIOS+GRUB, но завтра буду собирать себе современную машину и у меня возник вопрос не стоит ли обратить внимание на GPT+EFI. Вроде бы в современных прошивках есть стандартный загрузчик.
Как я понял для обслуживания GPT+EFI нужно создавать отдельный раздел с определённой ФС, копировать туда какие-то файлы. В общем стрёмная возня.
А есть ли смысл? Может есть какие-то неочевидные плюшки?

С выходом из криокамеры!

Да, нужен раздел типа EF на MBR или типа EFI System Partition на GPT. Строгой необходимости использовать именно разметку GPT нет, она по-прежнему необходима только для жестких дисков объёмом более 2TiB, да и даже на них теоретически можно сделать начало и длину последнего раздела в рамках 2^22 секторов что расширяет юзабельность MBR до 4TiB.

И файловая система должна быть FAT, чаще всего FAT32, но некоторые прошивки могут поддерживать и другие фс.

Ничего сложного в этом нет, даже проще чем в случае c Classic BIOS с какой-то стороны.

Xenius ★★★★★ ( 25.11.18 18:05:01 )
Последнее исправление: Xenius 25.11.18 18:05:18 (всего исправлений: 1)


Как я понял для обслуживания GPT+EFI нужно создавать отдельный раздел с определённой ФС, копировать туда какие-то файлы. В общем стрёмная возня

Нет, это за тебя делает установщик дистрибутива.

А есть ли смысл? Может есть какие-то неочевидные плюшки?

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

Потенциально более быстрая загрузка,

отсутствие необходимости загрузчика

Зато нужно создавать отдельный раздел на несколько сот МиБ. Это вместо небольшого GRUB.

Зато нужно создавать отдельный раздел на несколько сот МиБ. Это вместо небольшого GRUB.

Xenius ★★★★★ ( 25.11.18 18:17:57 )
Последнее исправление: Xenius 25.11.18 18:18:54 (всего исправлений: 2)


Да, нужен раздел типа EF на MBR или типа EFI System Partition на GPT.

В смысле нет? В таком случае у тебя загрузка не через UEFI, а через CSM скорее всего. То есть через эмуляцию устаревшего 16-битный стандарта.

Все ещё сыровата поддержка автоматической настройки в дистрибутивах. Но руками донастроить, и нормально. Кроме файлов надо указать ещё путь к ним. Для стандартных файлов вроде /EFI/BOOT/BOOTX64.EFI это не надо. Ещё неудобно, что записи могут пропасть.
И ещё бывают странные реализации UEFI и CSM.

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

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


В таком случае у тебя загрузка не через UEFI, а через CSM скорее всего.

А что нужно-то? Загрузиться или что?


А как это сделать в UEFI BIOS? (Я просто указываю, с какого носителя загружаться и всё - дальше оно само).


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

Зато нужно создавать отдельный раздел на несколько сот МиБ. Это вместо небольшого GRUB.

Фигасе GRUB небольшой. Я бы понял если бы ты про Lilo/syslinux сказал, а не про этот комбайн. Алсо сам файл grubx64.efi весит около мегабайта. Не говоря про то, что если ты захочешь себе GPT с биосом подружить, тебе тоже придется городить раздел в начале диска.

Только вот нет никакой необходимости использовать именно GPT-разметку, вроде бы UEFI отлично поддерживает и DOSMBR-разметку

А как это сделать в UEFI BIOS? (Я просто указываю, с какого носителя загружаться и всё - дальше оно само).

Ну там же есть настройки. Скорее всего у тебя включены опции типа Compatibility Support Modules или BIOS Emulation или ещё что-то такое иначе ты бы не мог загружаться с этого жесткого диска, так как на нём нет ESP.

Фигасе GRUB небольшой. Я бы понял если бы ты про Lilo/syslinux сказал, а не про этот комбайн.

Кстати да, есть более компактные EFI-загрузчики чем GRUB, например тот же syslinux, elilo, systemd-boot, и тд, да и сам GRUB можно собрать без поддержки большей части всего оставив только команды linuxefi и initrdefi

Читайте также: