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

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

 

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

 

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

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

 

# dnf update -y
# dnf install parted -y

Или в Debian/Ubuntu:

# apt-get install parted

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

# parted –v

parted (GNU parted) 3.2

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

# parted

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

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

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

# print

или из shell:

$ sudo parted -l

Доступен диск /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)
Disk /dev/vdb: 21.0GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags

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

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

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

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

  • 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)
Creating filesystem with 1220352 4k blocks and 305216 inodes
Filesystem UUID: 5c9daa97-c0f4-44bc-9cfa-f466ebd8895e
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736
Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done

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

Можно создать раздел и отформатировать его, не входя в оболочку 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
End? [5000MB]? 10000

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

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

resize2fs /dev/sdab size

Для Btrfs:

btrfs filesystem resize /dev/sdab size

Изменять флаг раздела в parted тоже возможно, вы можете установить один из нужных вам:

  • boot
  • root
  • swap
  • hidden
  • raid
  • lvm
  • lba
  • legacy_boot
  • irst
  • esp
  • palo

Например сделаем раздел загрузочным:

# set 1 boot on

Удаление раздела с помощью parted

Если вам требуется удалить раздел на диске, вы можете использовать команду rm в оболочке parted:

# rm 1

Эта команду удалит раздел с номером 1:

(parted) print

Model: Virtio Block Device (virtblk)
Disk /dev/vdb: 21.0GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

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

Восстановление случайно удаленных разделов с помощью rescue

Удаленный раздел можно восстановить с помощью утилиты rescue, которая доступа в оболочке parted:

# rescue

Команда запросит начальный и конечный размер разделе. Если на этих позициях есть инфа о разделе, команда попробует восстановить удаленный раздел.

Как видите, утилита parted проста в использовании и очень удобна для создания/изменения разделов вашего диска. Надеемся, что данная статья поможет вам разобраться во многих вопросах.