Утилита разметки parted
Parted — это утилита разметки диска, поддерживающая стили разметки MBR и GPT.
Утилита поставляется в одноименном пакете 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
Создает новую пустую таблицу разделов заданного стиля. Доступные стили разметки: gpt и msdos (MBR).
sudo parted <устройство> mklabel <стиль разметки>
sudo parted /dev/sda mklabel 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 /dev/sda 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 /dev/sda 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
Выбирает устройство для изменений. Применимо в интерактивном режиме в случае, если устройств несколько.
(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