Поиск по сайту:

Создавайте и управляйте разделами диска с помощью Parted в Linux

Примеры команд Parted для создания разделов диска в Linux

Существует множество утилит, таких как fdisk, cdisk, для разделения жесткого диска в Linux и Unix-подобных системах. В этой статье мы сосредоточимся на том, как использовать утилиту parted для создания раздела и управления разделами диска (изменение размера, удаление разделов) в Linux.

Что такое Разделенный?

GNU Parted — это пакет командной строки для создания таблиц разделов и управления ими в системах Linux и Unix. Используя Parted, можно создавать, изменять размер, удалять разделы, реорганизовывать использование диска, копировать данные и создавать образы дисков.

Parted содержит библиотеку libparted, а также интерфейс командной строки parted, который также можно используется в скриптах. Parted предназначен для минимизации вероятности потери данных. Он выполняет множество проверок безопасности, чтобы избежать потери данных в непредвиденных ситуациях, например, при сбое питания.

Parted — бесплатная программа с открытым исходным кодом, которая по умолчанию поставляется с современными операционными системами Linux.

Установить Parted в Linux

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

Чтобы установить Parted в Alpine Linux, запустите:

sudo apk add parted

В Arch Linux, EndeavourOS и Manjaro Linux запустите:

sudo pacman -S parted

Для Debian/Ubuntu и его производных выполните следующую команду.

sudo apt -y install parted

Fedora, RHEL, AlmaLinux и Rocky Linux:

sudo dnf install parted -y

Выбор правильного устройства

Первое, что следует отметить перед использованием parted, — это какой диск вы собираетесь разбить на разделы. Когда вы запускаете команду parted без передачи имени диска в качестве аргумента, она возьмет первое найденное блочное устройство и будет использовать его.

$ sudo parted
GNU Parted 3.2
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)     

Внимание! Вам следует либо использовать sudo, либо переключиться от имени пользователя root и запустить команду parted.

Чтобы использовать конкретное устройство, вам необходимо передать его (например, /dev/sdc) в качестве аргумента команды parted.

$ sudo parted /dev/sdc
GNU Parted 3.2
Using /dev/sdc
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)

Альтернативно, из утилиты parted вы можете переключаться между разными дисками с помощью команды "select".

(parted) select /dev/sdb
Using /dev/sdb
(parted) select /dev/sdc
Using /dev/sdc

Распечатать раздел справки Parted

Чтобы получить список разделенных команд, выполните команду help.

(parted) help

  align-check TYPE N                        check partition N for TYPE(min|opt) alignment
  help [COMMAND]                           print general help, or help on COMMAND
  mklabel,mktable LABEL-TYPE               create a new disklabel (partition table)
  mkpart PART-TYPE [FS-TYPE] START END     make a partition
  name NUMBER NAME                         name partition NUMBER as NAME
  print [devices|free|list,all|NUMBER]     display the partition table, available devices, free space, all found partitions, or a particular partition
  quit                                     exit program
  rescue START END                         rescue a lost partition near START and END
  resizepart NUMBER END                    resize partition NUMBER
  rm NUMBER                                delete partition NUMBER
  select DEVICE                            choose the device to edit
  disk_set FLAG STATE                      change the FLAG on selected device
  disk_toggle [FLAG]                       toggle the state of FLAG on selected device
  set NUMBER FLAG STATE                    change the FLAG on partition NUMBER
  toggle [NUMBER [FLAG]]                   toggle the state of FLAG on partition NUMBER
  unit UNIT                                set the default unit to UNIT
  version                                  display the version number and copyright information of GNU Parted

Каждая из этих команд имеет отдельный раздел справки. Например, если вы хотите получить дополнительные параметры для команды print, вы можете запустить следующую команду.

(parted) help print

Распечатать таблицу разделов

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

sudo parted -l

Чтобы просмотреть таблицу разделов в утилите parted, используйте команду "print".

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

Команда печати

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

sudo parted /dev/sdc print | grep -i table
Partition Table: gpt

Вы можете получить только имена блочных устройств, передав "devices" в качестве аргумента команде печати.

(parted) print devices
/dev/sdc (21.5GB)
/dev/sda (53.7GB)
/dev/sdb (21.5GB)
/dev/sr0 (61.1MB)

Вы можете узнать объем свободного места, оставшегося на диске, передав "free" в качестве аргумента команде print.

(parted) print free                                                       
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdc: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name  Flags
        17.4kB  21.5GB  21.5GB  Free Space

Чтобы распечатать всю информацию об устройстве в parted, передайте "list,all" в качестве аргумента команде print.

(parted) print list,all

Немаркированный диск

Прежде чем создавать разделы с помощью диска, диск должен быть помечен для использования определенной схемы разделов. Если вы запустите команду печати на непомеченном диске, вы увидите ОШИБКУ.

(parted) print
Error: /dev/sdc: unrecognised disk label
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdc: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: unknown
Disk Flags:

Чтобы создать метку, вы можете использовать команду mklabel или mktable. Если вы не имеете представления о списке поддерживаемых меток, запустите «help mklabel» или «help mktable».

Отобразить справку по команде mklabel

Я собираюсь пометить этот диск для использования схемы GPT. Если вам нужна схема разделов MBR, используйте msdos.

(parted) mklabel gpt

Теперь, если вы снова запустите команду print, вы увидите метку.

Внимание: Прежде чем запускать эту команду, убедитесь, что вы используете правильный диск. Потому что эта команда может уничтожить все разделы диска со своими данными.

Создание новых разделов с помощью Parted

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

Прежде чем запускать команду mkpart, просмотрите справочную информацию, в которой приведены подробные сведения о списке параметров.

help mkpart

Я собираюсь создать два раздела размером по 10 ГБ каждый. Давайте создадим первый раздел.

(parted) mkpart
Partition name? []? project
File system type? [ext2]? ext4
Start? 1
End? 10GB

Этот шаг будет интерактивным.

  • Выберите имя для раздела.
  • Выберите тип файловой системы. По умолчанию установлено значение ext2.
  • Выберите начальное местоположение диска. Вы можете указать в МБ, ГБ. Здесь я указал 1, поэтому размер будет начинаться с 1 МБ.
  • Выберите конечное местоположение диска. Здесь указано 10 ГБ.

Запустите команду print, и вы увидите созданный раздел.

(parted) print
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdc: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number Start   End     Size   File system Name                 Flags
1     1049kB 10.0GB 9999MB               project

Создадим второй раздел. Вы можете объединить все интерактивные входные данные и передать их в качестве аргументов команде mkpart.

(parted) mkpart project1 ext4 10001MB 19999MB

Созданные вами разделы еще не сохранены. Вам нужно использовать команду «partprobe», чтобы сообщить ядру о внесенных вами изменениях в таблице разделов.

Выйдите из утилиты parted, набрав «quit» и запустив команду partprobe.

sudo partprobe

Удалить разделы

Удалить разделы можно с помощью команды rm. Команда rm принимает номер раздела в качестве аргумента и удаляет этот раздел.

help rm

Если раздел активен и уже смонтирована файловая система, рекомендуется сначала очистить данные, отключить файловую систему, а затем удалить раздел.

Если вы попытаетесь удалить раздел во время его использования, вам будет предложено подтвердить удаление раздела, и вы получите сообщение об ошибке, сообщающее, что изменения вступят в силу после перезагрузки. Выберите «Игнорировать».

(parted) rm 1
Warning: Partition /dev/sdc1 is being used. Are you sure you want to continue?
Yes/No? yes
Error: Partition(s) 1 on /dev/sdc have been written, but we have been unable to inform the kernel of the
change, probably because it/they are in use. As a result, the old partition(s) will remain in use. You
should reboot now before making further changes.
Ignore/Cancel? ignore

Присвоение имени разделу

Вы можете использовать команду «name», чтобы переименовать или присвоить имя разделу. Команда name принимает номер раздела в качестве первого аргумента, за которым следует новое имя.

(parted) name 2 p1

Здесь я меняю имя раздела 2 с project1 на p1.

Изменить размер раздела

Вы можете сжать или расширить раздел с помощью команды resizepart. Команда resizepart принимает идентификатор раздела в качестве аргумента. Он спросит вас, каким должен быть размер (Конец?).

Давайте уменьшим первый созданный мной раздел. Идентификатор раздела — 1, размер раздела — 10 ГБ. Здесь я уменьшаю размер раздела до 5 ГБ.

(parted) resizepart 1
End? [10.0GB]? 5 GB
Warning: Shrinking a partition can cause data loss, are you sure you want to continue?
Yes/No? yes

У меня есть второй раздел объемом 5 ГБ, и я хочу добавить еще 2 ГБ и сделать его 7 ГБ.

(parted) resizepart 2
End? [15.0GB]? 17GB

Теперь, если я распечатаю таблицу разделов, мой первый раздел уменьшится до 5 ГБ, а второй раздел увеличится до 7 ГБ.

Number  Start   End     Size    File system  Name  Flags
 1      1049kB  5000MB  4999MB  ext4         p1
 2      10.0GB  17.0GB     7000MB  ext4         p2

Изменить флаги разделов

С помощью команды set вы можете присвоить разделу флаг. Чтобы получить список поддерживаемых флагов, выполните следующую команду help.

(parted) help set

Установить справку по команде

Допустим, если вы хотите пометить раздел как раздел подкачки, вам нужно выполнить команду следующим образом:

set [partition name] [flag] [ON/OFF]

(parted) set 1 swap ON

Создать файловую систему

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

Вы можете проверить созданные разделы, выполнив команду lsblk.

lsblk

Вывод команды Lsblk

Давайте создадим файловую систему типа ext4 для /dev/sdc1, выполнив следующую команду.

mkfs.ext4 /dev/sdc1

Теперь смонтируйте файловую систему в любой каталог по вашему желанию и используйте раздел.

mount /dev/sdc1 /mnt/
$ df -h /dev/sdc1
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdc1       4.6G   19M  4.3G   1% /mnt

Заключение

В этой статье мы обсудили, как использовать утилиту parted для создания разделов диска и управления ими с помощью программы Parted в Linux. Мы также рассмотрели, как отформатировать вновь созданные разделы с файловой системой ext4 и смонтировать их в нашей системе.

Начиная с версии RHEL 8, Red Hat предлагает использовать утилиту parted вместо fdisk. Итак, если вы готовитесь к сертификации RHCSA, эта статья будет вам очень полезна.

Для пользователей настольных компьютеров Linux существует версия parted с графическим интерфейсом под названием GParted. Подробно о Gparted мы поговорим в отдельной статье в ближайшее время. Следите за обновлениями!

Ресурс:

  • Веб-сайт GNU разделен

Связанное чтение:

  • Как создавать разделы диска и управлять ими с помощью Fdisk в Linux
  • Как найти тип смонтированной файловой системы в Linux

Статьи по данной тематике