Partitioning (Русский)

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

При разметке память жесткого диска разбивается на разделы, с которыми можно работать независимо. Их может быть несколько или только один. Количество зависит от вас, например, если вы хотите установить на диск несколько ОС, логически разделить данные или нужен раздел подкачки, то необходимо иметь несколько разделов.

Информация о размещении разделов на жёстком диске хранится в таблице разделов, такой как MBR или GPT.

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

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

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

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

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

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

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

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

Главная загрузочная запись (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 (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 ТиБ, вам нужно использовать 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.

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

Tango-view-fullscreen.pngThis article or section needs expansion.Tango-view-fullscreen.png

Reason: Необходимо объяснить когда стоит и не стоит использовать данное решение, а также почему. (Discuss in Talk:Partitioning (Русский))

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

Разметка Btrfs

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

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

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

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

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

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

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

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

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

/

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

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

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

/ традиционно содержит каталог /usr, который может значительно увеличиться в зависимости от того, сколько ПО установлено. Для большинства пользователей с современными жесткими дисками должно быть достаточно 15-20 ГиБ. Если вы планируете создать здесь файл подкачки, вам может потребоваться больший размер раздела.

/boot

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

Примечание:

Рекомендуемый размер для /boot составляет 200 МиБ, если в качестве /boot не используется системный раздел EFI, иначе лучше выделить не менее 300 МиБ.

Важно: Файловые системы могут получить новые возможности, ещё не поддерживаемые загрузчиками, что сделает их непригодными для раздела /boot, если несовместимые функции не отключены.

/home

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

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

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

/var

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

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

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

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

/data

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

Swap

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

Исторически сложившееся правило гласит, что размер раздела подкачки должен быть в два раза больше ОЗУ. Но это правило устарело, поскольку у современных компьютеров оперативная память стала намного больше. Например, на средних настольных компьютерах с оперативной памятью до 512 МиБ достаточно правила вдвое большего раздела, но если объём оперативной памяти более 1024 МиБ, раздел подкачки можно уменьшить.

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

Примеры схем

Tango-view-fullscreen.pngThis article or section needs expansion.Tango-view-fullscreen.png

Reason: Необходимо улучшить текущие примеры. (Discuss in Talk:Partitioning#Table draft 2)

Примеры ниже используют диск /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 или /efi1 /dev/sda1 C12A7328-F81F-11D2-BA4B-00A0C93EC93B:Системный раздел EFI Хотя бы 300 МиБ
[SWAP] /dev/sda2 0657FD6D-A4AB-43C4-84E5-0933C84B4F4F: Linux swap Более 512 MиБ
/ /dev/sda3 4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709: Linux x86-64 root (/) Остаток

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

Точка монтирования в установленной системе Раздел Тип раздела Флаг загрузки Рекомендуемый размер
[SWAP] /dev/sda1 82: Linux swap Нет Более 512 МиБ
/ /dev/sda2 83: Linux Да Остаток
н/д Неразмеченное место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 Более 512 МиБ
/ /dev/sda3 4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709: Linux x86-64 root (/) Остаток
  1. ESP можно примонтировать в /efi, если используемый загрузчик способен получить доступ к файловой системе (и всему, что над ней), на которой расположены образы ядра и initramfs. Подробности смотрите в статьях Системный раздел EFI#Типичные точки монтирования и Процесс загрузки Arch#Загрузчик.
  2. Неразмеченное пространство размером хотя бы 33 512-байтовых сектора (16,5 КиБ) в конце диска пригодится на случай, если вам понадобится преобразовать MBR в GPT. Рекомендация по сохранению неразмеченного пространства относится ко всем дискам с MBR-разметкой.
  3. Раздел загрузки BIOS требуется только при использовании GRUB для загрузки BIOS с диска GPT. Раздел не имеет ничего общего с /boot, и его нельзя форматировать в файловую систему или монтировать.

Инструменты

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

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

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

MBR GPT
Интерактивные (диалоговые) fdisk
parted
fdisk
gdisk
parted
Псевдо-графические cfdisk cfdisk
cgdisk
Неинтерактивные sfdisk
parted
sfdisk
sgdisk
parted
Графические GParted
gnome-disk-utility
partitionmanager
GParted
gnome-disk-utility
partitionmanager
Важно: Для разбиения устройств хранения используйте инструменты, совместимые с выбранным форматом таблицы разделов. Несовместимые инструменты могут привести к уничтожению таблицы вместе с существующими разделами и данными.

fdisk

fdisk и связанные с ней утилиты описаны в статье fdisk.

  • fdisk (util-linux)
    • fdisk(8) – утилита с интерактивным интерфейсом для создания и обработки таблиц разделов.
    • cfdisk(8) – вариант fdisk на основе библиотеки Curses.
    • sfdisk(8) – скриптовый вариант fdisk.

GPT fdisk

gdisk и связанные с ней утилиты описаны в статье gdisk.

GNU Parted

Эта группа инструментов описана в статье Parted.

  • GNU Parted — Консольный инструмент разметки.
https://www.gnu.org/software/parted/parted.html || parted
  • GNOME Disks — Утилита управления дисками GNOME.
https://wiki.gnome.org/Apps/Disks || gnome-disk-utility
  • GParted — Редактор разделов на основе GTK и с графическим управлением разделами диска.
https://gparted.sourceforge.io/ || gparted
  • KDE Partition Manager — Утилита KDE для управления дисковыми устройствами, разделами и файловыми системами.
https://kde.org/applications/system/org.kde.partitionmanager || partitionmanager

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

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

  • 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

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

fdisk, gdisk и parted автоматически обрабатывают выравнивание размера разделов. Смотрите Parted (Русский)#Проверка выравнивания, если вы хотите проверить выравнивание после разметки.

Для определенных дисков расширенный формат может обеспечить более эффективное выравнивание.

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

Параметр CONFIG_EFI_PARTITION в конфигурации ядра включает поддержку GPT в ядре (несмотря на название "EFI PARTITION"). Он должен быть встроен в ядро, а не скомпилирован как загружаемый модуль. Этот параметр нужен даже в случае использования 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.

Решение заключается в том, чтобы войти в настройки прошивки и изменить режим работы контроллера SATA с RAID на AHCI. Имейте в виду, что настройка может иметь другое название, а также может быть индивидуальной для каждого контроллера или для каждого порта.

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

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