Разметка дисков в Linux

При переустановке системы, установке нового дистрибутива или просто реорганизации файловых систем мы часто имеем дело с жесткими дисками. Часто нужно добавлять, удалять или изменять размер разделов, управлять их флагами или конвертировать файловые системы. Для этого в Linux есть достаточно различных инструментов как с графическим интерфейсом, так и консольных. Разобраться в графическом интерфейсе Gparted, я думаю вам не составит труда, но в некоторых случаях бывает нужна разбивка жесткого диска на разделы linux в терминале, без доступа к Х серверу, а это может стать серьезной проблемой.

В этой статье мы разберем как выполнять основные операции, которые мы привыкли делать в Gparted, такие как разметка диска в linux, удаление и создание раздела linux, в терминале с помощью утилиты parted. Сначала рассмотрим саму команду parted.

Синтаксис parted

Синтаксис parted выглядит следующим образом:

$ parted [опции] устройство [команда]

В квадратных скобках указанны необязательные аргументы.

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

устройство — жесткий диск с которым будет работать программа.

команда — действие которое нужно выполнить над жестким диском.

Опции и команды parted

У parted всего несколько опций и огромное количество команд.

Вот опции:

  • -h — вывести справку о программе
  • -v — вывести версию программы
  • -s — скриптовый режим, программа работает без запросов к пользователю
  • -i — интерактивный режим, пользователь вводит команды в интерактивном режиме. По умолчанию программа работает в этом режиме.

Команд не очень много, но даже помнить их все вовсе не обязательно. Рассмотрим только те, которые нам пригодятся в сегодняшних примерах:

  • help команда — помощь по выбранной команде
  • mkpart тип раздела файловая система начало конец — создание раздела linux с файловой системой начиная с позиции начало заканчивая конец, два последних параметра задаются в мегабайтах по умолчанию
  • mktable тип — создать таблицу разделов
  • print — отобразить таблицу разделов
  • quit — выйти
  • resize раздел конец — изменить размер раздела
  • rm раздел — удалить раздел
  • select раздел — установить раздел как текущий
  • set раздел флаг состояние — установить флаг для раздела. Состояние может быть on (включен) или off(выключен)

Раньше поддерживались также опции работы с файловой системой mkfs, check, mkpartfs но начиная с версии 2.4 они были удаленны.

Я понимаю что сейчас разметка дисков в linux для вас непонятна и расплывчата, но с примерами станет намного яснее. Больше не будем о теории, перейдем к примерам.

Разметка диска в Linux

Во всем, что вы изучаете нужна практика и работа с жесткими дисками linux не исключение. Но практиковаться на реальном диске, рискуя повредить файловую систему не совсем правильно, а создавать виртуальную машину для таких целей слишком непрактично. Но есть решение. В Linux все есть файлами, и жесткий диск в том числе тоже представлен в виде файла. Из этого выплывает интересная возможность. Мы можем использовать обычный файл вместо жесткого диска для своих экспериментов.

Создадим себе тестовый полигон командой:

dd if=/dev/zero of=/disk.iso count=2000M

Таким образом, мы получим файл размером 2000 мегабайт, заполненный нулями, с которым можно спокойно работать.

Запустим parted, передав ему вместо устройства наш файл чтобы дальше была выполнена разбивка жесткого диска linux:

parted /disk.iso

Программа запустится в интерактивном режиме и вы сможете выполнять нужные команды:

GNU Parted 3.1
Using /disk.iso
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)

Сначала попытаемся посмотреть список разделов на устройстве:

Disk /home/sergiy/disk.iso: 1992MB
Sector size (logical/physical): 512B/512B
Partition Table: unknown
Disk Flags:

Он пуст потому что даже нет таблицы разделов. Пока ее нет, разметка дисков в Linux не может быть выполнена, нам предстоит ее создать. Для этого воспользуемся командой mktable:

mktable gpt

Будем мы создали таблицу разделов типа gpt, но можно выбрать одну из этих: aix, amiga, bsd, dvh, gpt_sync_mbr, gpt, mac, msdos, pc98, sun, loop

Теперь давайте создадим новый раздел с файловой системой ext2 размером 100 мегабайт. Для этого есть команда mkpart, как вы помните ей нужно передать три параметра: тип раздела, файловую систему и координаты. Тип раздела может быть:  primary, logical, extended (первичный, логический и расширенный).

В gpt можно создавать нужное количество первичных разделов и не задумываться об их типе. Это все было создано для MBR, в этой таблице есть ограничение на количество первичных разделов — только четыре. Поэтому приходилось создавать три первичных и один расширенный, в который вкладывались уже сколько нужно логических.

Ну так вот, создаем первичный:

mkpart primary ext2 0 400М

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

Смотрим список разделов еще раз:

print

Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End    Size   File system  Name     Flags
1      17,4kB  400MB  400MB               primary

Создадим еще несколько разделов, например для коня системы и для домашней папки:

mkpart primary ext2 400 1000M

mkpart primary ext2 1000M -0M

Параметр -0 означает вести отсчет от конца раздела, таким образом будет занято все доступное пространство под третий раздел. Смотрим что получилось:

Number  Start   End     Size   File system  Name     Flags
1      17,4kB  400MB   400MB               primary
2      400MB   1000MB  600MB               primary
3      1000MB  1992MB  992MB               primary

Работа с диском в Linux осуществляется по их номерах. Давайте уменьшим последний раздел и создадим после него еще один:

resize 3 1600

А теперь создаем:

mkpart primary ext4 1600M -0M

Смотрим:

print

Number  Start   End     Size   File system  Name     Flags
1      17,4kB  400MB   400MB               primary
2      400MB   1000MB  600MB               primary
3      1000MB  1600MB  600MB               primary
4      1600MB  1992MB  392MB               primary

Удалим только что созданный четвертый раздел:

rm 1

Зададим метки для существующих разделов с помощью команды name:

name 1 boot

name 2 root

name 3 home

Сделаем первый раздел загрузочным командой set:

set 1 boot on

Можно устанавливать следующие флаги: boot, root, swap, hidden, raid, lvm, lba, hp-service, palo, prep, msftres, bios_grub, atvrecv, diag, legacy_boot, type, irst

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

Выводы

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

Creative Commons License
Статья Разметка дисков в Linux распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.
Ваше имя тоже может быть здесь. Начните писать статьи для Losst. Это просто! Смотрите подробнее как начать писать статьи - Пишите для нас

Оцените статью:

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (3 оценок, среднее: 5,00 из 5)
Загрузка...

3 комментария

  1. Харитон Апрель 8, 2016 Ответить
  2. Александр Декабрь 19, 2017 Ответить

Ответить

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: