Partitioning (Русский) - ArchWiki

Jump to content
Toggle the table of contents

# Partitioning (Русский)

6 languages

- Deutsch
- English
- 日本語
- Português
- Türkçe
- 中文（简体）

From ArchWiki
Состояние перевода: На этой странице представлен перевод статьи Partitioning. Дата последней синхронизации: 17 февраля 2024. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Ссылки по теме

- Файловые системы
- fdisk (Русский)
- GPT fdisk (Русский)
- Parted (Русский)
- fstab (Русский)
- LVM (Русский)
- Раздел подкачки
- Процесс загрузки Arch
- UEFI (Русский)

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

Создать или изменить таблицу разделов можно с помощью одного из многих инструментов разметки. Инструменты, доступные в Arch Linux, перечислены в разделе #Инструменты разметки.

Разделы обычно содержат в себе файловую систему, что достигается путём создания файловой системы на разделе (то есть форматированием). Помимо файловой системы, разделы могут содержать LVM, зашифрованные данные или RAID, которые в конечном итоге предоставляют файлы устройств, на которых может быть размещена файловая система (или устройства могут быть и дальше вложены друг в друга).

Любое блочное устройство (например, диск, раздел, устройство LUKS, логический том LVM или RAID-массив), которое непосредственно содержит монтируемую файловую систему, называется том.

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

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

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

Совет: Чтобы вывести информацию из таблицы разделов определённого устройства, выполните `parted /dev/sdX print` или `fdisk -l /dev/sdX`, где `/dev/sdX` — имя блочного устройства.

### Главная загрузочная запись (MBR)

Главная загрузочная запись (Master Boot Record, MBR) — это первые 512 байт запоминающего устройства. В них находятся загрузчик операционной системы и таблица разделов устройства хранения. Главная загрузочная запись играет важную роль в процессе загрузки Arch в системах с BIOS. Для получения информации о структуре смотрите Wikipedia:ru:Главная загрузочная запись#Структура MBR.

Примечание:

- Главная загрузочная запись (MBR) находится не в разделе; она расположена в первом секторе устройства (физическое смещение 0) перед первым разделом.
- Загрузочный сектор, находящийся на неразмеченном устройстве или в отдельном разделе, вместо этого называется volume boot record (VBR).)

#### Главная загрузочная запись (MBR) (загрузочный код)

Первые 440 байт MBR — это область загрузочного кода. В системах с BIOS она обычно содержит первый этап загрузчика. Загрузочный код можно сохранить в резервную копию, восстановить из неё или удалить с помощью dd.

#### Главная загрузочная запись (MBR) (таблица разделов)

В таблице разделов MBR (она же таблица разделов DOS или MS-DOS) есть 3 типа разделов:

- Первичный
- Расширенный
  - Логический

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

Расширенные разделы можно рассматривать как контейнеры для логических разделов. На диске может быть только один такой раздел. Расширенный раздел считается первичным, поэтому, если на диске имеется расширенный раздел, то дополнительных первичных разделов может быть только три (то есть три первичных раздела и один расширенный). Количество логических разделов, находящихся в расширенном разделе, неограниченно. Для системы с несколькими ОС, одна из которых Windows, необходимо, чтобы Windows находилась в первичном разделе.

Обычная схема нумерации заключается в именовании первичных разделов от sda1 до sda3, за которыми следует расширенный раздел sda4. Логические разделы, находящиеся в расширенном разделе sda4, нумеруются как sda5, sda6 и так далее.

Совет: При разметке диска MBR оставьте неразмеченными как минимум 33 сектора по 512 байт (16,5 КиБ) в конце диска на случай, если вам понадобится преобразовать MBR в GPT. Это место потребуется для резервного заголовка GPT.

### Таблица разделов GUID

Таблица разделов GUID (GUID Partition Table, GPT) — таблица разделов, которая является частью спецификации Unified Extensible Firmware Interface; в ней используются глобально-уникальные идентификаторы, GUID (или UUID в мире Linux), для определения разделов и их типов. Она призвана заменить MBR и разработана с учётом недостатков последней.

В начале таблицы разделов GUID на диске есть наследственная главная загрузочная запись (защитная MBR, PMBR) для защиты от ПО, не поддерживающего GPT. Наследственная MBR, как и обычная MBR, имеет область загрузочного кода, которую можно использовать для загрузки на системах BIOS/GPT с загрузчиками, которые поддерживают такую загрузку.

### Выбор между GPT и MBR

Таблица разделов GUID (GPT) — альтернативный, современный способ разметки; он предназначен для замены старого MBR. У GPT есть несколько преимуществ по сравнению с MBR, которая имеет проблемы, произрастающие из времён MS-DOS. Благодаря недавним изменениям в инструментах форматирования можно одинаково легко получить хорошую надёжность и производительность для GPT и MBR.

Примечание: Чтобы GRUB мог загрузиться с GPT-диска на BIOS-системе, необходим раздел загрузки BIOS.

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

- Для двойной загрузки с Windows (как 32-разрядной, так и 64-разрядной) с использованием Legacy BIOS требуется таблица MBR.
- Для двойной загрузки с 64-разрядной Windows, которая запускается в режиме UEFI вместо BIOS, требуется таблица GPT.
- Если вы устанавливаете на устаревшее оборудование, особенно на старые ноутбуки, подумайте о выборе MBR, потому что их BIOS может не поддерживать GPT (но смотрите ниже для получения информации об исправлении данной проблемы).
- Если вы размечаете диск больше 2 ТиБ (≈2,2 ТБ), вам нужно использовать GPT.
- Для загрузки в режиме UEFI лучше всегда использовать GPT, так как некоторые реализации UEFI не поддерживают загрузку с MBR.
- Если ни один из вышеперечисленных пунктов вас не касается, вы можете свободно выбирать между GPT и MBR. Лучше выбрать GPT, поскольку он более современный.

Некоторые преимущества таблицы GPT над MBR:

- Предоставляет уникальный GUID диска и уникальный GUID для каждого раздела (PARTUUID) — хороший и независимый от файловой системы способ обращения к разделам и дискам. GUID нужны для Discoverable Partitions Specification, который может использоваться в initramfs с включенным systemd.
- Предоставляет имя раздела (PARTLABEL), не зависящее от файловой системы.
- Произвольное количество разделов — зависит от места, выделенного для таблицы разделов. Нет необходимости в расширенных и логических разделах. По умолчанию таблица GPT содержит пространство для определения 128 разделов, но если вам нужно больше, то вы можете выделить больше пространства для таблицы разделов (в настоящее время только gdisk поддерживают эту функцию).
- Использует 64-разрядный LBA для хранения номеров секторов — максимальный размер адресации диска 2 ЗиБ. MBR ограничивается адресацией только 2 ТиБ на диск. [1]
- Хранит резервный заголовок и таблицу разделов в конце диска, что помогает восстановить их, если основной заголовок повреждён.
- Контрольные суммы CRC32 для обнаружения ошибок и повреждения таблицы заголовков и разделов.

В разделе #Инструменты разметки содержится таблица, показывающая, какие инструменты доступны для создания и изменения таблиц GPT и MBR.

Совет: Возможно преобразовывать MBR в GPT и обратно, смотрите GPT fdisk (Русский)#Преобразование между MBR и GPT.

### Неразмеченный диск

Неразмеченный (безраздельный, partitionless) диск, также известный как superfloppy, — устройство хранения, не имеющее таблицы разделов. Вместо неё он содержит одну файловую систему, занимающую всё запоминающее устройство. Загрузочный сектор, находящийся на неразмеченном диске, называется volume boot record (VBR).

#### Разметка Btrfs

Файловая система Btrfs может занимать всё устройство хранения данных и заменять собой таблицы разметки MBR или GPT, позволяя использовать подтома вместо разделов. Для получения дополнительной информации смотрите статью Btrfs (Русский)#Диск Btrfs без разделов.

## Схема разметки

Не существует строгих правил разметки диска, хотя можно следовать общим рекомендациям, приведённым ниже. Схема разметки определяется различными требованиями, такими как требуемая гибкость, скорость, безопасность, а также ограничениями, налагаемыми доступным дисковым пространством. Это, по сути, личное предпочтение. Если вы хотите сделать двойную загрузку Arch Linux и Windows, смотрите Двойная загрузка: Windows и Arch.

Примечание:

- Для систем с UEFI обычно нужен системный раздел EFI.
- Для систем с BIOS, размеченных с GPT, требуется раздел загрузки BIOS, если в качестве загрузчика используется GRUB.

Совет: При использовании Btrfs подтома можно рассматривать как разделы. Для получения дополнительной информации смотрите раздел Btrfs (Русский)#Монтирование подтомов.

### Один корневой раздел

Эта схема — самая простая и гибкая, и её достаточно для большинства случаев использования с учётом постоянно увеличивающихся объёмов памяти в потребительских накопителях. По необходимости на этом разделе можно создать или изменить файл подкачки. Обычно имеет смысл начать с использования одного раздела `/`, а затем создавать другие для частных случаев, таких как RAID, шифрование, общий раздел мультимедиа и т.д. Некоторые примеры описаны в разделе #Отдельные разделы.

23–32 ГиБ — рекомендуемый минимум для такого корневого раздела. Для пользовательских файлов и файла подкачки может понадобиться больше места.

Важно: Чтобы загрузчик мог прочитать файлы ядра и initramfs из каталога `/boot` на корневом разделе, он должен поддерживать всё необходимое для доступа к этому разделу, начиная от блочного устройства и стековых блочных устройств (LVM, RAID, dm-crypt, LUKS и т. п.) и заканчивая файловой системой раздела. Если выбранный вами загрузчик не может получить доступ к корневому разделу, то для каталога `/boot` необходимо создать отдельный раздел, который загрузчик сможет прочитать.

Для GPT рекомендуется выбрать тип раздела `4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709` («Linux root (x86-64)», «Linux x86-64 root (/)»), а для MBR — `83`.

### Отдельные разделы

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

Ниже приведены некоторые примеры схем, которые можно использовать при разметке, а в следующих подразделах подробно описаны некоторые из каталогов, которые могут быть размещены отдельно, а затем смонтированы в точках монтирования внутри `/`. Для получения полного описания содержимого этих каталогов смотрите file-hierarchy(7).

#### /

Корневой каталог — вершина иерархии, точка, в которой монтируется основная файловая система и внутри которой подключаются все другие файловые системы. Все файлы и каталоги отображаются в корневом каталоге `/`, даже если они хранятся на разных физических устройствах. Корневая файловая система должна содержать в себе файлы, необходимые для загрузки, отката, исправления и/или восстановления системы, без подключения дополнительных разделов. Поэтому некоторые каталоги из `/` нельзя располагать на отдельных разделах.

Раздел `/` или корневой раздел необходим, и он наиболее важен. Другие разделы необязательны.

Важно: Каталоги, необходимые для загрузки (кроме `/boot`), должны находиться в том же разделе, что и `/`, или смонтированы в раннем пользовательском пространстве initramfs. Основные каталоги: `/etc` и `/usr` [2].

`/` традиционно содержит каталог `/usr`, который может значительно увеличиться в зависимости от того, сколько ПО установлено. Для большинства пользователей с современными накопителями должно быть достаточно 15–20 ГиБ. Если вы планируете создать здесь файл подкачки и не планируете создавать отдельный раздел для /var, вам может потребоваться больший размер раздела (то есть прибавьте сюда объём оперативной памяти, чтобы мог работать спящий режим, и примерно 8–12 ГиБ для `/var`).

Для GPT рекомендуется выбрать тип раздела `4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709` («Linux root (x86-64)», «Linux x86-64 root (/)»), а для MBR — `83`.

#### /boot

Каталог `/boot` содержит образы vmlinuz и initramfs, а также настройки загрузчика. В нём также хранятся данные, которые используются до того, как ядро начнёт выполнение программ пользовательского пространства. `/boot` не требуется для нормальной работы системы, а необходим только во время загрузки и обновления ядра (при создании образа initramfs).

Важно:

- Используемый вами загрузчик должен быть способен получить доступ к разделу `/boot`. Это означает, что он должен поддерживать всё необходимое для доступа к этому разделу, начиная от блочного устройства и стековых блочных устройств (LVM, RAID, dm-crypt, LUKS и т. п.) и заканчивая файловой системой раздела.
- В файловых системах могут появляться новые возможности, ещё не поддерживаемые загрузчиками (примеры: archlinux/packaging/packages/grub#7, FS#79857, FS#59047, FS#58137, FS#51879, FS#46856, FS#38750, FS#21733 и зашифрованные каталоги fscrypt), что сделает их непригодными для раздела `/boot`, если несовместимые функции не отключены. Чтобы подобных проблем не возникало, обычно используют FAT32, которая поддерживается практически везде и в которой новые возможности не появляются.

Информацию о требованиях и возможностях загрузчиков можно посмотреть в статье Процесс загрузки Arch#Загрузчик.

Примечание: На системах с UEFI в качестве раздела `/boot` можно использовать системный раздел EFI, что позволяет не создавать ещё один раздел. Подробнее в разделе Системный раздел EFI#Монтирование раздела.

Если в качестве раздела `/boot` используется системный раздел EFI, то к нему применяются требования, описанные в статье Системный раздел EFI — в частности, не забудьте выбрать правильный тип раздела.

В противном случае рекомендуется использовать тип раздела Extended Boot Loader (XBOOTLDR) Partition — `BC13C2FF-59E6-4262-A352-B275FD6F7172` для GPT (`ea00` для gdisk) или `ea` для MBR.

В обоих случаях рекомендуется сделать раздел размером 1 ГиБ, чтобы в нём было достаточно места для размещения нескольких ядер. Если всё равно есть сомнения, то 4 ГиБ должно хватить всем.

#### /home

Каталог `/home` содержит пользовательские файлы настроек, кеш, данные приложений и медиафайлы.

Поместив `/home` в отдельный раздел, вы можете менять разметку `/` независимо, но обратите внимание, что вы можете переустановить Arch, не затрагивая `/home`, даже если он не помещён в отдельный раздел: можно просто удалить все остальные каталоги верхнего уровня, а затем запустить pacstrap как обычно для установки.

Не следует использовать один и тот же домашний каталог в разных дистрибутивах, потому что они используют несовместимые версии программного обеспечения и исправления. Вместо этого рассмотрите возможность создания раздела мультимедиа или, по крайней мере, использования разных домашних каталогов в том же разделе `/home`. Размер этого раздела может быть любым в зависимости от того, как много данных вы планируете в нём хранить.

Для GPT рекомендуется выбрать тип раздела `933AC7E1-2EB4-4F13-B844-0E14E2AEF915` («Linux home», «Linux /home»), а для MBR — `83`.

#### Подкачка

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

С тех пор как память компьютеров стала измеряться гибибайтами, исторически сложившееся правило «размер подкачки в два раза больше ОЗУ» устарело. Разумным размером по умолчанию является 4 ГиБ.

Для использования спящего режима (гибернации, suspend-to-disk) рекомендуется создать раздел подкачки равный размеру ОЗУ. Хотя ядро и будет пытаться сжать образ сохранённого состояния, чтобы он соответствовал размеру раздела подкачки, нет никакой гарантии, что это удастся, если размер раздела подкачки значительно меньше размера оперативной памяти. Для получения дополнительной информации смотрите раздел Ждущий и спящий режимы#Гибернация.

Для GPT рекомендуется выбрать тип раздела `0657FD6D-A4AB-43C4-84E5-0933C84B4F4F` («Linux swap»), а для MBR — `82` («Linux swap»).

#### /data

Можно создать раздел «данных» для различных файлов, которые будут общими для всех пользователей. Использование раздела `/home` для этой цели также прекрасное решение. Размер этого раздела может быть любым.

Для GPT рекомендуется выбрать тип раздела `0FC63DAF-8483-4772-8E79-3D69D8477DE4` («Linux filesystem»), а для MBR — `83`.

#### /var

В каталоге `/var` хранятся меняющиеся данные, такие как каталоги и файлы spool, данные администрирования и журналы, кеш pacman и т. д. Он используется, например, для кэширования и ведения журнала и, следовательно, часто читается или записывается. Его размещение в отдельном разделе позволяет избежать нехватки дискового пространства из-за «flunky-логов» и т. д.

Он существует, чтобы была возможность смонтировать `/usr` доступным только для чтения. Всё, что исторически располагалось в `/usr` и записывалось во время работы системы (в отличие от установки и обслуживания программного обеспечения), должно находиться в `/var`.

Примечание:

- `/var` содержит много маленьких файлов. Выбор типа файловой системы должен учитывать этот факт, если используется отдельный раздел.
- Поскольку `/var` часто читается или записывается, расположение раздела на жёстком диске может влиять на производительность.

`/var` будет содержать, помимо прочего, кеш pacman. Сохранение этих пакетов полезно в случае, если обновление пакета вызывает нестабильность, требуя отката на более старый, архивированный пакет. Кеш pacman будет увеличиваться по мере расширения и обновления системы, но его можно безопасно очистить, если места будет не хватать.

8–12 ГиБ на настольной системе должно быть достаточно для `/var`, в зависимости от того, сколько программного обеспечения будет установлено. Пользователям NVIDIA, Wayland и GDM также рекомендуется добавить к размеру столько, чтобы поместилось содержимое видеопамяти.

Для GPT рекомендуется выбрать тип раздела `4D21B016-B534-45C2-A9FB-5C16E091FD2D` («Linux variable data», «Linux /var»), а для MBR — `83`.

### Примеры схем

Примеры ниже используют диск `/dev/sda` и первый раздел `/dev/sda1` в качестве примера. Схема наименований блочных устройств будет отличаться при использовании NVMe-диска (например, `/dev/nvme0n1` с разделами, которые начинаются с `/dev/nvme0n1p1`), SD-карты или eMMC-диска (например, `/dev/mmcblk0` с разделами, которые начинаются с `/dev/mmcblk0p1`). Смотрите Файл устройства#Блочные устройства для получения более подробной информации.

Примечание:

- Загрузка UEFI не использует никаких «флагов загрузки», загрузка зависит только от загрузочных записей в NVRAM. Parted и его графические оболочки используют флаг «boot» в GPT, чтобы указать, что раздел является системным разделом EFI.
- Необязательно располагать все необходимые/желаемые разделы на одном диске или использовать один и тот же тип таблицы разделов для всех дисков.

#### Примеры схем UEFI/GPT

Точка монтирования в установленной системе | Раздел | Тип раздела (GUID) | Рекомендуемый размер
--- | --- | --- | ---
`/boot` или `/efi`1 | `/dev/sda1` | `C12A7328-F81F-11D2-BA4B-00A0C93EC93B`: Системный раздел EFI | 1 ГиБ
`[SWAP]` | `/dev/sda2` | `0657FD6D-A4AB-43C4-84E5-0933C84B4F4F`: Linux swap | Не менее 4 ГиБ или размер ОЗУ для гибернации
`/` | `/dev/sda3` | `4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709`: Linux x86-64 root (/) | Остаток, минимум 23–32 ГиБ

#### Примеры схем BIOS/MBR

Точка монтирования в установленной системе | Раздел | Тип раздела | Флаг загрузки | Рекомендуемый размер
--- | --- | --- | --- | ---
`[SWAP]` | `/dev/sda1` | `82`: Linux swap | Нет | Не менее 4 ГиБ или размер ОЗУ для гибернации
`/` | `/dev/sda2` | `83`: Linux | Да | Остаток, минимум 23–32 ГиБ
н/д | Неразмеченное место2 | н/д | н/д | Хотя бы 16,5 КиБ в конце диска

#### Примеры схем BIOS/GPT

Точка монтирования в установленной системе | Раздел | Тип раздела (GUID) | Рекомендуемый размер
--- | --- | --- | ---
Нет | `/dev/sda1` | `21686148-6449-6E6F-744E-656564454649`: раздел загрузки BIOS3 | 1 МиБ
`[SWAP]` | `/dev/sda2` | `0657FD6D-A4AB-43C4-84E5-0933C84B4F4F`: Linux swap | Не менее 4 ГиБ или размер ОЗУ для гибернации
`/` | `/dev/sda3` | `4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709`: Linux x86-64 root (/) | Остаток, минимум 23–32 ГиБ

1. ESP можно примонтировать в `/efi`, если используемый загрузчик способен получить доступ к файловой системе (и всему, что над ней), на которой расположены образы ядра и initramfs. Подробности смотрите в статьях Системный раздел EFI#Типичные точки монтирования и Процесс загрузки Arch#Загрузчик.
2. Неразмеченное пространство размером хотя бы 33 сектора по 512 байт (16,5 КиБ) в конце диска пригодится на случай, если вам понадобится преобразовать MBR в GPT. Рекомендация по сохранению неразмеченного пространства относится ко всем дискам с MBR-разметкой.
3. Раздел загрузки BIOS требуется только при использовании GRUB для загрузки BIOS с диска GPT, для других загрузчиков он не нужен. Раздел не имеет ничего общего с `/boot`, и его нельзя форматировать в файловую систему или монтировать.

## Инструменты

### Инструменты разметки

Следующие программы используются для создания и/или управления таблицами разделов и разделами устройств. Инструкции по использованию этих программ имеются в соответствующих статьях.

Эта таблица поможет вам выбрать утилиту для ваших нужд:

Название | Пакет | MBR | GPT | CLI | TUI | Для скриптов
--- | --- | --- | --- | --- | --- | ---
fdisk | util-linux | Да | Да | fdisk(8) | cfdisk(8) | sfdisk(8)
GPT fdisk | gptfdisk | Нет | Да | gdisk(8) | cgdisk(8) | sgdisk(8)
Parted | parted | Да | Да | parted(8) | Нет | parted(8)

#### Графические интерфейсы

- blivet-gui — Графический инструмент для настройки хранилища. В качестве бэкенда использует parted через python-blivetAUR и libblockdev.

  https://github.com/storaged-project/blivet-gui || blivet-guiAUR

- GNOME Disks — Утилита управления дисками GNOME. В качестве бэкенда использует parted через udisks2 и libblockdev. Входит в состав gnome.

  https://wiki.gnome.org/Apps/Disks || gnome-disk-utility

- GParted — Редактор разделов на основе GTK и с графическим управлением разделами диска. С его помощью можно изменять размеры, копировать и перемещать разделы без потери данных. В качестве бэкенда использует parted.

  https://gparted.org/ || gparted

- KDE Partition Manager — Утилита KDE для управления дисковыми устройствами, разделами и файловыми системами. В качестве бэкенда использует sgdisk через kpmcore. Входит в состав kde-system.

  https://apps.kde.org/partitionmanager/ || partitionmanager

### Резервное копирование

- fdisk может создавать резервную копию таблицы разделов. Смотрите fdisk (Русский)#Резервное копирование и восстановление таблицы разделов.
- GPT fdisk может создать бинарную резервную копию, состоящую из защитного MBR, основного заголовка GPT, резервного заголовка GPT и одной копии таблицы разделов. Смотрите GPT fdisk (Русский)#Резервное копирование и восстановление таблицы разделов.

### Восстановление

- gpart — Инструмент, который пытается угадать содержимое повреждённой таблицы разделов MBR. Для получения инструкций смотрите gpart(8).

  https://github.com/baruch/gpart || gpart

- GPT fdisk — Инструмент разметки, который может восстановить основной заголовок GPT (расположенный в начале диска) из резервного заголовка GPT (расположенного в конце диска) или наоборот.

  https://www.rodsbooks.com/gdisk/ || gptfdisk

- TestDisk — Инструмент, поддерживающий восстановление потерянных разделов как MBR, так и GPT.

  https://www.cgsecurity.org/index.html?testdisk.html || testdisk

## Выравнивание разделов

Рекомендуется выравнивать расположение и размеры разделов по мебибайтам; смотрите Advanced Format (Русский)#Выравнивание разделов.

Важно: Невыровненные разделы помешают использовать размер сектора 4096 байт с dm-crypt/LUKS.

## Поддержка GPT ядром

Параметр `CONFIG_EFI_PARTITION` в конфигурации ядра включает поддержку GPT в ядре (несмотря на название «EFI PARTITION», он не имеет отношения к системному разделу EFI). Она должна быть встроена в ядро, а не скомпилирована как загружаемый модуль. Этот параметр нужен даже в случае использования GPT-дисков только для хранения данных, а не для загрузки. Он включён по умолчанию во всех официально поддерживаемых ядрах Arch. При самостоятельной компиляции ядра включите этот параметр, сделав `CONFIG_EFI_PARTITION=y`.

## Решение проблем

### Обман старого BIOS для загрузки с GPT

Некоторые старые BIOS (до 2010 года) пытаются читать загрузочный сектор и отказываются загружать его, если он не содержит загрузочного MBR-раздела. Это проблема, если вы хотите использовать GPT на этом диске, поскольку с точки зрения BIOS он содержит только один незагружаемый раздел MBR типа `ee` (то есть защитный MBR). Можно пометить защитный MBR-раздел как загрузочный с помощью команды `fdisk -t mbr /dev/sda`, и это будет работать в некоторых BIOS. Однако спецификация UEFI запрещает отмечать защитный раздел MBR как загрузочный, и UEFI-платы проверяют это даже в режиме legacy boot. Таким образом, это имеет значение, если вы хотите создать USB-накопитель на базе GPT, который должен загружаться как на современных платах на базе UEFI, так и на старых BIOS, которые пытаются найти загрузочный раздел MBR. Невозможно решить эту проблему с помощью традиционных инструментов, таких как fdisk или gdisk, но можно создать фальшивую запись раздела MBR, подходящую для обоих типов BIOS, вручную в виде последовательности байтов.

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

    # printf '\200\0\0\0\0\0\0\0\0\0\0\0\001\0\0\0' | dd of=/dev/sda bs=1 seek=462

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

    # fdisk -t mbr -l /dev/sda

    Диск /dev/sda: 232,89 GiB, 250059350016 байт, 488397168 секторов
    Disk model: ST3250820AS
    Единицы: секторов по 1 * 512 = 512 байт
    Размер сектора (логический/физический): 512 байт / 512 байт
    Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
    Тип метки диска: dos
    Идентификатор диска: 0x00000000

    Устр-во    Загрузочный начало     Конец   Секторы Размер Идентификатор Тип
    /dev/sda1                   1 488397167 488397167 232,9G            ee GPT
    /dev/sda2  *                0         0         1   512B             0 Пустой

    Элементы таблицы разделов упорядочены не так, как на диске.

### Диски не видны, когда включен встроенный RAID

Если диск SATA или NVMe виден в настройках прошивки, но не виден в Linux (например, в `fdisk -l` его нет), возможно, контроллер находится в режиме RAID.

Для NVMe журнал должен показывать что-то вроде:

    kernel: ahci 0000:00:17.0: Found 1 remapped NVMe devices.
    kernel: ahci 0000:00:17.0: Switch your BIOS from RAID to AHCI mode to use them.

Решение заключается в том, чтобы войти в настройки прошивки и в них отключить NVMe RAID и изменить режим работы контроллера SATA с RAID на AHCI. Имейте в виду, что настройка может иметь другое название (например, «Intel Rapid Storage Technology», «Intel RST», «Intel VMD controller» или «VMD»), а также может быть индивидуальной для каждого контроллера или для каждого порта.

Важно: При двойной загрузке с Windows перед изменением режима контроллера нужно провести подготовительные работы. Смотрите How to Enable AHCI in Windows 8 and Windows 10 after Installation.
Примечание: Некоторые прошивки не имеют специальных настроек режима NVMe RAID и, несмотря на бессмысленность терминов, используют настройки режима работы контроллера SATA и для контроллера NVMe. Такие прошивки просто интерпретируют режим работы SATA, установленный на «AHCI» на контроллерах NVMe, как «использование собственного режима работы без встроенного RAID». [3][4][5]

## Смотрите также

- Раздел диска
- Двоичные приставки
- Понимание терминологии дисковой подсистемы (англ.)
- Что такое MBR (англ.)
- Статьи Рода Смита "Что такое GPT?" (англ.) и загрузка ОС из GPT (англ.)
- Используйте большие диски на максимум с GPT и Linux — IBM Developer Works (англ.)
- FAQ Windows и GPT (англ.)
- Выравнивание разделов (англ.) (с примерами)

Categories:

- File systems (Русский)
- Boot process (Русский)
- System recovery (Русский)