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

Jump to content
From ArchWiki

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

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

- Файловые системы
- GPT fdisk (Русский)
- Parted (Русский)
- Разметка диска

fdisk из пакета util-linux - интерактивная консольная утилита, которая может создать таблицу разделов и разделы на жестком диске и управлять ими. В таблице разделов описано разбиение жесткого диска на разделы.

Эта статья объясняет fdisk(8) и связанную с ней утилиту sfdisk(8).

Совет: Для базовых функций разметки можно использовать cfdisk(8) с текстовым пользовательским интерфейсом.

## Установка

fdisk и связанные с ним утилиты входят в состав пакета util-linux, который является частью мета-пакета base.

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

Чтобы просмотреть таблицы разделов и разделы на блочном устройстве, вы можете запустить fdisk, указав устройство (например: `/dev/sda`), `/dev/nvme0n1`, `/dev/mmcblk0`, и т.д.):

    # fdisk -l /dev/sda

Примечание: Если устройство не указано, fdisk покажет все разделы из `/proc/partitions`.

## Резервное копирование и восстановление таблицы разделов

Вы можете захотеть сделать резервное копирование таблицы разделов и схемы разделов диска перед их изменениями. Вы также можете использовать резервное копирование для копирования одинаковых разметок разделов на другие диски.

Вы можете использовать sfdisk для таблиц разделов GPT и MBR, чтобы сохранить разметку разделов вашего устройства в файл с параметром `-d`/`--dump`. Выполните следующую команду для устройства `/dev/sda`:

    # sfdisk -d /dev/sda > sda.dump

Файл должен выглядеть примерно так для одного раздела ext4 размером 1 ГиБ:

    sda.dump

    label: gpt
    label-id: AAAAAAAA-BBBB-CCCC-DDDD-EEEEEEEEEEEE
    device: /dev/sda
    unit: sectors
    first-lba: 34
    last-lba: 1048576

    /dev/sda1 : start=2048, size=1048576, type=0FC63DAF-8483-4772-8E79-3D69D8477DE4, uuid=BBF1CD36-9262-463E-A4FB-81E32C12BDE7

Чтобы позже восстановить эту разметку, вы можете выполнить:

    # sfdisk /dev/sda < sda.dump

## Создание таблицы разделов и самих разделов

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

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

В недавних версиях fdisk отказались от устаревшей системы использования цилиндров в качестве стандартной единицы измерения, как и от совместимости с MS-DOS по умолчанию. fdisk автоматически выполняет выравнивание по 2048 512-байтовым секторам (1 МиБ), что должно быть совместимо со всеми расширенными форматами HDD и подавляющим большинством SSD. Это означает, что с настройками по умолчанию вы получите правильное выравнивание.

Чтобы использовать fdisk, запустите программу с именем блочного устройства, которое вы хотите изменить. В этом примере используется `/dev/sda`:

    # fdisk /dev/sda

Это откроет интерактивный режим fdisk, где вы можете вводить команды.

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

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

Чтобы создать новую таблицу разделов и удалить всю текущую информацию о разделах, введите `o` для таблицы разделов MBR или `g` для таблицы разделов GUID (GPT). Пропустите эти шаги, если необходимая таблица уже была создана.

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

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

Примечание: Рекомендации по размеру и расположению разделов можно почитать в статье Разметка дисков#Схема разметки.

#### Тип раздела

При исплоьзовании MBR fdisk спросит тип раздела. Введите `p` для создания первичного раздела или `e` для создания расширенного. Может быть до четырёх основных разделов.

fidsk не спрашивает ID типа раздела и по умолчанию использует 'Linux filesystem'; вы сможете изменить его позже.

#### Номер раздела

Номер раздела — это номер, присвоенный разделу, например, раздел с номером `1` на диске `/dev/sda` будет `/dev/sda1`. Номера разделов могут не совпадать с реальным порядком разделов на диске, в этом случае их можно отсортировать.

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

#### Первый и последний сектор

