Все, что вы пытаетесь изучить, требует практики. Работа с жесткими дисками в Linux не исключение. Практиковаться на реальном диске, рискуя повредить файловую систему, не стоит, но и создавать виртуальную машину для таких целей слишком непрактично. Какое же решение есть?
В Linux все считается файлами, и жесткий диск в том числе представлен в виде файла. Из этого выплывает интересная возможность. Мы можем использовать обычный файл вместо жесткого диска для своих экспериментов.
Создаем тестовый полигон командой:
sudo dd if=/dev/zero of=/disk.img count=2000 bs=1M
Мы создали файл размером 2000 мегабайт, заполненный нулями, с которым можно спокойно работать. Запустим parted
, передав ему вместо устройства наш файл:
$ sudo parted /disk.img
Если нужно работать с реальным диском, просто передайте путь к файлу его устройства утилите:
$ sudo parted /dev/sda
Утилита запустится в интерактивном режиме и вы сможете выполнять нужные команды. Теперь попытаемся посмотреть список разделов на устройстве:
(parted) print
Он пуст потому что даже нет таблицы разделов. Пока её нет, разметка дисков в Linux не может быть выполнена, нам предстоит ее создать. Для этого используем команду mktable
:
(parted) mktable gpt
У нас есть таблица разделов типа 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) print
Создадим еще несколько разделов, например для корня системы и для домашней папки:
(parted) mkpart primary ext4 400 1000M
(parted) mkpart primary ext4 1000M -0M
Параметр -0 означает вести отсчет от конца раздела, таким образом будет занято все доступное пространство под третий раздел. Смотрим что получилось:
Работа с диском в Linux осуществляется по их номерам. Давайте уменьшим последний раздел и создадим после него ещё один:
(parted) resizepart 3 1600M
Можно указать нужный размер в процентах:
(parted) resizepart 3 60%
А теперь создание раздела parted
:
mkpart primary ext4 1600M -0M
Разбивка диска на разделы Linux завершена. Работу с файловыми системами мы в этой статье опустим, так как для этого используются уже другие команды, которые мы рассмотрим в одной из следующих статей.
Примените скидку, вставив промокод в специальное поле при оформлении заказа: