Partitioning (Русский)

From ArchWiki
Revision as of 14:19, 24 October 2019 by SlavMetal (talk | contribs) (sync)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
Состояние перевода: На этой странице представлен перевод статьи Partitioning. Дата последней синхронизации: 24 октября 2019. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Tango-preferences-desktop-locale.pngЭта страница нуждается в сопроводителеTango-preferences-desktop-locale.png

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

В начале таблицы разделов GUID на диске есть наследственная главная загрузочная запись (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) — хороший и независимый от файловой системы способ обращения к разделам и дискам.
  • Предоставляет имя раздела (PARTLABEL), не зависящее от файловой системы.
  • Произвольное количество разделов — зависит от места, выделенного для таблицы разделов. Нет необходимости в расширенных и логических разделах. По умолчанию таблица GPT содержит пространство для определения 128 разделов. Однако, если вы хотите определить больше, вы можете выделить больше пространства для таблицы разделов (в настоящее время только gdisk поддерживают эту функцию).
  • Использует 64-разрядный LBA для хранения номеров секторов — максимальный размер адресации диска 2 ЗБ. MBR ограничивается адресацией только 2 ТБ на диск.
  • Хранит резервное оглавление и таблицу разделов в конце диска, что помогает восстановить их, если первичные повреждены.
  • Контрольные суммы CRC32 для обнаружения ошибок и повреждения таблицы заголовков и разделов.

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

Совет: Возможно преобразовывать MBR в GPT и обратно, см. gdisk#Convert between MBR and GPT.

Безраздельный диск

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

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

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

Разметка Btrfs

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

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

Для получения дополнительной информации смотрите fdisk (Русский)#Резервное копирование и восстановление таблицы разделов и gdisk#Backup and restore partition table.

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

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

Из-за того, что оглавление и таблица разделов GPT записаны в начале и в конце диска их можно восстановить с помощью друг и друга. Для получения дополнительной информации смотрите gdisk#Recover GPT header.

Другой вариант восстановления — использование утилиты TestDisk, которая поддерживает восстановление повреждённых разделов на MBR и GPT.

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

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

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

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

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

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

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

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

/

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

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

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

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

/boot

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

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

Reason: Если /boot находится внутри чего-то более сложного, чем просто файловая система в разделе (например, LUKS, RAID, LVM), загрузчику также необходимы драйвера соответствующих слоёв. (Discuss in Talk:EFI system partition#Preffered mount point for LVM users)
Примечание:

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

/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

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

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

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

Примеры схем

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). См. Device file#Block device names для получения более подробной информации.

Примечание: Загрузка UEFI не включает никаких флагов "загрузки", загрузка зависит только от загрузочных записей в NVRAM. Parted и его графические оболочки используют флаг "загрузки" в GPT, чтобы указать, что раздел является системным разделом EFI.

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

Точка монтирования в установленной системе Раздел Тип раздела (GUID) Атрибуты раздела Рекомендуемый размер
/boot или /efi /dev/sda1 C12A7328-F81F-11D2-BA4B-00A0C93EC93B:Системный раздел EFI 260 MiB
/ /dev/sda2 4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709: Linux x86-64 root (/) 23–32 GiB
[SWAP] /dev/sda3 0657FD6D-A4AB-43C4-84E5-0933C84B4F4F: Linux swap Более 512 MiB
/home /dev/sda4 933AC7E1-2EB4-4F13-B844-0E14E2AEF915: Linux /home Остаток

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

Точка монтирования в установленной системе Раздел Тип раздела Флаг загрузки Рекомендуемый размер
/ /dev/sda1 83: Linux Да 23–32 GiB
[SWAP] /dev/sda2 82: Linux swap Нет Более 512 MiB
/home /dev/sda3 83: Linux Нет Остаток

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

Точка монтирования Раздел Тип раздела (GUID) Атрибуты раздела Рекомендуемый размер
Нет /dev/sda1 21686148-6449-6E6F-744E-656564454649: раздел загрузки BIOS1 1 MiB
/ /dev/sda2 4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709: Linux x86-64 root (/) 2: Legacy BIOS bootable 23–32 GiB
[SWAP] /dev/sda3 0657FD6D-A4AB-43C4-84E5-0933C84B4F4F: Linux swap Более 512 MiB
/home /dev/sda4 933AC7E1-2EB4-4F13-B844-0E14E2AEF915: Linux /home Остаток
  1. Раздел загрузки 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://www.kde.org/applications/system/kdepartitionmanager/ || partitionmanager

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

fdisk, gdisk и parted автоматически обрабатывают выравнивание размера разделов. Смотрите Parted#Check alignment, если вы хотите проверить выравнивание после разметки.

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

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

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

Загрузка BIOS с GPT

Tango-preferences-desktop-locale.pngЭта статья или раздел нуждается в переводеTango-preferences-desktop-locale.png

Примечания: Необходим перевод данной секции. (обсуждение: Talk:Partitioning (Русский)#)

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

Reason: Who cares if the specification prohibits it, there is no reason to overcomplicate things, just mark the 0xEE partition as bootable. Both fdisk and parted can do it. (Discuss in Talk:Partitioning (Русский)#)

Some old BIOSes (from before year 2010) attempt to parse the boot sector and refuse to boot it if it does not contain a bootable MBR partition. This is a problem if one wants to use GPT on this disk, because, from the BIOS viewpoint, it contains only one, non-bootable, MBR partition of type ee (i.e., the protective MBR partition). One can mark the protective MBR entry as bootable using fdisk -t mbr /dev/sda, and it will work on some BIOSes. However, the UEFI specification prohibits the protective MBR partition entry from being bootable, and UEFI-based boards do care about this, even in the legacy boot mode. So, this matters if one wants to create a GPT-based USB flash drive that is supposed to boot both on modern UEFI-based boards and also on old BIOSes that insist on finding a bootable MBR partition. It is not possible to solve this problem using traditional tools such as fdisk or gdisk, but it is possible to create a fake MBR partition entry suitable for both kinds of BIOSes manually as a sequence of bytes.

The command below will overwrite the second MBR partition slot and add a bootable partition there of type 0 (i.e. unused), covering only the first sector of the device. It will not interfere with the GPT or with the first MBR partition entry which normally contains a protective MBR partition.

# 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

The end result will look like this:

# fdisk -t mbr -l /dev/sda
Disk /dev/sda: 232.9 GiB, 250059350016 bytes, 488397168 sectors
Disk model: ST3250820AS     
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: 0x00000000

Device     Boot Start       End   Sectors   Size Id Type
/dev/sda1           1 488397167 488397167 232.9G ee GPT
/dev/sda2  *        0         0         1   512B  0 Empty

Partition table entries are not in disk order.

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