Parted — управление разметкой и разделами дисков в Linux

Parted – (сокращенно от PARTition EDitor) редактор дисковых разделов для Linux, предназначенный для управления разметкой, создания, удаления и изменения размеров разделов диска. Утилита проста в использовании и доступна для всех дистрибутивов Unix/Linux систем. Кроме того, доступна GUI версия — Gparted. В данной статье, мы покажем, как управлять разделами диска с помощью parted на примере CentOS 8 (в других дистрибутивах Linux все работает аналогично). В Windows аналогом команды parted является diskpart .

[conents h2]

Установка parted в Linux

Обновите набор по на сервере и установите пакет parted с помощью менеджера пакетов вашего дистрибутива Linux. Для CentOS 8 с менеджером пакетов dnf (который заменил yum ), можете установить parted из базового репозитория командой:

# dnf update -y
# dnf install parted -y

установка parted в linux

Или в Debian/Ubuntu:

# apt-get install parted

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

# parted –v

parted (GNU parted) 3.2

версия parted

Чтобы попасть в саму оболочку, введите:

# parted

GNU Parted 3.2_x000D_Using /dev/vdb_x000D_Welcome to GNU Parted! Type 'help' to view a list of commands.

Управление таблицей разделов в parted, разметка диска

Выведем список доступных дисков:

# print

или из shell:

$ sudo parted -l

parted unrecognized disk label

Доступен диск /dev/vdb размером 21 Гб, диску не присвоена метка (error /dev/vdb: unrecognized disk label), какая таблица разделов – не понятно.

Можно создать на диске разметку msdos (MBR)

# mklabel msdos

Или таблицу разделов gpt ( GUIE partition table поддерживает размер раздела более 2 Тб) :

# mklabel gpt

Обратите внимаени, что в parted в отличии от fdisk нет команды для записи изменений. Все изменения применяются немедленно.

Теперь parted показывает тип таблицы разделов (разметки) на диске:

(parted) print

Model: Virtio Block Device (virtblk)_x000D_Disk /dev/vdb: 21.0GB_x000D_ Sector size (logical/physical): 512B/512B_x000D_Partition Table: msdos_x000D_Disk Flags:_x000D_Number Start End Size Type File system Flags

Как вы видите, на диске уже есть таблица разделов MBR, но сами разделы еще не созданы.
Если у вас на сервере имеется несколько свободных дисков, то можно переключаться между ними с помощью команды:

# select /dev/имядиска

Создание нового раздела в parted

Для создания раздела в parted, используется утилита mkpart . При вводе команды в интерактивном режиме будут появляться вопросы о параметрах нового раздела:

parted список разделов на диске

  • Partition type — указываем тип раздела (primary / extended)
  • File system type — файловая система, по умолчанию предлагается ext2 (в дальнейшем мы ее изменим);
  • Start — начальный сектор раздела
  • End — конечный сектор раздела (в мегабайтах). В нашем примере мы указали 5000, это значит, что будет создан раздел размером 5Гб.

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

(parted) print free

Можно сразу создать раздел на весь диск:

# (parted) mkpart primary 0 0

или указать произвольный размер раздела так:

# (parted) mkpart primary 0 1GB

Также можно указывать размер диска в % и задать метку:

# (parted) mkpart "home part" ext4 2.5GiB 100%

Чтобы выйти из оболочки parted, выполните команду:

# quit

Отформатируем раздел в файловой системе ext4:

# mkfs.ext4 /dev/vdb1

mke2fs 1.44.6 (5-Mar-2019)_x000D_Creating filesystem with 1220352 4k blocks and 305216 inodes_x000D_Filesystem UUID: 5c9daa97-c0f4-44bc-9cfa-f466ebd8895e_x000D_Superblock backups stored on blocks:_x000D_32768, 98304, 163840, 229376, 294912, 819200, 884736_x000D_Allocating group tables: done_x000D_Writing inode tables: done_x000D_Creating journal (16384 blocks): done_x000D_Writing superblocks and filesystem accounting information: done

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

parted отформатировать раздел в файловой системе ext4

Можно создать раздел и отформатировать его, не входя в оболочку parted, например:

# parted -a opt /dev/vdb mkpart primary ext4 0% 100% && mkfs.ext4 /dev/vda1

Данной командой мы создадим раздел на диске vdb, под который отдадим всё пространство.

Таким образом вы можете упрощать себе работу или же добавлять подобные команды в какие-то скрипты или файлы кикстарта.

Как расширить или уменьшить размер раздела диска с помощью parted

Чтобы расширить или уменьшить размер раздела в partedиспользуется субкоманда resizepart Можно изменить размер раздела в интерактивном режиме. В оболочке parted введите команду:

# resizepart

Разделы с файловыми системами ext2/3/4 нужно отмонтировать перед изменением размера.

Система запросит номер раздела (берется из вывода команды print) и конечный размер раздела. В этом примере размер разделе будет увеличен с 5 до 10 Гб:

(parted) resizepart

Partition number? 1_x000D_End? [5000MB]? 10000

resizepart изменить размер раздела в linux

Сначала увеличьте размер раздела, а потом растяните файловую систему на нем. Если вы уменьшаете размер раздела – сначала нужно сжать размер файловой системы, и только после этого уменьшать размер раздела. Иначе потеряете данные.

Для уменьшения размер файловой системы используются следующие команды. Для файловых систем ext2/3/4 :

resize2fs /dev/sdab size

Для Btrfs:

btrfs filesystem resize /dev/sdab size

EnglishRussianUkrainian