Способы оплаты Abuse

Разбивка диска на разделы в Linux

11.10.2023, 21:17

Все, что вы пытаетесь изучить, требует практики. Работа с жесткими дисками в Линукс не исключение. Практиковаться на реальном диске, рискуя повредить файловую систему, не стоит, но и создавать виртуальную машину для таких целей слишком непрактично. Какое же решение есть?

Инструкция по разбивке диска

 В 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 завершена. Работу с файловыми системами мы в этой статье опустим, так как для этого используются уже другие команды, которые мы рассмотрим в одной из следующих статей.