Первый сектор должен быть указан в абсолютном выражении с использованием номеров секторов. Последний сектор может быть задан с использованием абсолютного положения в секторах или в виде позиций, измеряемых в кибибайтах (`K`), мебибайтах (`M`), гибибайтах (`G`), тебибайтах (`T`) или пебибайтах (`P`).

Позиция последнего сектора может быть задана в:

- в абсолютном выражении от начала диска. Например, `40M` в качестве первого сектора указывает позицию 40 МиБ от начала диска.
- в относительном выражении, предваряя размер символами `+размер` или `-размер`. Например, `+2G` указывает на позицию через 2 ГиБ после начального сектора, а `-200M` указывает на позицию 200 МиБ перед последним доступным сектором.

Нажатие `Enter` без ввода значения использует значение по умолчанию, которое является началом самого большого доступного блока для первого сектора и концом того же блока для последнего сектора.

Совет:

- При разметке всегда рекомендуется использовать значения по умолчанию для первого и последнего секторов раздела. Кроме того, стоит указывать относительные размеры разделов с помощью нотации `+размер{M,G,T,P}` и не использовать разделы меньше 1 МиБ. Такие разделы всегда будут выровнены в соответствии со свойствами устройства.
- На диске MBR оставьте неразмеченными как минимум 33 512-байтовых сектора (16,5 КиБ) в конце диска на случай, если вам понадобится преобразовать MBR в GPT.
- Системный раздел EFI требует тип `EFI System`.
- GRUB требует раздел загрузки BIOS с типом `BIOS boot` при установке GRUB на диск с разметкой GPT.
- Рекомендуется использовать `Linux swap` для любого раздела подкачки, так как systemd будет автоматически монтировать его.

Повторяйте эту процедуру, пока не получите желаемые разделы.

### Изменение типа раздела

У каждого раздела есть определённый тип. MBR использует partition ID; GPT использует GUID типов разделов.

Нажмите `t`, чтобы изменить идентификатор типа раздела. Используемое по умолчанию значение `Linux filesystem` должно быть подходящим для большинства случаев.

Совет:

- Введите `L` для просмотра списка внутренних кодов fdisk.
- При использовании GPT рекомендуется следовать Discoverable Partitions Specification, поскольку systemd-gpt-auto-generator(8) будет монтировать их автоматически.

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

Вы можете отметить раздел как загрузочный, введя `a`.

### Запись изменений на диск

Для записи новой таблицы на диск и выхода используйте команду `w`.

## Перемещение разделов

Важно: Разделы нельзя использовать в процессе их перемещения. Поскольку перемещение требует перезаписи всего раздела на диске, это медленная и потенциально опасная операция. Настоятельно рекомендуется создавать резервные копии! Согласно man-странице sfdisk, «эта операция рискованна и не является атомарной».

Чтобы переместить раздел, необходимо иметь свободное пространство в том месте, куда будет перемещён раздел. При необходимости можно освободить место, уменьшив разделы и файловые системы на них. Смотрите Parted (Русский)#Сжатие разделов. Чтобы переместить раздел:

    # echo '+секторы,' | sfdisk --move-data устройство -N номер

Где `секторы` — количество секторов для перемещения раздела (`+` означает перемещение вперёд), `устройство` — устройство, на котором находится раздел, а `номер` — номер раздела. Обратите внимание, что если вы добавляете новый раздел в середине или в начале диска, вам, скорее всего, потребуется изменить нумерацию разделов. Смотрите #Сортировка разделов или режим "extra functionality" в fdisk.

## Советы и рекомендации

### Сортировка разделов

В ситуации, когда, например, новый раздел создаётся между двумя существующими или раздел удаляется, нумерация разделов может перестать соответствовать их реальному расположению на диске, и для исправления можно выполнить сортировку. В этом примере используется `/dev/sda`.

    # sfdisk -r /dev/sda

Если вы не используете постоянные имена для блочных устройств, то вам может понадобиться обновить файлы конфигурации, в которых используется нумерация разделов, в частности `/etc/fstab` и/или `/etc/crypttab`.

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

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

- Managing partitions in Linux with fdisk

Categories:

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