Bootstrap

Два основных типа разбиения диска на разделы (MBR и GPT)

Два основных типа разбиения диска на разделы (MBR и GPT)

Чтобы пользоваться физическими дисками (hhd и ssd) необходимо знать общие правила.
Для начала нам стоит иметь возможность разделять общее пространство дисков для своих нужд и нужд операционной системы компьютера. Для этих целей на дисках создаются подразделы. 


Начнём с двух различных типов разбиения диска, или другими словами, с двух стандартов хранения информации о разделах диска:

  • MBR (Главная загрузочная запись) Более старый стандарт для устройств с BIOS.
  • GPT (Таблица разделов GUID). Более новый стандарт для устройств с UEFI.

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


Когда IBM PC был впервые выпущен, он поставлялся с простой дисковой операционной системой под названием DOS, предоставленной Microsoft. Что касается PC-XT и его жесткого диска, IBM приняла решение, что на ПК в конечном итоге может быть установлено до четырех операционных систем одновременно. Каждая операционная система будет иметь свой собственный участок диска, называемый разделом . По этой причине первый сектор каждого диска на ПК, называемый MBR (Master Boot Record), содержит таблицу с четырьмя записями, каждая из которых указывает начальное и конечное расположение четырёх разделов.

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

случай когда все 4 раздела основные и между ними есть промежутки

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

случай когда есть и расширенный раздел тоже с промежутками...

Главная загрузочная запись (англ. master boot record, MBR) — код и данные, необходимые для последующей загрузки операционной системы и расположенные в первых физических секторах (чаще всего в самом первом) на жёстком диске или другом устройстве хранения информации. Применялась с 1983 года (начиная с PC DOS 2.0) до широкого внедрения UEFI и схемы GPT в 2010-х.

MBR содержит небольшой фрагмент исполняемого кода, таблицу разделов диска (англ. partition table) и специальную сигнатуру.

схематично стиль MBR разметки диска на разделы

Функция MBR — «переход» в тот раздел жёсткого диска, с которого следует исполнять «дальнейший код» (обычно — загружать ОС). На «стадии MBR» происходит выбор раздела диска, загрузка кода ОС (происходит на более поздних этапах алгоритма).

Он называется главная загрузочная запись, так как MBR — это специальный загрузочный сектор, расположенный в начале диска. Этот сектор содержит загрузчик для установленной операционной системы, а так же информацию о логических разделах диска. Загрузчик — это небольшой кусок кода, который обычно используется для загрузки большого загрузчика с другого раздела или диска. Если на вашем компьютере установлен Windows, то здесь будут находиться начальные элементы загрузчика Windows. Именно поэтому вам приходится восстанавливать MBR, если он был перезаписан и Windows не загружается. Если у вас установлен Linux, MBR чаще всего будет содержать загрузчик GRUB.

MBR работает с дисками объёмом до 2 Тб., но он может справиться и с дисками большего размера. Кроме этого MBR поддерживает не более 4 основных разделов. Если вам нужно больше, придётся сделать один из основных разделов «расширенным разделом» и разместить в нём логические разделы. 

Расширенный (дополнительный) раздел

Так как основная таблица разделов MBR может содержать не более 4 первичных разделов, был изобретён Расширенный раздел (англ. extended partition). Это первичный раздел, который не содержит собственной файловой системы, а содержит другие логические разделы. Количество логических разделов ограничено только размером диска. Данные о каждом разделе хранятся в отдельной расширенной загрузочной записи (EBR, англ. Extended Boot Record).



GUID Partition Table, аббр. GPT — стандарт формата размещения таблиц разделов на физическом жёстком диске. Он является частью Расширяемого микропрограммного интерфейса (англ. Extensible Firmware Interface, EFI) — стандарта, предложенного Intel на смену BIOS. EFI использует GPT там, где BIOS использует Главную загрузочную запись (англ. Master Boot Record, MBR).

схематично стиль GPT разметки диска на разделы

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

GPT означает Таблица разделов GUID. Это новый стандарт, который пришёл на смену MBR. Он является частью UEFI, а UEFI заменяет старый неудобный BIOS так же, как GPT заменяет MBR на что-то более современное. Он называется таблицей разделов GUID, поскольку каждому разделу на вашем диске присваивается «уникальный глобальный идентификатор» или GUID — случайная строка такой длины, что каждый GPT раздел на Земле, скорее всего, обладает уникальным идентификаторов.

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

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


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

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

Windows может загружаться с GPT только на компьютерах с UEFI, работающих под управлением 64-битных версий Windows 8.1, 8, 7, Vista и соответствующих серверных версий. Все версии Windows 8.1, 8, 7 и Vista могут читать GPT диски и использовать их для хранения данных, но они не могут с них загружаться. Чтобы получить доступ к расширенным функциям безопасности UEFI, Windows 11 откажется от старой схемы разделов основной загрузочной записи (MBR) и вместо этого будет использовать современную схему таблицы разделов GUID (GPT). Если ваш компьютер с Windows 10 всё ещё использует MBR, его необходимо преобразовать в GPT, прежде чем вы сможете обновить его до Windows 11.

Примечание. Для многих пользователей старых компьютеров UEFI может вообще не быть установлен на их материнских платах, или, если это так, микропрограмма может быть слишком старой для удовлетворения требований Microsoft. В любом случае для этих пользователей Windows 11 никогда не может быть установлена, по крайней мере, традиционно.


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


Как узнать тип разбиения диска на разделы (MBR или GPT) в текущей машине, с помощью командной строки Linux

fdisk -l

Сделаем вывод из двух различных машин. Для наглядности отображаю их в одном терминале, разделив двойной чертой. Первый листинг команды из моего хоста Fedora 34 c UEFI, а второй вывод гостевой машины  Centos 7 с BIOS:

Terminal:

    [root@fedora ] # fdisk -l                                                                                                        
    
    Disk /dev/sda: 931.51 GiB, 1000204886016 bytes, 1953525168 sectors
    Disk model: WDC WD10JPVT-22A
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 4096 bytes
    I/O size (minimum/optimal): 4096 bytes / 4096 bytes
    Disklabel type: gpt
    Disk identifier: 6AADA02D-8736-4D03-9EC3-6C660FE5A488
    
    Device         Start        End    Sectors   Size Type
    /dev/sda1       2048  234440703  234438656 111.8G Linux filesystem
    /dev/sda4  234440704 1953523711 1719083008 819.7G Microsoft basic data



    Disk /dev/nvme0n1: 476.94 GiB, 512110190592 bytes, 1000215216 sectors
    Disk model: KINGSTON OM8PCP3512F-AB                 
    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: gpt
    Disk identifier: 3321CFB0-D2B2-477D-8CF1-8BE52E6C6F14
    
    Device             Start       End   Sectors   Size Type
    /dev/nvme0n1p1      2048    206847    204800   100M EFI System
    /dev/nvme0n1p2    206848    239615     32768    16M Microsoft reserved
    /dev/nvme0n1p3    239616 203741170 203501555    97G Microsoft basic data
    /dev/nvme0n1p4 203741184 204799999   1058816   517M Windows recovery environment
    /dev/nvme0n1p5 511375360 511596543    221184   108M EFI System
    /dev/nvme0n1p6 511596544 513693695   2097152     1G Linux filesystem
    /dev/nvme0n1p7 513693696 547248127  33554432    16G Linux swap
    /dev/nvme0n1p8 204800000 511375359 306575360 146.2G Microsoft basic data
    /dev/nvme0n1p9 547248128 900763647 353515520 168.6G Linux filesystem
        
    

[07:22:47 root@centos7] # fdisk -l Disk /dev/sda: 85.9 GB, 85899345920 bytes, 167772160 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 Disk label type: dos Disk identifier: 0x0009be25 Device Boot Start End Blocks Id System /dev/sda1 * 2048 2050047 1024000 83 Linux /dev/sda2 2050048 167772159 82861056 8e Linux LVM Disk /dev/mapper/centos-swap: 2013 MB, 2013265920 bytes, 3932160 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 Disk /dev/mapper/centos-root: 82.8 GB, 82833309696 bytes, 161783808 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

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

Копирование материалов разрешается только с указанием автора Roman Sakhno и индексируемой прямой ссылкой на сайт (http://itdid.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/sahroman.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/sahroman.

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

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как настроить свой компьютер

  2. Текстовая ссылка:

    Она выглядит вот так: Как настроить свой компьютер

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (0):

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

крипто-донат, на развитие сайта itdid.ru:

В новом окне с терминалом itdid.ru, введите любую сумму: