Перейти к основному содержимому
Утилита разметки parted

Утилита разметки parted

Parted — это утилита разметки диска, поддерживающая стили разметки MBR и GPT.

Утилита поставляется в одноименном пакете parted.

Синтаксис parted

Утилита parted работает только от имени суперпользователя.

Если нужно совершить разовую операцию, синтаксис parted выглядит следующим образом.

Синтаксис parted
$ sudo parted [опция <аргумент>] <устройство> [команда <аргумент>]

$ sudo parted [опция] # для неинтерактивных опций
  • Опции задают режим работы команд или показывают справочную информацию.
  • Устройство — это жесткий диск, с которым утилита будет работать.
  • Команда — это действие, которое нужно выполнить над жестким диском или разделом.

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

Для длительных сессий работы с утилитой можно сначала вызвать ее:

Начало работы
$ sudo parted

GNU Parted 3.5
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.

(parted) #ожидается ввод устройства и команды

После вызова утилиты к ней можно сразу обращаться командами:

Интерактивный режим
(parted) устройство [опции][команда <аргумент>]

Опции parted

Неинтерактивные опции

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

Синтаксис
$ sudo parted [опция]
  • --help (-h) — вывести справку об утилите;

  • --version (-v) — вывод версии утилиты;

  • --list (-l) — вывести список разделов на всех блочных устройствах.

Примеры

Посмотреть версию утилиты

$ sudo parted -v

parted (GNU parted) 3.5
Copyright (C) 2022 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by <http://git.debian.org/?p=parted/parted.git;a=blob_plain;f=AUTHORS>.

Вызов справки

$ sudo parted -h

Usage: parted [OPTION]... [DEVICE [COMMAND [PARAMETERS]...]...]
Apply COMMANDs with PARAMETERS to DEVICE. If no COMMAND(s) are given, run in
interactive mode.
...

Посмотреть существующую таблицу разделов

$ sudo parted -l

Model: ATA QEMU HARDDISK (scsi)
Disk /dev/sda: 34.4GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number Start End Size Type File system Flags
1 1049kB 33.3GB 33.3GB primary ext4 boot
2 33.3GB 34.4GB 1022MB extended
3 33.3GB 33.3GB 512B primary
4 33.3GB 33.3GB 512B primary
5 33.3GB 34.4GB 1022MB logical linux-swap(v1) swap

Опции для ----list

Следующие опции работают только совместно с опцией --list (-l) и изменяют формат отображения списка разделов.

  • --machine (-m) — отобразить вывод в машиночитаемом формате;

  • --json (-j) — отобразить вывод в формате JSON.

Примеры

Отобразить список разделов в машиночитаемом формате

$ sudo parted -l -m

BYT;
/dev/sda:34.4GB:scsi:512:512:msdos:ATA QEMU HARDDISK:;
1:1049kB:33.3GB:33.3GB:ext4::boot;
2:33.3GB:34.4GB:1022MB:::;
3:33.3GB:33.3GB:512B:::;
4:33.3GB:33.3GB:512B:::;
5:33.3GB:34.4GB:1022MB:linux-swap(v1)::swap;

Отобразить список разделов в формате json

$ sudo parted -l -j

{
"disk": {
"path": "/dev/sda",
"size": "34.4GB",
"model": "ATA QEMU HARDDISK",
"transport": "scsi",
"logical-sector-size": 512,
"physical-sector-size": 512,
"label": "msdos",
"max-partitions": 4,
"partitions": [
{
"number": 1,
"start": "1049kB",
"end": "33.3GB",
"size": "33.3GB",
"type": "primary",
"filesystem": "ext4",
"flags": [
"boot"
]
},{
"number": 2,
...

Опции скриптового режима

  • --script (-s) — запустить в скриптовом режиме без вопросов к пользователю.

  • --fix (-f) — отвечать «fix» на исключения при использовании -s.

Опция --fix может быть полезна:

  • для заголовков GPT, не включающих полный размер диска;
  • для перемещения резервной таблицы GPT в конец диска;
  • для исправления MAC отсутствующей записи карты разделов.

Опция выравнивания разделов

--align (-a) — установка выравнивания разделов.

Эта опция используется при создании новых разделов с командой mkpart.

Синтаксис опции
--align <тип выравнивания>

Доступные аргументы для типов выравнивания:

  • none — без выравнивания;
  • minimal — минимальное выравнивание, позволяет избежать снижения производительности для раздела с физическими блоками;
  • optimal — оптимальное выравнивание, гарантирует оптимальную производительность.
Пример создания раздела с минимальным выравниванием
$ sudo parted -a minimal /dev/sda mkpart primary ext4 1024 1536

Команды parted

Создание, удаление, восстановление

mklabelсоздать пустую таблицу разделов
mkpartсоздать раздел
align-checkпроверить выравнивание раздела
rmудалить раздел
rescueвосстановить удаленный раздел

Синтаксис и примеры

mklabel

Создает новую пустую таблицу разделов заданного стиля. Доступные стили разметки: gpt и msdos (MBR).

Синтаксис
$ sudo parted <устройство> mklabel <стиль разметки>
Пример
$ sudo /dev/sda parted gpt
mkpart

Создает новый раздел.

Синтаксис
$ sudo parted <устройство> mkpart <тип раздела или имя> <файловая система> <начало> <конец>        

Тип раздела доступен только для стиля разметки MBR:

  • primary — первичный;
  • logical — логический.

Имя требуется только для разметки GPT.

Файловая система опциональна. Можно создать раздел без указания файловой системы, чтобы в будущем настроить его под LVM (parted не поддерживает настройку LVM).

Доступные файловые системы:

  • btrfs,
  • ext2,
  • ext3,
  • ext4,
  • fat16,
  • fat32,
  • jfs,
  • linux-swap,
  • xfs.

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

Примеры
# Cоздать логический раздел с файловой системой ext2 в начале диска и размером в 400 МБ (в MBR-разметке)

$ sudo parted /dev/sda mkpart logical ext2 0 400

# Cоздать раздел photos с файловой системой ext4 в конце диска и размером в 1 000 МБ (в GPT-разметке)

$ sudo parted /dev/sda mkpart photos ext4 1000 -0
align-check

Выполняет проверку выравнивания раздела на соответствие одному из типов выравнивания: minimal или optimal.

Синтаксис
$ sudo parted <устройство> align-check <тип выравнивания> <номер раздела>
Примеры
# Проверить, что раздел 1 выровнен оптимально:

$ sudo parted /dev/sda align-check optimal 1

# Вывод, если выровнен:

1 aligned

# Вывод, если не выровнен:

1 not aligned
rm

Удаляет раздел, соответствующий указанному номеру.

Синтаксис
$ sudo parted <устройство> rm <номер раздела>
Пример
$ sudo parted /dev/sda rm 2
rescue

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

Синтаксис
$ sudo parted /dev/sda rescue <начало> <конец>
Пример
# Пример восстановления раздела между 1 000 и 2 684 МБ от начала диска

$ sudo parted rescue 1000 2684

# Пример вывода с согласием восстановить раздел

Information: A ext4 primary partition was found at 1000MB -> 2300MB.
Do you want to add it to the partition table?
Yes/No/Cancel? y

# Просмотр результата – раздел 2 восстановлен

$ sudo parted print

Model: ATA Samsung SSD 850 (scsi)
Disk /dev/sda: 2684MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number Start End Size Type File system Flags
1 1049kB 1000MB 999MB primary boot, lba
2 1000MB 2300MB 1299MB primary ext4 lba

Изменение разделов

selectвыбрать устройство для изменений
nameзадать имя раздела (только GPT)
resizepartизменить размер раздела
disk_setвключить или выключить флаг pmbr_boot для раздела
disk_toggleпереключить флаг pmbr_boot для раздела
setвключить или выключить указанный флаг для раздела
toggleпереключить указанный флаг для раздела

Синтаксис и примеры

select

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

Синтаксис
(parted) select <устройство>

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

Пример
# Выбрать диск /dev/sda для изменений

(parted) select /dev/sda

Using /dev/sda

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

(parted) mkpart logical
File system type? [ext2]?
Start?
...
name

Задает имя для раздела с указанным номером. Имя можно заключить в кавычки. Доступно только для таблиц GPT.

Синтаксис
$ sudo parted <устройство> name <номер раздела> <"имя">
Пример
$ sudo parted /dev/sda name 1 "Cute cats"
resizepart

Изменяет размер раздела за счет изменения конечной границы раздела. Например, раздел 2 расположен в начале диска (0 МБ) и занимает 512 MБ. Чтобы увеличить раздел на 1 024 МБ, нужно ввести команду из примера ниже.

Синтаксис
$ sudo parted <устройство> resizepart <номер раздела> <конец>
Пример
$ sudo parted /dev/sda resizepart 2 1536

Размер файловой системы, созданной в разделе, при использовании resizepart не изменится. Для того, чтобы изменить размер ФС, необходимо воспользоваться отдельными утилитами.

При уменьшении раздела необходимо сначала уменьшить размер файловой системы.

disk_set

Устанавливает флаг pmbr_boot в состояние:

  • on — включен;
  • off — выключен.

Этот флаг предназначен для стиля разметки GPT: он включает флаг загрузки на защитном разделе MBR в разметке GPT.

Синтаксис
$ sudo parted <устройство> disk_set <флаг> <состояние>
Пример
$ sudo parted /dev/sda disk_set pmbr_boot on
disk_toggle

Переключает флаг pmbr_boot между состояниями on и off (о флаге — см. команду выше).

Синтаксис
$ sudo parted <устройство> disk_toggle <флаг>
Пример
$ sudo parted /dev/sda disk_toggle pmbr_boot
set

Устанавливает флаг для раздела. Состояние может быть on (включен) или off (выключен).

Синтаксис
$ sudo parted <устройство> set <номер раздела> <флаг> <состояние>

Доступные флаги:

  • bios_grub — сделать выбранную партицию разделом GRUB BIOS (GPT);
  • legacy_boot — указать специализированному ПО, что раздел может быть згрузочным (GPT);
  • bls_boot — отметить как раздел /boot, совместимый со спецификацией загрузчика Linux (MBR, GPT);
  • boot — сделать раздел загрузочным (MBR);
  • msftres — идентифицировать как раздел Microsoft Reserved, который используется Windows (MBR, GPT);
  • irst — идентифицировать как Intel Rapid Start Technology (MBR, GPT);
  • esp — идентифицировать как системный раздел UEFI (MBR, GPT);
  • chromeos_kernel — отметить, что раздел можно использовать с загрузчиком Chrome OS (GPT);
  • lba — использовать линейный режим (MBR);
  • root — отметить как корневое устройство, используемое Linux (Mac?);
  • linux-home — отметить как раздел Linux/home (GPT);
  • swap — отметить как область подкачки (MBR, GPT);
  • raid — сообщить Linux, что раздел является программным RAID-массивом (MBR);
  • lvm — сообщить Linux, что раздел является физическим томом (MBR);
  • palo — использовать раздел загрузчиком Linux/PA-RISC, palo.
Пример
$ sudo parted /dev/sda set 1 boot on
toggle

Переключает флаг для раздела между состояниями on (включен) и off (выключен).

Синтаксис
$ sudo parted <устройство> toggle <номер раздел> <флаг>
Пример
$ sudo parted /dev/sda toggle 3 esp

Справка, информация, выход

helpвызвать справку по утилите или конкретной команде
printпосмотрть информацию о таблице разделов устройства
unitустановить единицы измерения для вводимых и выводимых данных
quitзавершить работу с утилитой

Синтаксис и примеры

help

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

Синтаксис
$ sudo parted help

# или в интерактивном режиме:

(parted) help <команда>
Пример
# Вывести общую справку по утилите

$ sudo parted help

# Вывести справку по команде disk_toggle

(parted) help disk_toggle
print

Отображает таблицу разделов на редактируемом устройстве или подробную информацию о конкретном разделе.

Синтаксис
$ sudo parted print <тип вывода>

Типы вывода опциональны:

  • devices — все активные блочные устройства;
  • free — свободное место на текущем устройстве;
  • list, all — таблицы разделов всех активных блочных устройств.
Пример
# Посмотреть свободное пространство диска

$ sudo parted /dev/sda print free

Model: ATA QEMU HARDDISK (scsi)
Disk /dev/sda: 34.4GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number Start End Size Type File system Flags
1024B 1049kB 1048kB Free Space
1 1049kB 33.3GB 33.3GB primary ext4 boot
3 33.3GB 33.3GB 512B primary
4 33.3GB 33.3GB 512B primary
33.3GB 33.3GB 1047kB Free Space
2 33.3GB 34.4GB 1022MB extended
5 33.3GB 34.4GB 1022MB logical linux-swap(v1) swap
34.4GB 34.4GB 1049kB Free Space

# Посмотреть список устройств

$ sudo parted /dev/sda print devices
/dev/sda (34.4GB)

# Посмотреть все разделы устройств

$ sudo parted /dev/sda print list

Model: ATA QEMU HARDDISK (scsi)
Disk /dev/sda: 34.4GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number Start End Size Type File system Flags
1 1049kB 33.3GB 33.3GB primary ext4 boot
2 33.3GB 34.4GB 1022MB extended
3 33.3GB 33.3GB 512B primary
4 33.3GB 33.3GB 512B primary
5 33.3GB 34.4GB 1022MB logical linux-swap(v1) swap
unit

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

Эта команда предназначена для интерактивного режима.

Синтаксис
(parted) unit <единица измерения>

Доступные единицы измерения:

  • s — сектор (несколько байтов в зависимости от размера сектора, как правило 512);
  • B — байт;
  • KiB — кибибайт (210 байт);
  • MiB — мебибайт (220 байт);
  • GiB — гибибайт (230 байт);
  • TiB — тебибайт (240 байт);
  • kB — килобайт (тысяча байт);
  • MB — мегабайт (миллион байт);
  • GB — гигабайт (миллиард байт);
  • TB — терабайт (триллион байт);
  • % — процент пространства устройства (от 0 до 100);
  • cyl — цилиндры (только для BIOS CHS геометрии);
  • chs — система адресации сектора (только для BIOS CHS геометрии);
  • compact — специальный аргумент, чтобы для входных данных по умолчанию использовались мегабайты, а для выходных данных выбиралась единица, обеспечивающая наиболее компактное и понятное отображение.
Пример
# Установить байты в качестве единиц измерения

(parted) unit B

# Проверка результата

(parted) print

Model: ATA QEMU HARDDISK (scsi)
Disk /dev/sda: 34359738368B
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number Start End Size Type File system Flags
1 1048576B 33335279615B 33334231040B primary ext4 boot
3 33335279616B 33335280127B 512B primary
4 33335280128B 33335280639B 512B primary
2 33336327168B 34358689791B 1022362624B extended
5 33336328192B 34358689791B 1022361600B logical linux-swap(v1) swap
quit

В интерактивном режиме завершает режим работы с утилитой. Ядро Linux узнает об изменениях только после выхода из программы. Изменения, вызванные вводом команд, вносятся на диск сразу после ввода команды, если кэш операционной системы и аппаратный кэш не задержат их.

Синтаксис
(parted) quit

# или

(parted) q