Parted - встроенная утилита у ОС семейства RedHat благодаря которой вы можете создавать, удалять и изменять разделы н жёстком диске. Да там всё также присутствует fdisk, но RedHat рекомендует использовать parted.

Для простора информации о диске:

sudo parted /dev/vda print

Интерактивный режим

Также, как и в fdisk вы можете зайти в интерактивный режим для этого просто вводим команду sudo parted /dev/vda, где уже дальше можно выполнить команду help.

Для выхода из интерактивного режима пишем quit.

Единицы измерения размера

В общем и целом, утилита довольно таки хорошо сама подбирает единицу измерения (KB, MB, TB). Но если вам хочется вывести всё в одном формате, то можно воспользоваться опцией unit.

sudo parted /dev/vda unit OPTION print

Где OPTION может принимать следующие значения:

  • s - вывод в секторах
  • B - вывод в байтах
  • MiB, GiB, TiB - мибибайты, гигибайты и тибибайты соответственно
  • MB, GB, TB - мегабайт, гигабайт, терабайт

1. Создаём таблицу разделов на новом диске

Про сами таблицы разделов вы можете почитать тут если вам вдруг интересно или вы про них ничего не знаете.

Для того чтобы создать MBR:

sudo parted /dev/vdd mklabel msdos

Для того чтобы создать GPT:

sudo parted /dev/vdd mklabel gpt

2. Создаём раздел

Есть небольшой минус по сравнению с утилитой fdisk тут начало и конец раздела нужно указывать руками, т.е. подсказки о том где начинается пустота вам не дадут.

Для создания раздела на диске с MBR используется mkpart:

sudo parted /dev/vdd mkpart primary xfs 20MB 1000MB
  • xfs - тип файловой системы
  • 20MB - начало раздела
  • 1000MB - конец раздела

И в итоге у вас появится раздел /dev/vdd1.

Для создания раздела на диске с GPT:

sudo parted /dev/vdd mkpart partition_name xfs 20MB 1000MB

3. Создание файловой системы

После создания раздела нужно и создать на нём файловую систему, для этого используем mkfs.

sudo mkfs.xfs /dev/vdd1

Для получения полного списка файловых систем введите в консоли mkfs. и нажмите TAB несколько раз.

4. Монтирование нового раздела

Для того чтобы получить доступ к новому разделу нужно прикрепить его к папке используя команду mount.

Например, создадим папку new_part и сделаем на нее mount нового раздела.

sudo mkdir /new_part 
sudo mount  /dev/vdd1 /new_part 
df -h
sudo mount | grep /dev/vdd1

Но это не совсем правильный способ, и он годится только если вам нужен новый раздел на время, так как после перезагрузки сервера он пропадёт и папка /new_part будет снова пустая.

5. Постоянное монтирование нового раздела

Для того чтобы наш раздел был виден и после перезагрузки сервера нужно сделать mount используя файл /etc/fstab. При загрузке ОС ядро делает автоматический mount всех разделов описанных в этом файле.

Будьте осторожны с манипуляциями в этом файле. Если вы напишите что-то не так и перезагрузите сервер он запустится в режиме emergency.

Первое поле Второе поле Третье поле Четвертое поле Пятое поле Шестое поле
Содержит UUID диска или сетевой путь Папка куда монтировать Указывает тип файловой системы принимает разные значения (подробнее в man fstab) выставляется в 1 если нужно использовать для dump указывает в каком порядке проверять проверять файловую систему при загрузке ОС (обычно 0 для xfs и 1 для ext)
fs_spec fs_file fs_vfstype fs_mntops fs_freq fs_passno

Например, создадим папку new_part и сделаем на нее mount нового раздела.

  1. Получаем UUID нашего раздела
    sudo blkid /dev/vdd1
    sudo lsblk --fs
    
  2. Добавляем запись с нашим разделом
    sudo vim /etc/fstab 
    ```json
    UUID=3cd0d4ca-93f6-423b-a469-70ab2b10b667 /new_part xfs defaults 0 0
    
  3. Делаем mount заодно проверяя что мы нигде не ошиблись
    sudo mount -a 
    
  4. Проверяем что mount прошёл успешно
    df -h
    

Удаляем раздел

Для удаления используем rm и номер раздела.

  1. Получаем список всех разделов
    sudo parted /dev/vdd print
    
  2. Удаляем ненужный нам раздел
    sudo parted /dev/vdd rm 1
    

udevadm settle

Если вы в скриптах создаёте раздел и производите потом с ним какие-то манипуляции, то лучше после создания раздела использовать команду udevadm settle. Она в целом ничего не делает, а просто останавливает ваш скрипт пока создание раздела не завершится. Этакий timeout.

Видео