HomeРазноеFdisk mbr: Команды ms-dos для установки операционной системы.

Fdisk mbr: Команды ms-dos для установки операционной системы.

Содержание

Команда fdisk в Linux | Losst

В Linux существует множество способов разметки диска, создания на нём разделов и просмотра уже существующих. Это утилиты parted и cfdisk в терминале и графическая утилита gparted. Однако сегодня мы поговорим про самую простую утилиту для разметки диска в терминале — fdisk.

Именно она используется чаще всего, если надо посмотреть как диски и разделы доступны на компьютере. Далее рассмотрим основные опции утилиты, её синтаксис, а также примеры использования.

Содержание статьи:

Опции и синтаксис fdisk

Синтаксис утилиты ничем не отличается от других команд Linux:

$ fdisk опции устройство

Ей надо передать опции, согласно действия, которое вы хотите выполнить, а также раздел диска или устройство к которому эти действия надо применить. Давайте теперь рассмотрим опции fdisk:

  • -B, —protect-boot — не стирать первые 512 байт диска чтобы не повредить загрузочную запись;
  • -L, —color — настройка цветного вывода, возможные значения auto, never или always;
  • -l, —list — вывести все разделы на выбранных устройствах или если устройств не задано, то на всех устройствах;
  • -o, —output — указывает какие поля данных надо показывать в выводе программы, доступные поля рассмотрим ниже;
  • -u, —units — настраивает формат вывода размера разделов, доступные значения: cylinders, sectors, по умолчанию используется sectors;
  • -w, —wipe — режим стирания файловой системы или RAID с диска, возможные значения auto, never или always по умолчанию используется auto;
  • -W, —wipe-partition — режим стирания файловой системы или RAID из только что созданного раздела. Возможные значения аналогичны предыдущей опции;
  • -h, —help — показать справку по утилите;
  • -v, —version — опция выводит версию утилиты.

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

  • a — включение или выключения флага boot для раздела;
  • d — удалить раздел;
  • F — показать свободное место;
  • l — вывести список известных типов разделов;
  • n — создать новый раздел;
  • p — вывести таблицу разделов;
  • t — изменение типа раздела;
  • i — вывести информацию о разделе;
  • I и O — записать или загрузить разметку в файл сценария sfdisk;
  • w — записать новую таблицу разделов на диск;
  • q — выйти без сохранения;
  • g — создать пустую таблицу разделов GPT;
  • o — создать пустую таблицу разделов MBR.

Теперь вы знаете основные опции и команды fdisk, давайте рассмотрим использование программы.

Примеры использования команды fdisk

1. Список дисков и разделов

Чтобы посмотреть список доступных вам дисков и разделов на них используйте опцию -l:

sudo fdisk -l

Утилита покажет все блочные устройства. На снимке есть /dev/sda, это обычный жесткий диск и /dev/nvme0n1 — это M.2 накопитель, а также там есть есть несколько /dev/loop* устройств, созданных ядром, которые лучше не трогать.

2. Интерактивный режим

Большинство операций fdisk по разметке дисков выполняются в интерактивном режиме. Чтобы запустить fdisk в интерактивном режиме передайте утилите блочное устройство которое надо разметить. В моём примере, это /dev/nvme0n1:

sudo fdisk /dev/nvme0n1

Вам не обязательно возвращаться к этой статье, когда вы захотите снова поработать с программой, посмотреть доступные команды можно выполнив команду m:

(fdisk) m

3. Просмотр таблицы разделов

Чтобы посмотреть текущий тип таблицы разделов, а также доступные разделы на диске используйте команду p:

(fdisk) p

В данном примере на диске уже есть несколько разделов, а таблица разделов используется MBR (dos).

4. Создание таблицы разделов

Давайте создадим новую таблицу разделов GPT. Для этого используйте команду g. Для таблицы разделов MBR нам бы понадобилась команда o.

(fdisk) o

5. Создание разделов

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

  • указать количество секторов раздела;
  • указать последний сектор раздела;
  • указать размер раздела в килобайтах, мегабайтах или гигабайтах, обозначения стандартные K,M,G.

Давайте создадим три раздела разными способами:

(fdisk) n

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

Во втором способе укажем размер раздела в секторах. Для получения раздела размером 1 гигабайт нам понадобится примерно 2 000 000 секторов. По умолчанию размер сектора 512 байт, поэтому 2 000 000 * 512 получится примерно 1024 000 000 байт:

И в третьем способе с помощью калькулятора добавим к первому сектору раздела те же два миллиона:

На этом создание разделов fdisk завершено. А вот форматирование разделов в fdisk невозможно, для этого придется воспользоваться утилитой mkfs.

6. Тип раздела

Кроме обычных разделов для пользовательских файлов существуют и другие типы разделов, например раздел EFI, BIOS boot, Windows Recovery, Linux swap, этот тип влияет на назначение раздела, например, раздел EFI не будет использоваться пока для него не будет выбран правильный тип. Чтобы изменить тип раздела используйте команду t:

(fdisk) t

Для вывода всех доступных типов и их номеров используйте команду L:

Для выхода из списка разделов нажмите q, а затем просто наберите номер нужного типа:

7. Удаление раздела

Чтобы удалить раздел выполните команду d, а затем введите его номер:

(fdisk) d

Вот так просто выполняется удаление.

8. Загрузочный раздел

При загрузке компьютера с диска, на котором используется таблица разделов MBR, BIOS ищет раздел, отмеченный как загрузочный и начинает искать загрузчик именно на нём. Чтобы сделать раздел загрузочным если он ещё не загрузочный или наоборот сделать его не загрузочным используйте команду a:

(fdisk) a

Загрузочность отмечается звездочкой в выводе команды p. В таблице разделов GPT для записи загрузчика используется раздел с типом BIOS boot, а флага загрузочности здесь уже нет.

9. Применение изменений

Все изменения, которые вы сейчас вносили, ещё не записаны на диск. Для их записи надо выполнить команду w:

(fdisk) w

После записи изменений программа завершится.

Выводы

В этой статье мы рассмотрели как пользоваться fdisk в Linux, как создавать разделы с помощью этой утилиты, а также как выбрать тип диска. Несмотря на все возможности утилиты намного удобнее пользоваться gparted или же cfdisk если надо разметить диск в терминале. Последнюю мы разберем в одной из следующих статей.

Команда fdisk. Управление разделами жёсткого диска

fdisk (сокращение от “format disk“, форматировать диск) — это наиболее распространенная утилита командной строки для работы с дисками в Linux/Unix системах. При помощи этой команды можно просматривать, создавать, удалять, изменять, копировать и перемещать разделы на жёстком диске, используя простой интерфейс текстовых меню.

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

Мы рассмотрим ряд базовых команд fdisk для управления таблицей разделов в Linux. Для запуска команды fdisk нужно обладать root-привилегиями (или использовать sudo), иначе будет выведена ошибка “command not found”.

Просмотр всех разделов диска

Для просмотра всех доступных разделов используется опция -l (listing — перечисление). Разделы перечисляются по именам, например, /dev/sda, /dev/sdb или /dev/sdc.

fdisk -l

Просмотр разделов заданного диска

Для просмотра всех разделов заданного жесткого диска укажите опцию -l с именем устройства. Например, следующая команда отобразит все разделы диска /dev/sda:

fdisk -l /dev/sda

Командный режим

Чтобы войти в командный режим, просто введите fdisk с именем жёсткого диска, например, /dev/sda, как показано ниже:

fdisk /dev/sda

Для получения списка команд, которые fdisk может выполнить на диске, введите “m”. Рассмотрим значение этих команд.

a  toggle a bootable flag — сделать диск загрузочным
b   edit bsd disklabel — редактировать bsd-метку диска
c   toggle the dos compatibility flag — установить флаг совместимости с DOS
d   delete a partition — удалить раздел
l   list known partition types — перечислить известные типы разделов
m   print this menu — вывести это меню
n   add a new partition — создать новый раздел
o   create a new empty DOS partition table — создать новую пустую таблицу разделов DOS
p   print the partition table — вывести таблицу разделов (аналогична fdisk -l)
q   quit without saving changes — выйти без сохранения
s   create a new empty Sun disklabel — создать новую метку диска Sun
t   change a partition’s system id — изменить системный идентификатор раздела
u   change display/entry units — изменить единицы отображения/ввода
v   verify the partition table — проверить таблицу разделов
w   write table to disk and exit — записать таблицу на диск и выйти
x   extra functionality (experts only) — дополнительные функции (только  для экспертов)

Удаление раздела

Допустим, нам нужно удалить определенный раздел, например, /dev/sda4, с определенного жёсткого диска, например, /dev/sda. Сначала нужно зайти в командный режим:

fdisk /dev/xvdb

Затем введите d для удаления раздела. После этого у вас будет запрошен номер раздела для удаления с диска /dev/xvdb. Для удаления раздела номер 2 (то есть, /dev/xvdb2) нужно ввести соответствующую  цифру, 2. Затем нужно ввести команду w, чтобы записать таблицу на диск и выйти. 

 

fdisk -l /dev/xvdb

Как мы видим раздел /dev/xvdb2 был удален.

Внимание : будьте осторожны с этой командой, потому что удаление раздела полностью уничтожит все данные на нем.

Создание нового раздела

Войдите в командный режим и введите “n”:

fdisk  /dev/xvdb

При создании нового раздела нужно выбрать одну из двух опций: extended для логического раздела или primary для первичного и нажать, соответственно, e или p. Затем потребуется ввести номера первого и последнего цилиндра раздела (либо смещение в цилиндрах или размер). Лучше всего оставить заданное по умолчанию значение первого цилиндра и ввести нужный размер раздела, например, “+5000M”, что означает размер 5000 мегабайт. После создания раздела нужно нажать w для сохранения изменений в таблице разделов.

fdisk -l /dev/xvdb

Теперь мы видим на диске /dev/xvdb два раздела.

Также при создании раздела можно указать размер раздела с помощью опции +size{K,M,G}. Т.е если нужно создать раздел размером 2 Гб, в качестве последнего сектора можно указать +2G

Форматирование раздела

После создания нового раздела не забудьте отформатировать его командой mkfs. Для этого выполните следующую команду:

mkfs -t ext4 /dev/xvdb2

где в ключе -t указываем тип файловой системы в которую мы хотим отформатировать наш раздел.

Проверка размера раздела

Когда раздел отформатирован, проверьте его размер при помощи опции -s (размер отображается в блоках). Так можно узнать размер любого заданного устройства:

fdisk -s /dev/xvdb2

Исправление нумерации в таблице разделов

Если вы удалили логический раздел, возможны ошибки вида ‘partition out of order‘ (нарушение порядка разделов) или ‘Partition table entries are not in disk order‘ (записи таблицы разделов не соответствуют порядку дисков). Допустим у нас диск со следующими разделами

Например, при удалении трёх логических разделов xvdb2, xvdb3 и xvdb4 и создании нового раздела можно предположить, что его имя будет xvdb2. Однако, система создаст раздел xvdb3. Это происходит потому, что после удаления раздела xvdb5 будет перемещена на место xvdb2, а свободное пространство — перераспределено в конец.
Для исправления подобных проблем и назначения вновь созданному разделу имени xvdb2 нужно перейти в режим дополнительных функций (x) и выполнить экспертную команду (f):

fdisk  /dev/xvdb
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').
Command (m for help): x
Expert command (m for help): f
Done.
Expert command (m for help): w
The partition table has been altered!

Естественно, после выполнения команды (f) нужно сохранить изменения командой (w) . После исправления порядка разделов сообщения об ошибках должны прекратиться.

Флаг загрузочного раздела

Чтобы включить или отключить на заданном разделе флаг загрузочного раздела (отображается символом ‘*’ в таблице разделов), нужно выполнить следующие действия.

fdisk -l /dev/xvda

Вы увидите на диске /dev/sda1 флаг загрузочного раздела (звёздочка ‘*’)

fdisk /dev/xvda

Далее введите команду «a» для снятия флага загрузочного раздела, а затем введите номер раздела (в данном случае 1 для /dev/sda1). Флаг загрузочного раздела будет снят, символ звёздочки (*) пропадет.

Для назначения загрузочного диска нужно также использовать опцию «a». Например назначим загрузочным диск xvda2

Заключение

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Как восстановить главную загрузочную запись MBR

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

recovery-mbrНаверное, каждый из нас встречался с такой ситуацией, когда после перезагрузки операционной системы, возникают ошибки типа: «operating system not found», «system missing» и другие.

Как правило, это происходит после каких-то действий с нашей стороны, установка или обновления программ, драйверов, перепады напряжения, проблемы с жестким диском и кривыми руками.

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

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

Rebuild-MBR

1. Скачайте и установите программу AOMEI Partition Assistant.

2. Создайте или скачайте загрузочный диск.

3. Запустите программу или загрузитесь с загрузочного диска, затем на карте разделов выберите жесткий диск, щелкните на нем правой клавишей мышки и выберите “Rebuild MBR”.

4. В появившемся диалоговом окне выберите операционную систему, которая у вас стоит. Программа перезапишет главную загрузочную запись в соответствие с вашим выбором.

5. На панели инструментов нажмите кнопку “Apply” для применения текущих изменений.

Хочу предупредить! Что в случаи повреждения загрузочных файлов операция по восстановлению главной загрузочной записи “Rebuild MBR” не поможет.

Автор: Ruterk
7 января 2013 г.

Команда Fdisk в Linux (Создание разделов диска)

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

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

В этой статье мы поговорим о команде fdisk.

fdisk – утилита командной строки на основе меню, позволяющая создавать таблицы разделов на жестком диске и управлять ими

Помните, что fdisk это опасный инструмент, и его следует использовать с особой осторожностью. Только root или пользователи с привилегиями sudo могут манипулировать таблицами разделов.

 

Список разделов

Чтобы отобразить таблицу разделов устройства, вызовите команду fdisk с параметром -l, а затем имя устройства. Например, чтобы вывести список таблицы разделов /dev/sda и разделов, которые вы запустите:

fdisk -l /dev/sda

 

Если в качестве аргумента не указано устройство, fdisk напечатает таблицы разделов всех устройств, перечисленных в файле /proc/partitions:

fdisk -l
Disk /dev/nvme0n1: 232.91 GiB, 250059350016 bytes, 488397168 sectors
Disk model: Samsung SSD 960 EVO 250GB               
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: 6907D1B3-B3AB-7E43-AD20-0707A656A1B5

Device            Start       End   Sectors   Size Type
/dev/nvme0n1p1     2048   1050623   1048576   512M EFI System
/dev/nvme0n1p2  1050624  34605055  33554432    16G Linux swap
/dev/nvme0n1p3 34605056 488397134 453792079 216.4G Linux filesystem


Disk /dev/sda: 465.78 GiB, 500107862016 bytes, 976773168 sectors
Disk model: WDC WD5000AAKS-0
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: 0x0001cca3

Device     Boot Start       End   Sectors   Size Id Type
/dev/sda1        2048 976771071 976769024 465.8G 83 Linux

 

Вывод выше показывает текущие таблицы разделов всех устройств, подключенных к вашей системе. Как правило, имена устройств SATA соответствуют шаблону /dev/sd[a-z], а имена устройств NVMe имеют следующий шаблон /dev/nvme[1-9]n[1-9].

 

Создание таблицы разделов

Чтобы начать разбиение диска, запустите fdiskс именем устройства. В этом примере мы будем работать над /dev/sdb:

fdisk /dev/sdb

 

Командная строка изменится, и откроется диалоговое окно fdisk, в котором вы можете вводить команды:

Welcome to fdisk (util-linux 2.34).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Command (m for help):

Изменения, которые вы вносите в таблицу разделов, не вступят в силу, пока вы не напишите их с помощью wкоманды. Вы можете выйти из диалога fdisk, не сохранив изменения, используя команду q.

Чтобы получить список всех доступных команд, введите m:

m

 

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

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

  • Используйте MBR для загрузки диска в устаревшем режиме BIOS.
  • Используйте GPT для загрузки диска в режиме UEFI.
  • Стандарт MBR поддерживает создание раздела на диске размером до 2 TiB. Если у вас диск объемом 2 TiB или больше, используйте GPT.
  • MBR имеет ограничение в 4 основных раздела. Если вам нужно больше разделов, один из основных разделов может быть установлен как расширенный раздел и содержать дополнительные логические разделы. С GPT вы можете иметь до 128 разделов. GPT не поддерживает расширенные или логические разделы.

В этом примере мы будем использовать таблицу разделов GPT.

Введите, gчтобы создать новую пустую таблицу разделов GPT:

g

 

Вывод будет выглядеть примерно так:

Created a new GPT disklabel (GUID: 4649EE36-3013-214E-961C-51A9187A7503).

 

Следующим шагом является создание новых разделов.

Мы создадим два раздела. Первый размером 100 ГиБ, второй займет оставшееся место на диске.

Запустите команду n для создания нового раздела:

n

 

Вам будет предложено ввести номер раздела. Нажмите «Enter», чтобы использовать значение по умолчанию ( 1):

Partition number (1-128, default 1):

 

Далее команда попросит вас указать первый сектор. Как правило, всегда рекомендуется использовать значения по умолчанию для первого значения. Нажмите «Enter», чтобы использовать значение по умолчанию ( 2048):

First sector (2048-500118158, default 2048):

 

В следующем приглашении вам нужно будет ввести последний сектор. Вы можете использовать абсолютное значение для последнего сектора или относительное значение для начального сектора, используя символ +, следующий за размером раздела. Размер может быть указан в кибибайтах (K), мебибайтах (M), гибибайтах (G), тебибайтах (T) или пебибайтах (P).

Введите +100G, чтобы установить размер раздела 100 GiB:

Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-500118158, default 500118158): +100G
Created a new partition 1 of type 'Linux filesystem' and of size 100 GiB.

 

По умолчанию тип нового раздела установлен как “Linux filesystem”, что в большинстве случаев подходит. Если вы хотите изменить тип, нажмите l, чтобы получить список типов разделов, а затем нажмите t, чтобы изменить тип.

Давайте создадим второй раздел, который займет оставшееся место на диске:

n

 

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

Partition number (2-128, default 2): 
First sector (209717248-625142414, default 209717248): 
Last sector, +/-sectors or +/-size{K,M,G,T,P} (209717248-625142414, default 625142414): 

 

Закончив создание разделов, используйте команду p для отображения новой таблицы разделов:

p
Disk /dev/sdb: 298.9 GiB, 320072933376 bytes, 625142448 sectors
Disk model: nal USB 3.0     
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: F8365250-AF58-F74E-B592-D56E3A5DEED1

Device         Start       End   Sectors   Size Type
/dev/sdb1       2048 209717247 209715200   100G Linux filesystem
/dev/sdb2  209717248 625142414 415425167 198.1G Linux filesystem

Если вы хотите удалить раздел, используйте команду d.

Сохраните изменения, выполнив команду w:

p

 

Команда запишет таблицу на диск и выйдет из меню fdisk.

The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

 

Ядро прочитает таблицу разделов устройства без необходимости перезагрузки системы.

 

Активация разделов

Теперь, когда разделы созданы, следующим шагом является форматирование разделов и их монтирование в системное дерево каталогов.

Мы отформатируем оба раздела в ext4:

sudo mkfs.ext4 -F /dev/sdb1sudo mkfs.ext4 -F /dev/sdb2
mke2fs 1.45.5 (07-Jan-2020)
Creating filesystem with 51928145 4k blocks and 12984320 inodes
Filesystem UUID: 63a3457e-c3a1-43f4-a0e6-01a7dbe7dfed
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
	4096000, 7962624, 11239424, 20480000, 23887872

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (262144 blocks): done
Writing superblocks and filesystem accounting information: done   

 

В этом примере будут монтироваться разделы каталогов /mnt/audio и /mnt/video.

Создайте точки монтирования с помощью команды mkdir:

sudo mkdir -p /mnt/audio /mnt/video

 

Смонтируйте новый раздел:

sudo mount /dev/sdb1 /mnt/audio
sudo mount /dev/sdb2 /mnt/video

 

Разделы останутся подключенными, пока вы не размонтируете их или не выключите машину. Чтобы автоматически смонтировать раздел при запуске системы Linux, определите монтирование в файле /etc/fstab.

Все! Теперь вы можете использовать новые разделы для хранения ваших файлов.

 

Вывод

fdisk – это инструмент командной строки для создания схем разделов. Для получения дополнительной информации о команде fdisk введите man fdisk в свой терминал.

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Изучаем структуры MBR и GPT / Хабр

Для работы с жестким диском его для начала необходимо как-то разметить, чтобы операционная система могла понять в какие области диска можно записывать информацию. Поскольку жесткие диски имеют большой объем, их пространство обычно разбивают на несколько частей — разделов диска. Каждому такому разделу может быть присвоена своя буква логического диска (для систем семейства Windows) и работать с ним можно, как будто это независимый диск в системе.

Способов разбиения дисков на разделы на сегодняшний день существует два. Первый способ — использовать MBR. Этот способ применялся еще чуть ли не с появления жестких дисков и работает с любыми операционными системами. Второй способ — использовать новую систему разметки — GPT. Этот способ поддерживается только современными операционными системами, поскольку он еще относительно молод.

Структура MBR

До недавнего времени структура MBR использовалась на всех персональных компьютерах для того, чтобы можно было разделить один большой физический жесткий диск (HDD) на несколько логических частей — разделы диска (partition). В настоящее время MBR активно вытесняется новой структурой разделения дисков на разделы — GPT (GUID Partition Table). Однако MBR используется еще довольно широко, так что посмотрим что она из себя представляет.

MBR всегда находится в первом секторе жесткого диска. При загрузке компьютера, BIOS считывает этот сектор с диска в память по адресу 0000:7C00h и передает ему управление.

Итак, первая секция структуры MBR — это секция с исполняемым кодом, который и будет руководить дальнейшей загрузкой. Размер этой секции может быть максимум 440 байт. Далее идут 4 байта, отведенные на идентификацию диска. В операционных системах, где идентификация не используется, это место может занимать исполняемый код. То же самое касается и последующих 2 байт.

Начиная со смещения 01BEh находится сама таблица разделов жесткого диска. Таблица состоит из 4 записей (по одной на каждый возможный раздел диска) размером 16 байт.

Структура записи для одного раздела:

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

Следующие три байта — это так называемые CHS-координаты первого сектора раздела.

По смещению 04h находится код типа раздела. Именно по этому типу можно определить что находится в данном разделе, какая файловая система на нем и т.п. Список зарезервированных типов разделов можно посмотреть, например, в википедии по ссылке Типы разделов.

После типа раздела идут 3 байта, определяющие CHS-координаты последнего сектора раздела.

CHS-координаты сектора расшифровываются как Cylinder Head Sector и соответственно обозначают номер цилиндра (дорожки), номер головки (поверхности) и номер сектора. Цилиндры и головки нумеруются с нуля, сектор нумеруется с единицы. Таким образом CHS=0/0/1 означает первый сектор на нулевом цилиндре на нулевой головке. Именно здесь находится сектор MBR.

Все разделы диска, за исключением первого, обычно начинаются с нулевой головки и первого сектора какого-либо цилиндра. То есть их адрес будет N/0/1. Первый раздел диска начинается с головки 1, то есть по адресу 0/1/1. Это все из-за того, что на нулевой головке место уже занято сектором MBR. Таким образом, между сектором MBR и началом первого раздела всегда есть дополнителььные неиспользуемые 62 сектора. Некоторые загрузчики ОС используют их для своих нужд.

Интересен формат хранения номера цилиндра и сектора в структуре записи раздела. Номер цилиндра и номер сектора делят между собой два байта, но не поровну, а как 10:6. То есть на номер сектора приходится младшие 6 бит младшего байта, что позволяет задавать номера секторов от 1 до 63. А на номер цилиндра отведено 10 бит — 8 бит старшего байта и оставшиеся 2 бита от младшего байта: «CCCCCCCC CCSSSSSS», причем в младшем байте находятся старшие биты номера цилиндра.

Проблема с CHS-координатами состоит в том, что с помощью такой записи можно адресовать максимум 8 Гб диска. В эпоху DOS это было приемлемо, однако довольно скоро этого перестало хватать. Для решения этой проблемы была разработана система адресации LBA (Logical Block Addressing), которая использовала плоскую 32-битную нумерацию секторов диска. Это позволило адресовать диски размером до 2Тб. Позже разрядность LBA увеличили до 48 бит, однако MBR эти изменения не затронули. В нем по-прежнему осталась 32-битная адресация секторов.

Итак, в настоящее время повсеместно используется LBA-адресация для секторов на диске и в структуре записи раздела адрес его первого сектора прописывается по смещению 08h, а размер раздела — по смещению 0Ch.

Для дисков размером до 8Гб (когда адресация по CHS еще возможна) поля структуры с CHS-координатами и LBA-адресации должны соответствовать друг другу по значению (корректно конвертироваться из одного формата в другой). У дисков размером более 8Гб значения всех трех байт CHS-координат должны быть равны FFh (для головки допускается также значение FEh).

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

Расширенные разделы

Разделы, отмеченные в таблице типом 05h и 0Fh, это так называемые расширенные разделы. С их помощью можно создавать больше разделов на диске, чем это позволяет MBR. На самом деле расширенных разделов несколько больше, например есть разделы с типами C5h, 15h, 1Fh, 91h, 9Bh, 85h. В основном все эти типы разделов использовались в свое время различными операционными системами (такими как например OS/2, DR-DOS, FreeDOS) с одной и той же целью — увеличить количество разделов на диске. Однако со временем различные форматы отпали и остались только разделы с типами 05h и 0Fh. Единственное исключение — это тип 85h. Он до сих пор может использоваться в Linux для формирования второй цепочки логических дисков, скрытых от других операционных систем. Разделы с типом 05h используются для дисков менее 8Гб (где еще возможна адресация через CHS), а тип 0Fh используется для дисков больше 8Гб (и используется LBA-адресация).

В первом секторе расширенного раздела находится структура EBR (Extended Boot Record). Она во многом схожа со структурой MBR, но имеет следующие отличия:

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

В конце структуры EBR, также как и в MBR, должно находиться «магическое» значение AA55h.

В отличие от MBR, где позволяется создавать не более четырёх разделов, структура EBR позволяет организовать список логических разделов, ограниченный лишь размером раздела-контейнера (того самого, который с типом 05h или 0Fh). Для организации такого списка используется следующий формат записей: первая запись в таблице разделов EBR указывает на логический раздел, связанный с данным EBR, а вторая запись указывает на следующий в списке раздел EBR. Если данный логический раздел является последним в списке, то вторая запись в таблице разделов EBR должна быть заполнена нулями.

Формат записей разделов в EBR аналогичен формату записи в структуре MBR, однако логически немного отличается.

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

А вот поля, где в режиме LBA-адресации должны находиться номер начального сектора и количество секторов раздела, в структуре EBR используются несколько иначе.

Для первой записи таблицы разделов EBR в поле начального сектора раздела (смещение 08h) записывается расстояние в секторах между текущим сектором EBR и началом логического раздела, на который ссылается запись. В поле количества секторов раздела (смещение 0Ch) в этом случае пишется размер этого логического раздела в секторах.

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

Таким образом, первая запись таблицы разделов описывает как найти, и какой размер занимает текущий логический раздел, а вторая запись описывает как найти, и какой размер занимает следующий EBR в списке, вместе со своим разделом.

Структура GPT

В современных компьютерах на смену BIOS пришла новая спецификация UEFI, а вместе с ней и новое устройство разделов на жестком диске — GUID Partition Table (GPT). В этой структуре были учтены все недостатки и ограничения, накладываемые MBR, и разработана она была с большим запасом на будущее.

В структуре GPT используется теперь только LBA-адресация, никаких CHS больше нет и никаких проблем с их конвертацией тоже. Причем под LBA-адреса отведено по 64 бита, что позволяет работать с ними без всяких ухищрений, как с 64-битными целыми числами, а также (если до этого дойдет) даст в будущем возможность без проблем расширить 48-битную LBA-адресацию до 64-битной.

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

Рассмотрим теперь устройство структуры GPT подробнее. Вся структура GPT на жестком диске состоит из 6 частей:








LBA-адрес Размер (секторов) Назначение
LBA 0 1 Защитный MBR-сектор
LBA 1 1 Первичный GPT-заголовок
LBA 2 32 Таблица разделов диска
LBA 34 NN Содержимое разделов диска
LBA -34 32 Копия таблицы разделов диска
LBA -2 1 Копия GPT-заголовка

Защитный MBR-сектор

Первый сектор на диске (с адресом LBA 0) — это все тот же MBR-сектор. Он оставлен для совместимости со старым программным обеспечением и предназначен для защиты GPT-структуры от случайных повреждений при работе программ, которым про GPT ничего не известно. Для таких программ структура разделов будет выглядеть как один раздел, занимающий все место на жестком диске.

Структура этого сектора ничем не отличается от обычного сектора MBR. В его таблице разделов дожна быть создана единственная запись с типом раздела 0xEE. Раздел должен начинаться с адреса LBA 1 и иметь размер 0xFFFFFFFF. В полях для CHS-адресации раздел соответственно должен начинаться с адреса 0/0/2 (сектор 1 занят под саму MBR) и иметь конечный CHS-адрес FF/FF/FF. Признак активного раздела должен иметь значение 0 (неактивный).

При работе компьютера с UEFI, данный MBR-сектор просто игнорируется и никакой код в нем также не выполняется.

Первичный GPT-заголовок

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

Структура GPT-заголовка:

















Смещение (байт) Размер поля (байт) Пример заполнения Название и описание поля
0x00 8 байт 45 46 49 20 50 41 52 54 Сигнатура заголовка. Используется для идентификации всех EFI-совместимых GPT-заголовков. Должно содержать значение 45 46 49 20 50 41 52 54, что в виде текста расшифровывается как «EFI PART».
0x08 4 байта 00 00 01 00 Версия формата заголовка (не спецификации UEFI). Сейчас используется версия заголовка 1.0
0x0C 4 байта 5C 00 00 00 Размер заголовка GPT в байтах. Имеет значение 0x5C (92 байта)
0x10 4 байта 27 6D 9F C9 Контрольная сумма GPT-заголовка (по адресам от 0x00 до 0x5C). Алгоритм контрольной суммы — CRC32. При подсчёте контрольной суммы начальное значение этого поля принимается равным нулю.
0x14 4 байта 00 00 00 00 Зарезервировано. Должно иметь значение 0
0x18 8 байт 01 00 00 00 00 00 00 00 Адрес сектора, содержащего первичный GPT-заголовок. Всегда имеет значение LBA 1.
0x20 8 байт 37 C8 11 01 00 00 00 00 Адрес сектора, содержащего копию GPT-заголовка. Всегда имеет значение адреса последнего сектора на диске.
0x28 8 байт 22 00 00 00 00 00 00 00 Адрес сектора с которого начинаются разделы на диске. Иными словами — адрес первого раздела диска
0x30 8 байт 17 C8 11 01 00 00 00 00 Адрес последнего сектора диска, отведенного под разделы
0x38 16 байт 00 A2 DA 98 9F 79 C0 01 A1 F4 04 62 2F D5 EC 6D GUID диска. Содержит уникальный идентификатор, выданный диску и GPT-заголовку при разметке
0x48 8 байт 02 00 00 00 00 00 00 00 Адрес начала таблицы разделов
0x50 4 байта 80 00 00 00 Максимальное число разделов, которое может содержать таблица
0x54 4 байта 80 00 00 00 Размер записи для раздела
0x58 4 байта 27 C3 F3 85 Контрольная сумма таблицы разделов. Алгоритм контрольной суммы — CRC32
0x5C 420 байт 0 Зарезервировано. Должно быть заполнено нулями

Система UEFI проверяет корректность GPT-заголовка, используя контрольный суммы, вычисляемые по алгоритму CRC32. Если первичный заголовок поврежден, то проверяется контрольная сумма копии заголовка. Если контрольная сумма копии заголовка правильная, то эта копия используется для восстановления информации в первичном заголовке. Восстановление также происходит и в обратную сторону — если первичный заголовок корректный, а копия неверна, то копия восстанавливается по данным из первичного заголовка. Если же обе копии заголовка повреждены, то диск становится недоступным для работы.

У таблицы разделов дополнительно существует своя контрольная сумма, которая записывается в заголовке по смещению 0x58. При изменении данных в таблице разделов, эта сумма рассчитывается заново и обновляется в первичном заголовке и в его копии, а затем рассчитывается и обновляется контрольная сумма самих GPT-заголовков.

Таблица разделов диска

Следующей частью структуры GPT является собственно таблица разделов. В настоящее время операционные системы Windows и Linux используют одинаковый формат таблицы разделов — максимум 128 разделов, на каждую запись раздела выделяется по 128 байт, соответственно вся таблица разделов займет 128*128=16384 байт, или 32 сектора диска.

Формат записи раздела:








Смещение (байт) Размер поля (байт) Пример заполнения Название и описание поля
0x00 16 байт 28 73 2A C1 1F F8 D2 11 BA 4B 00 A0 C9 3E C9 3B GUID типа раздела. В примере приведен тип раздела «EFI System partition». Список всех типов можно посмотреть здесь
0x10 16 байт C0 94 77 FC 43 86 C0 01 92 E0 3C 77 2E 43 AC 40 Уникальный GUID раздела. Генерируется при создании раздела
0x20 8 байт 3F 00 00 00 00 00 00 00 Начальный LBA-адрес раздела
0x28 8 байт CC 2F 03 00 00 00 00 00 Последний LBA-адрес раздела
0x30 8 байт 00 00 00 00 00 00 00 00 Атрибуты раздела в виде битовой маски
0x38 72 байта EFI system partition Название раздела. Unicode-строка длиной 36-символов

Атрибуты раздела, записываемые по смещению 0x30 могут иметь следующие значения битов:





бит 0 Указывает необходимость раздела для функционирования системы. OEM-разработчики могут таким образом защищать свои разделы от перезаписи дисковыми утилитами
бит 60 Помечает раздел как доступный только для чтения. Используется только для «Microsoft Basic Data Partition» с типом {EBD0A0A2-B9E5-4433-87C0-68B6B72699C7}
бит 62 Помечает раздел как скрытый. Используется только для «Microsoft Basic Data Partition» с типом {EBD0A0A2-B9E5-4433-87C0-68B6B72699C7}
бит 63 Предотвращает автоматическое назначение буквы диска данному разделу. Используется только для «Microsoft Basic Data Partition» с типом {EBD0A0A2-B9E5-4433-87C0-68B6B72699C7}

С оставшимися частями разметки все понятно и без подробного описания. Содержимое разделов — говорит само за себя. Копия таблицы разделов — тоже понятно, хранит копию таблицы разделов. Ну и последний сектор диска — это копия GPT-заголовка.

Разметка диска GPT или MBR Linux — Переходим на Линукс


Переходим на Линукс  »  Разметка диска GPT или MBR Linux

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

Существует 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 — количество операций ввода и вывода, тем самым ускоряя операции с диском ..

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

# перечислит тома на диске, подробно с точками монтирования и удобным размером
df -h
# подробная информация о всех дисках
sudo fdisk -l
# о конкретном диске
sudo fdisk -l /dev/sda
# перечислит диски, тома и размер оных
cat /proc/partitions
# только диски
fdisk -l
# диски и размер
sudo sfdisk -s

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

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

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

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

sudo fdisk /dev/sda
# создать новую таблицу разделов MBR
o
# создаём разделы
n: enter (default p), enter (default 1), enter, +20G
n: enter (default p), enter (default 2), enter, +7G
# остаток 10% неразмечен для SSD или
#n: enter (default p), enter (default 2), enter, enter

# устанавливаем boot flag (флаг загрузочного раздела) у корневого раздела.
a: 1
# применить - записать изменения, q - выйти без изменений
w

Дополнения и пояснения:
# — значок комментария.
p — посмотреть разделы.
d — удалить разделы.
b — редактировать метки диска (edit bsd disklabel).

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

t: 1, 83 (или 20).
t: 2, 83.

# отформатировать (создать файловую систему)
sudo mkfs.ext4 -L 'mylabel1' /dev/sda1
sudo mkfs.ext4 -L 'mylabel2' /dev/sda5

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

sudo sfdisk -d /dev/sda | sudo sfdisk /dev/sdb

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

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

  • Размер диска может быть до 9.4 Зеттабайт, для сравнения:
    MBR=2,2Тб против GPT=10 093 173 145,6 Тб.
    Запас на будущее колоссальный, весь трафик интернета за 2016 примерно 1,1 Зеттабайт.
  • GPT допускает 264 = 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 Гб):

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

# перечислит тома на диске, подробно с точками монтирования и удобным размером
df -h
# подробная информация о всех дисках
sudo fdisk -l
sudo gdisk -l /dev/sda
# разметка и флаги
sudo parted /dev/sda print

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

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

sudo gdisk /dev/sda
# p - посмотреть разделы
# d - удалить разделы

# создаём новую таблицу GPT
o: y
# создаём разделы
n: enter (default 1), enter, +260M, ef00
n: enter (default 2), enter, +20G, enter (8300)
n: enter (default 3), enter, +7G, enter (8300)
# остаток 10% неразмечен для SSD или
#n: enter (default 3), enter, enter, enter (8300)
# сохраняем
w: y
# Проверям
sudo parted /dev/sda print

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

# sgdisk [от куда] [ключ] [куда]
sudo sgdisk /dev/sda -R /dev/sdb

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

Не получается установить Windows на диск GPT или MBR. Исправляем

Поскольку ПК приобретается раз в несколько лет, а его комплектующие периодически заменяются, программные и аппаратные компоненты порой плохо соответствуют друг другу. Сам ПК может быть достаточно старым, но вы укомплектовали его современным SSD. Уже не первый год доступна Windows 10, а вы до сих пор отдаете предпочтение привычной «семерке».

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

К ним относится и формат таблиц разделов HDD или SSD. Вы могли и не слышать о существовании характеристики накопителя, которая неожиданно огорчила, препятствуя установке Windows 7, 10 или 8.

ПК «говорит», что установка Windows невозможна. Причина: таблица разделов диска — GPT или MBR. Увы, технологии прошлого не всегда «дружат» с современными. К счастью, это легко исправимо.

Не получается поставить ОС на GPT-диск. Решения, которые помогут

Существуют две возможности:

  1. Установка ОС на диск GPT.
  2. Преобразование в MBR.

Настоящее (UEFI и GPT) и прошлое (BIOS и MBR)

Раньше материнская плата ПК оснащалась ПО BIOS. Оно осуществляло диагностику и анализ железа, а затем загружало ОС, опираясь на загрузочную запись раздела MBR.

В более современных моделях роль BIOS выполняет UEFI. Загружается быстрее и поддерживает:

  • Безопасную загрузку.
  • HDD, зашифрованные на аппаратном уровне.
  • Драйвера UEFI.
  • GPT-диски.

GPT превосходит MBR по важным параметрам:

  • Работает с HDD большего объема.
  • Большее число разделов на HDD.

Выбор метода

Пытаться все же установить систему на «несовместимый HDD» или преобразовать его в MBR и тем самым сделать так, что ошибка больше появляться не будет. В каждом случае решение зависит от ряда факторов:

  • Для старого ПК со старомодным BIOS и 32-битным процессором оптимальным решением будет преобразование GPT в MBR.
  • Обладателям ПК с 64-битным процессором и UEFI предпочтительно установить систему на GPT-диск.

Помните:

  • Предельный объем MBR-диска — 2 терабайта.
  • Возможность создания на MBR-диске более четырех разделов затруднено.

BIOS или UEFI

Когда вы заходите в BIOS и видите старомодный синий экран — перед вами традиционный BIOS. Если интерфейс с современной графикой и поддержкой мыши — это UEFI.

Чаще всего не получается установить Windows 7

Сложности с установкой системы на GPT-диск с большей вероятностью возникают у пользователей, которые предпочитают Windows 7.

Для установки Windows на диск со стилем разделов GPT необходимо соблюсти два условия:

  1. 64-битная ОС.
  2. Загрузка в режиме EFI.

Исхожу из того, что вы устанавливаете 64-битную версию Windows. Это означает, что сообщение об ошибке появляется по причине несоответствия второму требованию.

Не исключено, что будет достаточно поменять настройки BIOS. Зайдите в него, нажав предусмотренную для этого клавишу. Вы увидите, какую клавишу нажимать в процессе загрузки компьютера. В ноутбуках чаще всего применяется F2, в настольных моделях — Delete.

Поменяйте загрузку CSM (Compatibility Support Mode) на UEFI.

Ищите в разделах «BIOS Setup», «BIOS Features» или подобных по смыслу. В SATA определите режим AHCI, а не IDE.

Для седьмой (и еще более древних) версий Windows нужно также выключить Secure Boot.

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

После изменения и сохранения вами новых параметров BIOS у вас появится возможность установки системы на GPT-диск. Если вы устанавливаете ОС с DVD, то сообщение об ошибке при повторной попытке установки, скорее всего, не появится.

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

Если накопителем поддерживаются два метода загрузки, удалите файл «bootmgr» в корневой директории флешки. Тем самым вы предотвратите возможность загрузки в режиме BIOS. Если нужна загрузка в режиме BIOS, удалите каталог «efi». Не делайте этого в тех случаях, когда есть хоть малейшие сомнения. Можно повредить дистрибутив.

Преобразование GPT в MBR

Если вы располагаете ПК с классическим BIOS и собираетесь поставить Windows 7, этот вариант будет лучшим (и, возможно, единственным). В процессе преобразования вся информация с накопителя будет удалена.

Во время работы мастера установки ОС нажмите F10 и Shift. В некоторых моделях ноутбуков — F10, Fn и Shift. В открывшейся командной строке последовательно введите такие команды:

— diskpart
— list disk (запишите номер подлежащего преобразованию диска)
— select disk N (вместо N — записанный номер)
— clean (команда очистит диск)
— convert mbr
— create partition primary
— active
— format fs=ntfs quick (быстрое форматирование в файловой системе NTFS)
— assign
— exit

Невозможно поставить ОС на диск с MBR-разделами

Вероятна обратная ситуация. Появляется ошибка:

«Установка Windows на данный диск невозможна. На выбранном диске находится таблица MBR-разделов. В системах EFI Windows можно установить только на GPT-диск»

Она означает, что вы пытаетесь установить систему с DVD или USB-накопителя в режиме EFI. Таблица разделов HDD или SSD старая — MBR. В этом случае вы можете:

  • Преобразовать SSD или HDD в GPT.
  • В UEFI или BIOS поменять установленный способ загрузки с Legacy на EFI.

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

Преобразование MBR в GPT. Вся информация будет удалена

В установщике системы запустите командную строку:

  • F10 и Shift (на настольных ПК).
  • F10, Fn и Shift (на некоторых ноутбуках).

В открывшемся окне:

  • Последовательно вводите показанные команды.
  • Нажимайте Enter после ввода каждой из них.

Последовательность команд:

— diskpart
— list disk (запишите номер подлежащего преобразованию диска)
— select disk N (вместо N — записанный номер)
— clean (команда очистит диск)
— convert gpt
— exit

Когда команды применены:

  • Закройте окно командной строки.
  • Нажмите «Обновить» в окне выбора разделов.
  • Нажмите «Создать» для формирования нескольких разделов на HDD или SSD.
  • Выберите свободное пространство и запустите установку ОС.

Более простой способ преобразования с потерей информации на накопителе:

  • Удалите все разделы на HDD или SSD.
  • Выберите свободное пространство.
  • Нажмите «Далее».

Результатом ваших действий станет автоматическое преобразование в GPT. Следующим шагом стартует установка ОС.

Как не потерять данные при преобразовании

Используйте стороннюю утилиту Minitool Partition Wizard Bootable. Скачайте ISO-образ и запишите его на флешку, отформатированную в FAT32. Необходимые условия:

  • Используется загрузка EFI.
  • В BIOS выключена функция «Secure Boot».

Загрузите ПК с созданного вами накопителя. В окне программного инструмента:

  • Выберите HDD или SSD таблицу разделов которого нужно преобразовать.
  • В левой части окна программы выберите пункт «Convert MBR Disk to GPT Disk».
  • Примените изменения нажатием кнопки «Apply».
  • Дайте положительный ответ на предупреждение утилиты.
  • Ждите завершения преобразования. Время, которое потребуется, зависит от объема накопителя и занятого пространства на нем.

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

  • Выберите раздел загрузчика ОС, который располагается в самом начале.
  • Удалите его, нажав «Delete» и подтвердив действие кнопкой «Apply». Вместо него вы можете тут же создать новый раздел загрузчика, но уже в файловой системе FAT32.
  • Повторите действия для преобразования таблицы разделов.

Как обойтись без преобразования

Зайдите в BIOS и установите режим загрузки CSM (Compatibility Support Mode) или Legacy, отключив EFI. Отключите «Secure Boot».

Ранее я подробно рассмотрел процессы чистой установки Windows 10 и Windows 7.

Какие другие затруднения возникали у вас при установке Windows?

Команда fdisk. Управление разделами жёсткого диска

fdisk (сокращение от «форматировать диск», форматировать диск) — это наиболее распространенная утилита командной строки для распространенных дисками в системах Linux / Unix. При помощи этой команды можно просмотреть, создать, удалить, скопировать и перемещать разделы на жёстком диске, используя простой интерфейс текстовых меню.

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

Мы рассмотрим ряд базовых команд fdisk для управления таблицами разделов в Linux. Для запуска команды fdisk нужно обладать корневыми привилегиями (или использовать sudo), иначе будет выведена ошибка «команда не найдена».

Просмотр всех разделов диска

Для просмотра всех доступных разделов используется опция -l (перечисление — перечисление).Разделы перечисляются по именам, например, / dev / sda, / dev / sdb или / dev / sdc.

 fdisk -l 

Просмотр разделов заданного диска

Для просмотра всех разделов заданного жесткого диска укажите опцию с именем устройства. Например, следующая команда представит все разделы диска / dev / sda:

 fdisk -l / dev / sda 

Командный режим

Чтобы войти в ниже командный режим, просто введите fdisk с именем жёсткого диска, например, / dev / sda, как показано:

 fdisk / dev / sda 

Для достижения списка команд, которые fdisk может выполнить на диске, введите «m».Рассмотрим значение этих команд.

a переключить загрузочный флаг — сделать диск загрузочным
b изменить bsd disklabel — отредактировать bsd-метку диска
c переключить флаг совместимости dos — установить флаг совместимости с DOS
d удалить раздел — удалить раздел
l перечислить известные типы разделов — перечислить известные типы разделов
m распечатать это меню — вывести это меню
n добавить новый раздел — создать новый раздел
o создать новую пустую таблицу разделов DOS — создать новую пустую таблицу разделов DOS
p распечатать таблицу разделов — вывести таблицу разделов (аналогично fdisk -l)
q выйти без сохранения изменений — продолжить без сохранения
s создать новую пустую метку диска Sun — создать новую метку диска Sun
t изменить системный идентификатор раздела — изменить системный идентификатор раздела
u изменить единицы отображения / ввода — изменить единицу отображения / ввода
v проверить таблицу разделов — проверить таблицу разделов
w записать таблицу на диск и выйти — записать таблицу на диск и выйти
x дополнительные функции (эксперты только) — дополнительные функции (только для экспертов)

Удаление раздела

Допустим, нам нужно удалить определенный раздел, например, / dev / sda4, с определенного жёсткого диска, например, / dev / sda.Сначала нужно зайти в командный режим:

 fdisk / dev / xvdb 

Затем введите d для удаления раздела. После этого у вас будет запрошен номер раздела для удаления с диска / dev / xvdb. Для удаления раздела номер 2 (то есть, / dev / xvdb2) нужно соответствующую цифру, 2. Чтобы записать таблицу на диск и выйти.

 fdisk -l / dev / xvdb 

Как мы видим раздел / dev / xvdb2 был удален.

Внимание: будьте осторожны с этой командой, потому что удаление раздела полностью уничтожит все данные на нем.

Создание нового раздела

Войдите в командный режим и введите «n»:

 fdisk / dev / xvdb
 

При создании нового раздела нужно выбрать одну из опций: расширенный для логического раздела или первичного для первичного и нажатия, соответственно e или p. Произойдет выполнение номера первого и последнего цилиндра раздела.Лучше всего оставить заданное по умолчанию значение первого цилиндра и добиться нужного размера раздела, например, «+ 5000M», что означает размер 5000 мегабайт. После создания раздела нужно нажать для сохранения изменений в таблице разделов.

 fdisk -l / dev / xvdb 

Теперь мы видим на диске / dev / xvdb два раздела.

Также при создании раздела можно указать размер раздела с помощью опции + size {K, M, G}. Т.е если нужно создать раздел размером 2 Гб, в качестве последнего сектора можно указать + 2G

Форматирование раздела

После создания нового раздела не забудьте отформатировать его команду mkfs.Для этого выполните следующую команду:

 mkfs -t ext4 / dev / xvdb2 

где в ключе -t указываем тип файловой системы, которую мы хотим отформатировать наш раздел.

Проверка размера раздела

Когда раздел отформатирован, проверьте его размер при помощи опции -s (размер отображается в блоках). Так можно узнать размер любого заданного устройства:

 fdisk -s / dev / xvdb2 

Исправление нумерации в таблице разделов

Если вы удалили логический раздел, возможны ошибки вида «раздел вне порядка» (нарушение порядка разделов) или «Записи таблицы разделов не в порядке на диске» (записи таблицы разделов не соответствуют порядку дисков).Допустим у нас диск со своими разделами

Например, при удалении трёх логических разделов xvdb2, xvdb3 и xvdb4 и создать новый раздел можно предположить, что его имя будет xvdb2. Однако, система создаст раздел xvdb3. Это происходит потому, что после удаления раздела xvdb5 будет перемещена на место xvdb2, а свободное пространство — перераспределено в конец.
Для исправления подобных проблем и назначения вновь создан разделу имени xvdb2: нужно перейти в режим дополнительных функций (x) и выполнить экспертную команду (f):

 fdisk / dev / xvdb
ВНИМАНИЕ: DOS-совместимый режим устарел.Настоятельно рекомендуется
 выключите режим (команда 'c') и измените единицы отображения на
 секторы (команда 'u').
Команда (m для справки): x
Команда эксперта (m для справки): f
Готово.
Команда эксперта (m для справки): w
Изменена таблица разделов!
 

Естественно, после выполнения команды (f) нужно сохранить команду (w). После исправления порядка разделов сообщения об ошибках прекратиться.

Флаг загрузочного раздела

включить или отключить на заданном разделе флаг загрузочного раздела (отображается символом ‘*’ в таблице разделов), чтобы выполнить следующее действие.

fdisk -l / dev / xvda

Вы увидите на диске / dev / sda1 флаг загрузочного раздела (звёздочка ‘*’)

 fdisk / dev / xvda
 

Далее введите команду «a» для снятия флага загрузочного раздела, а затем введите номер раздела (в данном случае 1 для / dev / sda1). Флаг загрузочного раздела будет снят, символ звёздочки (*) пропадет.

Для назначения загрузочного диска нужно также использовать опцию «a». Например назначим загрузочным диском xvda2

Заключение

Мы рассмотрели базовые возможности команды fdisk, необходимые для работы с разделами.Более подробную информацию, можно получить на работе man-страницы (man fdisk).

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl + Enter .

.

Команда Fdisk в Linux (Создание разделов диска)

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

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

В этой статье мы поговорим о команде fdisk.

fdisk — утилита командной строки на основе меню, позволяющая создать таблицу разделов на жестком диске и управлять ими

Помните, что fdisk следует использовать с особой осторожностью.Только root или пользователи с привилегиями sudo могут манипулировать таблицами разделов.

Список разделов

Чтобы отобразить таблицу разделов устройства, вызовите команду fdisk с параметром -l, а затем имя устройства. Например, чтобы вывести список таблиц разделов / dev / sda и разделов, которые вы запустите:

 fdisk -l / dev / sda 

Если в качестве устройства не указано в качестве устройства, fdisk напечатает таблицы разделов всех устройств, перечисленных в файле / proc / partitions:

 fdisk -l 
 Диск / dev / nvme0n1: 232.91 ГиБ, 250059350016 байт, 488397168 секторов
Модель диска: Samsung SSD 960 EVO 250GB
Единицы: секторы размером 1 * 512 = 512 байт
Размер сектора (логический / физический): 512 байт / 512 байт
Размер ввода-вывода (минимальный / оптимальный): 512 байт / 512 байт
Тип метки диска: gpt
Идентификатор диска: 6907D1B3-B3AB-7E43-AD20-0707A656A1B5

Устройство Начало Конечные сектора Размер Тип
/ dev / nvme0n1p1 2048 1050623 1048576 512M система EFI
/ dev / nvme0n1p2 1050624 34605055 33554432 16G Linux подкачки
/ dev / nvme0n1p3 34605056 488397134 453792079 216.Файловая система 4G Linux


Диск / dev / sda: 465,78 ГиБ, 500107862016 байт, 976773168 секторов
Модель диска: WDC WD5000AAKS-0
Единицы: секторы размером 1 * 512 = 512 байт
Размер сектора (логический / физический): 512 байт / 512 байт
Размер ввода-вывода (минимальный / оптимальный): 512 байт / 512 байт
Тип метки диска: dos
Идентификатор диска: 0x0001cca3

Загрузка устройства Начало конечных секторов Размер Id Тип
/ dev / sda1 2048 976771071 976769024 465,8 ГБ 83 Linux
 

Вывод выше показывает текущие таблицы разделов всех устройств, подключенных к вашей системе.Как правило, имена устройств SATA соответствуют шаблону / dev / sd [a-z], а имена устройств NVMe имеют следующий шаблон / dev / nvme [1-9] n [1-9].

Создание таблицы разделов

Чтобы начать разбиение диска, запустите fdiskс именем устройства. В этом примере мы будем работать над / dev / sdb:

 fdisk / dev / sdb 

Командная строка изменится, и откроется диалоговое окно fdisk, в котором вы можете ввести команду:

 Добро пожаловать в fdisk (util-linux 2.34).
Изменения останутся только в памяти, пока вы не решите их записать.
Будьте осторожны перед использованием команды записи.

Команда (m для справки):
 

Изменения, которые вы вносите в таблицу разделов, не вносите в силу, пока вы не вносите их с помощью wкоманды. Вы можете выйти из диалога, не сохранив изменения, используя команду q.

Чтобы получить список всех доступных команд, введите m:

 м 

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

fdisk поддерживает несколько схем разбиения. MBR и GPT являются двумя наиболее популярными стандартами разделов, которые хранят информацию о разделах на другом способе. GPT — это более новый стандарт, имеющий много преимуществ по сравнению с MBR. Основные моменты, которые следует учитывать при выборе разделения:

  • Используйте MBR для загрузки диска в устаревшем режиме BIOS.
  • Используйте GPT для загрузки диска в режиме UEFI.
  • Стандарт MBR поддерживает создание раздела на диске размером до 2 ТиБ. Если у вас диск объемом 2 ТиБ или больше, используйте GPT.
  • MBR имеет ограничение в 4 основных раздела. Если вам нужно больше разделов, один из основных разделов может быть установлен как расширенный раздел и содержать дополнительные логические разделы. С GPT вы можете иметь до 128 разделов. GPT не поддерживает расширенные или логические разделы.

В этом примере мы будем использовать таблицу разделов GPT.

Введите, gчтобы создать новую пустую таблицу разделов GPT:

 г 

Вывод будет выглядеть примерно так:

 Создана новая метка диска GPT (GUID: 4649EE36-3013-214E-961C-51A9187A7503).
 

Следующим шагом является создание новых разделов.

Мы создадим два раздела. Первый размер 100 ГиБ, второй займет оставшееся место на диске.

Запустите команду n для создания нового раздела:

 n 

Вам будет предложено достижение номер раздела. Нажмите «Enter», чтобы использовать значение по умолчанию (1):

 Номер раздела (1-128, по умолчанию 1):
 

Далее команда попросит вас указать первый сектор. Как правило, всегда рекомендуется использовать значения по умолчанию для первого значения. Нажмите «Enter», чтобы использовать значение по умолчанию (2048):

 Первый сектор (2048-500118158, по умолчанию 2048):
 

В последнем приглашении вам нужно будет выполнить сектор.Вы можете использовать абсолютное значение для последнего сектора или относительное значение для начального сектора, используя символ +, следующий за размером раздела. Размер может быть указан в кибибайтах (K), мебибайтах (M), гибибайтах (G), тебибайтах (T) или пебибайтах (P).

Введите + 100G, чтобы установить размер раздела 100 ГиБ:

 Последний сектор, +/- секторы или +/- размер {K, M, G, T, P} (2048-500118158, по умолчанию 500118158): + 100G
 
 Создан новый раздел 1 типа «Файловая система Linux» размером 100 ГиБ.

По умолчанию тип нового раздела установлен как «Файловая система Linux», что в большинстве случаев подходит. Если вы хотите изменить тип, нажмите l, чтобы изменить тип раздела, а затем нажмите t, чтобы изменить тип.

Давайте создадим второй раздел, который займет оставшееся место на диске:

 n 

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

 Номер раздела (2-128, по умолчанию 2):
Первый сектор (209717248-625142414, по умолчанию 209717248):
Последний сектор, +/- секторы или +/- размер {K, M, G, T, P} (209717248-625142414, по умолчанию 625142414):
 

Закончив создание разделов, используйте команду для отображения новой таблицы разделов:

 с. 
 Диск / dev / sdb: 298,9 ГиБ, 320072933376 байт, 625142448 секторов
Модель диска: nal USB 3.0
Единицы: секторы размером 1 * 512 = 512 байт
Размер сектора (логический / физический): 512 байт / 4096 байт
Размер ввода-вывода (минимальный / оптимальный): 4096 байт / 4096 байт
Тип метки диска: gpt
Идентификатор диска: F8365250-AF58-F74E-B592-D56E3A5DEED1

Устройство Начало Конечные сектора Размер Тип
/ dev / sdb1 2048 209717247 209715200 100 ГБ файловая система Linux
/ dev / sdb2 209717248 625142414 415425167 198.Файловая система Linux 1G
 

Если вы хотите удалить раздел, используйте команду d.

Сохраните изменения, выполнив команду w:

 с. 

Команда запишет таблицу на диск и выйдет из меню fdisk.

 Таблица разделов изменена.
Вызов ioctl () для повторного чтения таблицы разделов.
Синхронизация дисков.
 

Ядро прочитает таблицу разделов устройства без необходимости перезагрузки системы.

Активация разделов

Теперь, когда основы, следующим шагом является форматирование разделов и их монтирование в системное дерево каталогов.

Мы отформатируем оба раздела в ext4:

 судо mkfs.ext4 -F / dev / sdb1sudo mkfs.ext4 -F / dev / sdb2 
 mke2fs 1.45.5 (7 января 2020 г.)
Создание файловой системы с 51928145 блоками 4k и 12984320 инодами
UUID файловой системы: 63a3457e-c3a1-43f4-a0e6-01a7dbe7dfed
Резервные копии суперблоков, хранящиеся в блоках:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872

Размещение групповых таблиц: выполнено
Написание таблиц inode: сделано
Создание журнала (262144 блока): выполнено
Запись суперблоков и информации об учете файловой системы: выполнено
 

В этом примере будут монтироваться разделы каталогов / mnt / audio и / mnt / video.

Создайте точку монтирования с помощью команды mkdir:

 судо mkdir -p / mnt / audio / mnt / video 

Смонтируйте новый раздел:

 крепление sudo / dev / sdb1 / mnt / audio
sudo mount / dev / sdb2 / mnt / видео 

Разделы останутся подключенными, пока вы не размонтируете их или не выключите машину. Чтобы автоматически смонтировать раздел при запуске системы Linux, определите монтирование в файле / etc / fstab.

Все! Теперь вы можете использовать новые разделы для хранения ваших файлов.

Вывод

fdisk — это инструмент командной строки для создания схем разделов. Для получения дополнительной информации о команде fdisk введите man fdisk в свой терминал.

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl + Enter .

.

Изучаем структуру MBR и GPT / Хабр

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

Способов разбиения дисков на разделы на сегодняшний день существует два.Первый способ — использовать MBR. Этот способ применяется еще чуть ли не с помощью жестких дисков и работает с любыми операционными системами. Второй способ — использовать новую систему разметки — GPT. Этот способ поддерживается современными операционными системами, поскольку он еще относительно молод.

Структура MBR

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

MBR всегда находится в первом секторе жесткого диска. При загрузке компьютера, BIOS передает этот сектор с диска в память по адресу 0000: 7C00h и передает ему управление.

Итак, первая секция структуры MBR — это секция с исполняемым кодом, который будет руководить дальнейшей загрузкой.Размер этой секции может быть максимум 440 байт. Далее идут 4 байта, отведенные на указцию диска. В операционных системах, где используется исполняемый код. То же самое касается и 2 байт.

Начало со смещения 01BEh находится сама таблица разделов жесткого диска. Таблица состоит из 4 записей (по одной на каждый возможный раздел диска) размером 16 байт.

Структура записи для одного раздела:

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

Следующие три байта — это так называемые CHS-координаты первого сектора раздела.

По смещению 04h находится код типа раздела. Именно по этому типу можно определить что находится в данном разделе, какая файловая система на нем и т.п. Список зарезервированных типов разделов можно посмотреть, например, в википедии по ссылке Типы разделов.

После типа раздела идут 3 байта, определяющие ЧС-координаты последнего раздела сектора.

CHS-координаты сектора расшифровываются как сектор головки цилиндра и соответственно обозначают номер цилиндра (дорожки), номер головки (поверхности) и номер сектора. Цилиндры и головки нумеруются с нуля, сектор нумеруется с единицы. Таким образом CHS = 0/0/1 означает первый сектор на нулевом цилиндре на нулевой головке. Именно здесь находится сектор МБР.

Все разделы диска, за исключением первого, обычно начинаются с нулевой головки и первого сектора-либо цилиндра.То есть их адрес будет N / 0/1. Первый раздел диска начинается с головки 1, то есть по адресу 0/1/1. Это все из-за того, что на нулевой головке место уже занято сектором MBR. Таким образом, между сектором MBR и первым разделом всегда есть дополнитель неиспользуемые 62 сектора. Некоторые загрузчики ОС используют их для своих нужд.

Интересен формат хранения номера цилиндра и сектора в структуре записи раздела. Номер цилиндра и номер сектора делят между собой два байта, но не поровну, а как 10: 6.То есть на номер сектора приходится младшие 6 бит младшего байта, что позволяет задавать номера секторов от 1 до 63. А на номер цилиндра отведено 10 бит — 8 бит старшего байта и оставшиеся 2 бита от младшего байта. байте находятся старшие биты номера цилиндра.

Проблема с CHS-координатами состоит в том, что с помощью такой записи можно адресовать максимум 8 Гб диска. В эпоху DOS это было приемлемо, однако довольно скоро этого перестало хватать. Для решения этой проблемы была установлена ​​система адресации LBA (Logical Block Addressing), которая использовала плоскую 32-битную нумерацию секторов диска.Это позволяет адресовать диски размером до 2Тб. Позже разрядность LBA увеличили до 48 бит, однако MBR эти изменения не включули. В нем по-прежнему осталась 32-битная адресация секторов.

Итак, в настоящее время используется LBA-адрес для сектора на диске и в структуре записи раздела адрес его первого сектора прописывается по смещению 08h, размер раздела — по смещению 0Ch.

Для дисков размером до 8Гб (когда адрес по CHS еще возможна) поля структуры с CHS-координатами и LBA-адресами должны соответствовать друг другу по значению (корректно конвертироваться из одного формата в другой).У дисков размером более 8Гб значений всех трех байт CHS-координат должны быть равны FFh (для головки также значения FEh).

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

Расширенные разделы

Разделы, отмеченные в таблице типом 05h и 0Fh, это так называемые расширенные разделы. С их помощью можно создать больше разделов на диске, чем это позволяет MBR.На самом деле расширенных разделов несколько больше, например, есть разделы с типами C5h, 15h, 1Fh, 91h, 9Bh, 85h. В основном все эти типы разделов используются в различных операционных системах (например, OS / 2, DR-DOS, FreeDOS) с одной и той же целью — увеличить количество разделов на диске. Однако со временем изменились форматы отпали и остались только разделы с типами 05h и 0Fh. Единственное исключение — это тип 85h. До установления второй цепочки от других систем систем.Разделы с типом 05h используются для дисков менее 8Гб (где еще возможна адресация через CHS), а тип 0Fh используется для дисков больше 8Гб (и используется LBA-адресация).

В первом секторе расширенного раздела находится структура EBR (расширенная загрузочная запись). Она во многом схожа со структурой MBR, но имеет следующие отличия:

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

В структуре структуры EBR, также как и в MBR, должно находиться «магическое» значение AA55h.

В отличие от MBR, где позволяет создавать не более четырёх разделов, структура EBR позволяет организовать список логических разделов, ограниченный лишь размером раздела-контейнера (того самого, который с типом 05h или 0Fh). Для организации такого списка используется следующий формат записей: первая запись в таблице разделов EBR указывает на логический раздел, связанный с данными EBR, вторая запись указывает на следующий в списке раздел EBR.Если данный логический раздел является последним в списке, то вторая запись в таблице разделов должна быть заполнена нулями.

Формат записей разделов в EBR аналогичен формату записи в структуре MBR, однако логически немного отличается.

Признак активности раздела для разделов структуры EBR всегда будет 0, так как загрузка осуществлялась только с основных разделов диска. Координаты CHS, с которых используются, используются, если не задействованы LBA-адреса, также как и в структуре MBR.

А вот поля, где в режиме LBA-адресации должны находиться номер начального сектора и количество секторов раздела, в структуре EBR используются несколько иначе.

Для первой записи таблицы разделов EBR в поле начального сектора раздела (смещение 08h) записывается расстояние в секторе между текущим сектором EBR и началом логического раздела, на который ссылается запись. В поле количества сектораов раздела (смещение 0Ch) в этом случае пишется размер этого логического раздела в секторе.

Для второй записи таблицы разделов EBR в поле начального сектора записывается расстояние между сектором самой первой EBR и сектором следующего EBR в списке. В поле количества секторов раздела в этом случае пишется размер сектора сектора этой структуры ЕБР и до конца логического раздела, относящегося к этой структуре.

Таким образом, первая запись таблицы разделов как найти, и какой размер занимает текущий логический раздел, а вторая запись занимает как найти, и какой размер занимает следующий EBR в списке, вместе со своим разделом.

Структура GPT

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

В структуре GPT используется только LBA-адреса, никаких CHS больше нет и никаких проблем с конвертацией их тоже. Причем под LBA-адреса отведено по 64 бита, что позволяет работать с ними без всяких ухищрений, как с 64-битными целыми числами, а (если до этого дойдет) в будущем возможность без проблем расширить 48-битную LBA-адресацию до 64 -битной.

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

Рассмотрим теперь устройство структуры GPT подробнее. Вся структура GPT на жестком диске состоит из 6 частей:

