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
Или в Debian/Ubuntu:
# apt-get install parted
Чтобы проверить версию утилиты, выполните команду:
# parted –v
parted (GNU parted) 3.2
Чтобы попасть в саму оболочку, введите:
# 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
Доступен диск /dev/vdb размером 21 Гб, диску не присвоена метка (error /dev/vdb: unrecognized disk label), какая таблица разделов – не понятно.
Можно создать на диске разметку msdos (MBR)
# mklabel msdos
Или таблицу разделов gpt ( GUIE partition table поддерживает размер раздела более 2 Тб) :
# mklabel gpt
Теперь 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
. При вводе команды в интерактивном режиме будут появляться вопросы о параметрах нового раздела:
- 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, например:
# parted -a opt /dev/vdb mkpart primary ext4 0% 100% && mkfs.ext4 /dev/vda1
Данной командой мы создадим раздел на диске vdb, под который отдадим всё пространство.
Таким образом вы можете упрощать себе работу или же добавлять подобные команды в какие-то скрипты или файлы кикстарта.
Как расширить или уменьшить размер раздела диска с помощью parted
Чтобы расширить или уменьшить размер раздела в partedиспользуется субкоманда resizepart Можно изменить размер раздела в интерактивном режиме. В оболочке parted введите команду:
# resizepart
Система запросит номер раздела (берется из вывода команды print) и конечный размер раздела. В этом примере размер разделе будет увеличен с 5 до 10 Гб:
(parted) resizepart
Partition number? 1_x000D_End? [5000MB]? 10000
Для уменьшения размер файловой системы используются следующие команды. Для файловых систем ext2/3/4 :
resize2fs /dev/sdab size
Для Btrfs:
btrfs filesystem resize /dev/sdab size