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»
или указать произвольный размер раздела так:
«# (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]?
Сначала увеличьте размер раздела, а потом растяните файловую систему на нем. Если вы уменьшаете размер раздела – сначала нужно сжать размер файловой системы, и только после этого уменьшать размер раздела. Иначе потеряете данные.
Для уменьшения размер файловой системы используются следующие команды. Для файловых систем 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:
(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»
Команда запросит начальный и конечный размер разделе. Если на этих позициях есть инфа о разделе, команда попробует восстановить удаленный раздел.
Ваш комментарий будет первым