LBA-адрес Размер (секторов) Назначение
LBA 0 1 Защитный MBR-сектор
LBA 1 1 Первичный GPT-заголовок
LBA 2 32 Таблица разделов диска
LBA 34 NN Содержимое разделов диска
LBA -34 32 Копия таблицы разделов диска
LBA -2 1 Копия GPT-заголовка

Защитный МБР-сектор

Первый сектор на диске (с адресом LBA 0) — это все тот же MBR-сектор.Онлен для совместимости со старым программным обеспечением и предназначением для защиты GPT-оставьте структуру от случайных повреждений при работе программ, которым про GPT ничего не известно. Для такой программной структуры разделов будет как выглядеть один раздел, занимающий все место на жестком диске.

Структура этого сектора ничем не отличается от обычного сектора MBR. В его таблице разделов дожна быть создана единственная запись с типом раздела 0xEE. Раздел должен начинаться с адреса LBA 1 и иметь размер 0xFFFFFFFF.В полях для CHS-адресов соответственно должен быть получен адрес 0/0/2 (сектор 1 занят под саму MBR) и иметь конечный CHS-адрес FF / FF / FF. Признак активного раздела должен иметь значение 0 (неактивный).

При работе компьютера с UEFI, данный MBR-сектор просто игнорируется и никакой код в нем также не выполняется.

Первичный GPT-заголовок

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

Структура GPT-заголовка:

Смещение (байт) Размер поля (байт) Пример заполнения Название и описание поля
0x00 8 байт 45 46 49 20 50 41 52 54 Сигнатура заголовка.Используется для идентификации всех EFI-совместимых GPT-заголовков. Должно содержать значение 45 46 49 20 50 41 52 54, что в виде текста расшифровывается как «EFI PART».
0x08 4 байта 00 00 01 00 Версия формата заголовка (не указана UEFI). Сейчас используется версия заголовка 1.0
0x0C 4 байта 5C 00 00 00 Размер заголовка GPT в байтах.Имеет значение 0x5C (92 байта)
0x10 4 байта 27 6D 9F C9 Контрольная сумма GPT-заголовка (по адресам от 0x00 до 0x5C). Алгоритм контрольной суммы — CRC32. При подсчёте контрольной суммы начальное значение этого поля принимается равным нулю.
0x14 4 байта 00 00 00 00 Зарезервировано. Должно иметь значение 0
0x18 8 байт 01 00 00 00 00 00 00 00 Адрес сектора, содержащего первичный GPT-заголовок.Всегда имеет значение LBA 1.
0x20 8 байт 37 C8 11 01 00 00 00 00 Адрес сектора, содержащего копию GPT-заголовка. Всегда имеет значение адреса последнего сектора на диске.
0x28 8 байт 22 00 00 00 00 00 00 00 00 Адрес сектора с которого начинаются разделы на диске. Иными словами — адрес первого раздела диска
0x30 8 байт 17 C8 11 01 00 00 00 00 Адрес последнего сектора диска, отведенного под разделами
0x38 16 байт 00 A2 DA 98 9F 79 C0 01 A1 F4 04 62 2F D5 EC 6D GUID диска.Содержит идентификатор, выданный диск и GPT-заголовок при разметке
0x48 8 байт 02 00 00 00 00 00 00 00 Адрес начала таблицы разделов
0x50 4 байта 80 00 00 00 Максимальное число разделов, которое может содержать таблицу
0x54 4 байта 80 00 00 00 Размер записи для раздела
0x58 4 байта 27 C3 F3 85 Контрольная сумма таблицы разделов.Алгоритм контрольной суммы — CRC32
0x5C 420 байт 0 Зарезервировано. Должно быть заполнено нулями

Система UEFI проверяет корректность GPT-заголовка, используя контрольную сумму, вычисляемые по алгоритму CRC32. Если первичный заголовок поврежден, то проверяется контрольная сумма копии заголовка. Если контрольная сумма копии заголовка правильная, то эта копия используется для восстановления информации в первичном заголовке.Восстановление также происходит и в обратную сторону — если первичный заголовок корректный, а копия неверна, то копия восстанавливается по данным из первичного заголовка. Если же обе копии заголовка повреждены, то становится диск недоступным для работы.

У таблицы разделов примерно своя контрольная сумма, которая записывается в заголовке по смещению 0x58. При изменении данных в таблице разделов, эта сумма обновляется заново в первичном заголовке и в его копии, а затем рассчитывается и обновляется контрольная сумма отдельно GPT-заголовков.

Таблица разделов диска

Следующей частью структуры GPT является собственно таблица разделов. В настоящее время операционные системы Windows и Linux используют общий формат таблицы разделов — максимум 128 разделов, на каждую запись раздела выделяется по 128 байт, соответственно вся таблица разделов займет 128 * 128 = 16384 байт, или 32 сектора диска.

Формат записи раздела:

Смещение (байт) Размер поля (байт) Пример заполнения Название и описание поля
0x00 16 байт 28 73 2A C1 1F F8 D2 11 BA 4B 00 A0 C9 3E C9 3B GUID типа раздела.В примере приведен тип раздела «Системный раздел EFI». Список всех типов можно посмотреть здесь
0x10 16 байт C0 94 77 FC 43 86 C0 01 92 E0 3C 77 2E 43 AC 40 Уникальный GUID раздела. Генерируется при создании раздела
0x20 8 байт 3F 00 00 00 00 00 00 00 Начальный LBA-адрес раздела
0x28 8 байт CC 2F 03 00 00 00 00 00 Последний LBA-адрес раздела
0x30 8 байт 00 00 00 00 00 00 00 00 Атрибуты раздела в виде битовой маски
0x38 72 байта Системный раздел EFI Название раздела.Юникод длиной 36 символов

Атрибуты раздела, записываемые по смещению 0x30 могут иметь следующие значения битов:

бит 0 Указывает необходимость для раздела функционирования системы. OEM-разработчики могут таким образом защитить свои разделы от перезаписи дисковыми утилитами
бит 60 Помечает раздел как доступный только для чтения. Используется только для «Microsoft Basic Data Partition» с типом {EBD0A0A2-B9E5-4433-87C0-68B6B72699C7}
бит 62 Помечает раздел как скрытый.Используется только для «Microsoft Basic Data Partition» с типом {EBD0A0A2-B9E5-4433-87C0-68B6B72699C7}
бит 63 Предотвращает автоматическое назначение буквы диска данному разделу. Используется только для «Microsoft Basic Data Partition» с типом {EBD0A0A2-B9E5-4433-87C0-68B6B72699C7}

С оставшимися частями разметки все понятно и без подробного описания. Содержимое разделов — говорит само за себя. Копия таблицы разделов — тоже понятно, хранит копию таблицы разделов.Ну и последний сектор диска — это копия GPT-заголовка. .

Разметка диска GPT или MBR Linux — Переходим на Линукс

Переходим на Линукс »Разметка диска GPT или MBR Linux

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

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

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

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

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

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

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

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

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

# перечислит тома на диске, подробно с точками монтирования и сообщения размером
df -h
# подробная информация о всех дисках
sudo fdisk -l
# о конкретном диске
sudo fdisk -l / dev / sda
# перечислит диски, тома и размер оных
cat / proc / разделы
# только диски
fdisk -l
# диски и размер
sudo sfdisk -s
 

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

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

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

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

судо fdisk / dev / sda
# создать новую таблицу разделов MBR
о
# создаём разделы
n: введите (по умолчанию p), введите (по умолчанию 1), введите, + 20G
n: ввод (по умолчанию p), ввод (по умолчанию 2), ввод, + 7G
# остаток 10% неразмечен для SSD или
#n: ввод (по умолчанию p), ввод (по умолчанию 2), ввод, ввод

# устанавливаем флаг загрузки (флаг загрузочного раздела) у корневого раздела.а: 1
# применить - записать изменения, q - выйти без изменений
ш
 

Дополнения и пояснения:
# — значок комментарий.
с — посмотреть разделы.
d — удалить раздел.
b — редактировать метки диска (редактировать bsd disklabel).

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

т: 1, 83 (или 20).
т: 2, 83.

# отформатировать (создать файловую систему)
sudo mkfs.ext4 -L 'mylabel1' / dev / sda1
sudo mkfs.ext4 -L 'mylabel2' / dev / sda5
 

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

sudo sfdisk -d / dev / sda | Судо sfdisk / dev / sdb
 

Диск с таблицей разделов 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 установлены драйверы аппаратных компонентов, к которым может быть загружена запущенная операционная система и в этом случае загрузка происходит прямо с этого раздела, что быстрее.)
  • Флаги загрузочного раздела не нужны.

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

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

UEFI имеет собственный загрузчик систем с интегрированными менеджерами их запуска.Для загрузчика должен быть создан UEFI-диск, который называется EFI System Partition, он же 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 Гб):

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

# перечислит тома на диске, подробно с точками монтирования и сообщения размером
df -h
# подробная информация о всех дисках
sudo fdisk -l
sudo gdisk -l / dev / sda
# разметка и флаги
sudo parted / dev / sda печать
 

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

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

sudo gdisk / dev / sda
# p - посмотреть разделы
# d - удалить раздел

# создаём новую таблицу GPT
о: у
# создаём разделы
n: ввод (по умолчанию 1), ввод, + 260M, ef00
n: введите (по умолчанию 2), введите, + 20G, введите (8300)
n: введите (по умолчанию 3), введите, + 7G, введите (8300)
# остаток 10% неразмечен для SSD или
#n: ввод (по умолчанию 3), ввод, ввод, ввод (8300)
# сохраняем
ш: у
# Проверям
sudo parted / dev / sda печать
 

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

# sgdisk [от куда] [ключ] [куда]
судо sgdisk / dev / sda -R / dev / sdb
 

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

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *