- Команда parted в Linux
- Синтаксис parted
- Опции и команды parted
- Разметка диска в Linux
- Выводы
- How to Create and Manage Linux Partitions using Parted
- Prerequisite
- Using Parted as a Disk Partitioner for Linux
- Identify Linux Disk Labels
- Choose Linux Hard Disk for Partitioning
- Set Linux Partition Table Type
- Create Primary and/or Logical Partition(s) in Linux
- Managing Linux Partitions
Команда parted в Linux
При переустановке системы, установке нового дистрибутива или просто реорганизации файловых систем мы часто имеем дело с жесткими дисками. Часто нужно добавлять, удалять или изменять размер разделов, управлять их флагами или конвертировать файловые системы. Для этого в Linux есть достаточно различных инструментов как с графическим интерфейсом, так и консольных. Разобраться в графическом интерфейсе Gparted, я думаю вам не составит труда, но в некоторых случаях бывает нужна разбивка жесткого диска на разделы linux в терминале, без доступа к Х серверу, а это может стать серьезной проблемой.
В этой статье мы разберем как выполнять основные операции, которые мы привыкли делать в Gparted, такие как разметка диска, удаление и создание раздела, в терминале, а поможет в этом команда parted Linux. Сначала рассмотрим саму команду parted.
Синтаксис parted
Синтаксис parted выглядит следующим образом:
$ parted [опции] устройство [команда]
В квадратных скобках указанны необязательные аргументы.
- опции указывают как будет работать программа, например, интерактивный режим работы или скриптовый, или нужно просто вывести справку.
- устройство — жесткий диск с которым будет работать программа.
- команда — действие которое нужно выполнить над жестким диском.
Опции и команды parted
У parted всего несколько опций и огромное количество команд.
- -h — вывести справку о программе
- -v — вывести версию программы
- -s — скриптовый режим, программа работает без запросов к пользователю
- -i — интерактивный режим, пользователь вводит команды в интерактивном режиме. По умолчанию программа работает в этом режиме.
Команд не очень много, но даже помнить их все вовсе не обязательно. Рассмотрим только те, которые нам пригодятся в сегодняшних примерах:
- help команда — помощь по выбранной команде;
- mkpart тип раздела файловая система начало конец — создание раздела linux с файловой системой начиная с позиции начало заканчивая конец, два последних параметра задаются в мегабайтах по умолчанию;
- mktable тип — создать таблицу разделов;
- print — отобразить таблицу разделов;
- quit — выйти;
- resizepart раздел конец — изменить размер раздела;
- rm раздел — удалить раздел;
- select раздел — установить раздел как текущий;
- set раздел флаг состояние — установить флаг для раздела. Состояние может быть on (включен) или off(выключен).
Раньше поддерживались также опции работы с файловой системой mkfs, check, mkpartfs но начиная с версии 2.4 они были удаленны. Но программа не стала хуже.
Я понимаю что сейчас разметка дисков в linux для вас непонятна и расплывчата, но с примерами станет намного яснее. Больше не будем о теории, перейдем к примерам.
Разметка диска в Linux
Во всем, что вы изучаете нужна практика и работа с жесткими дисками linux не исключение. Но практиковаться на реальном диске, рискуя повредить файловую систему не совсем правильно, а создавать виртуальную машину для таких целей слишком непрактично. Но есть решение. В Linux все считается файлами, и жесткий диск в том числе представлен в виде файла. Из этого выплывает интересная возможность. Мы можем использовать обычный файл вместо жесткого диска для своих экспериментов.
Создадим себе тестовый полигон командой:
sudo dd if=/dev/zero of=/disk.img count=2000 bs=1M
Таким образом, мы получим файл размером 2000 мегабайт, заполненный нулями, с которым можно спокойно работать. Запустим parted, передав ему вместо устройства наш файл:
Когда надо будет работать с реальным диском, просто передайте путь к файлу его устройства утилите:
Программа запустится в интерактивном режиме и вы сможете выполнять нужные команды. Сначала попытаемся посмотреть список разделов на устройстве:
Он пуст потому что даже нет таблицы разделов. Пока её нет, разметка дисков в Linux не может быть выполнена, нам предстоит ее создать. Для этого воспользуйтесь командой mktable:
Будем мы создали таблицу разделов типа gpt, но можно выбрать одну из этих: aix, amiga, bsd, dvh, gpt_sync_mbr, gpt, mac, msdos, pc98, sun, loop
Теперь давайте создадим новый раздел с файловой системой ext2 размером 100 мегабайт. Для этого есть команда mkpart, как вы помните ей нужно передать три параметра: тип раздела, файловую систему и координаты. Тип раздела может быть: primary, logical, extended (первичный, логический и расширенный).
В gpt можно создавать нужное количество первичных разделов и не задумываться об их типе. Это все было создано для MBR, в этой таблице есть ограничение на количество первичных разделов — только четыре. Поэтому приходилось создавать три первичных и один расширенный, в который вкладывались уже сколько нужно логических.
Ну так вот, создаем первичный:
(parted) mkpart primary ext2 0 400М
Поскольку это первый раздел, начинаем мы с нуля, а заканчиваем нужным нам размером — 400 мегабайт.
Смотрим список разделов еще раз:
Создадим еще несколько разделов, например для корня системы и для домашней папки:
(parted) mkpart primary ext4 400 1000M
(parted) mkpart primary ext4 1000M -0M
Параметр -0 означает вести отсчет от конца раздела, таким образом будет занято все доступное пространство под третий раздел. Смотрим что получилось:
Работа с диском в Linux осуществляется по их номерам. Давайте уменьшим последний раздел и создадим после него ещё один:
(parted) resizepart 3 1600M
Также можно указать нужный размер в процентах:
А теперь создание раздела parted:
mkpart primary ext4 1600M -0M
Удалим только что созданный четвертый раздел:
Зададим метки для существующих разделов с помощью команды name:
Сделаем первый раздел загрузочным командой set:
Можно устанавливать следующие флаги: boot, root, swap, hidden, raid, lvm, lba, hp-service, palo, prep, msftres, bios_grub, atvrecv, diag, legacy_boot, type, irst.
Вот в принципе и все. Разбивка диска на разделы Linux завершена. Работу с файловыми системами мы в этой статье опустим, так как для этого используются уже другие команды, которые мы рассмотрим в одной из следующих статей.
Выводы
Теперь вы знаете как пользоваться parted Linux и этой информации достаточно чтобы не потеряться в случае, если окажетесь без доступа к графическому интерфейсу и вам понадобится разбивка жесткого диска в консоли Linux.
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
How to Create and Manage Linux Partitions using Parted
When it comes to the usage and mastery of Linux operating systems, you will always find yourselves learning new cool stuff due to its open-source and extensible nature.
One cool feature available in all Linux operating system distributions is disk partitioning, which is important as it helps with organizing your files and folders, preventing files and folders conflicts, and also in seclusion of the system files from the user files.
While considering disk partitioning in other operating systems (not Linux-based), you are bound to go after a third-party application for you to fully meet your disk partitioning objectives. With Linux, using a third-party application for disk partitioning is an optional step.
Prerequisite
Since disk partitions are critical to the usage and operation of your machine, the power and usage of the Parted tool should be associated with root/sudoer user privileges.
Using Parted as a Disk Partitioner for Linux
This article introduces the use of Parted as an effective disk partitioning tool. This disk partition tool should be inbuilt into your Linux operating system distribution and you can validate its presence by executing the following command:
Identify Linux Disk Labels
The command helps list the disk labels present on your Linux system making it easier to identify the one that will be used to create the needed Linux partitions.
From the above command output, we have identified /dev/sda as the targeted disklabel with a logical/physical sector size. Please note that it is impossible to partition a disk label hosting the operating system you are currently using as such a disklabel will have a primary sector size.
Choose Linux Hard Disk for Partitioning
To select /dev/sda for partitioning (in case we have many disk labels present), we will execute the following parted command.
The above command should point to the disk label we have selected for partitioning.
Key in ‘help‘ to view all the commands associated with the parted command, which is a quick and useful reference manual when you find yourself stuck while creating and managing Linux partitions.
Set Linux Partition Table Type
To create a new partition table type, we need the help of the mklabel command, which lists the possible label types we can use:
We will use msdos as it is an ideal recommendation for generic Linux.
Create Primary and/or Logical Partition(s) in Linux
We will use the print command to check how much space we have on the Disk we intent to partition.
As per the above command output, we have 32.4 GB of free Disk space to use.
We can create partitions from the availed disk space using the mkpart command. The primary partition can be used for the installation of your Linux operating system and the logical partition for the storage of your personal/non-system files.
Let us create a 10GB primary partition and a 5GB logical partition.
To create 10GB Primary Partition:
The Start and End values of this partition are 0 and 10GB respectively. To confirm that the partition space has been used.
To create 5GB Primary Partition:
The Start and End values for this 5GB logical partition should begin from 10.1GB (a value higher than the one for the created primary partition) and 15.1GB (Adding 5 to 10.1).
Confirm that the partition space has been used:
The two created partitions should now be listed with their respectful sizes as per the above screen capture.
Managing Linux Partitions
To delete a partition, first, use the print command so that its Number can be listed and then use the rm command to delete it.
To remove partition Number 2 from the above screen capture:
To resize Linux partition 1 by shrinking or increasing its partition size:
To make partition Number 1 bootable:
To learn more on parted commands, reference the command: