Linux: разметка диска с помощью утилиты parted
Программа parted (и
ли, точнее, GNU parted, как подчеркивается в заголовке man-страницы) предлагается в рамках проекта
Использоваться parted
может двояким образом - в интерактивном и в командном режиме. Начнем с первого, то есть просто запустим программу одноименной командой, без опций и аргументов. В ответ она выдаст нам предупреждение об отсутствии гарантии, информацию о первом физическом диске системы, данные о геометрии (цилиндры/сектора/головки), предупреждение о том, где кончается 1024 цилиндр, -- и выведет приглашение командной строки в виде
(parted)
Интерфейс программы построен по принципу sh-совместимых оболочек. Поддерживаются, в частности, редактирование командной строки (обычными управляющими последовательностями, например, Control+D - удаление символа в позиции курсора, Control+H - перед оной), просмотр истории команд, автодополнение (клавишей Tab). Действия по организации диска выполняется с помощью мнемонически прозрачных команд (print
- просмотр, mkpart
- создание раздела, rm - его удаление, и т.д.). Синтаксис команд - также shell-подобный: обычно требуется указание аргумента - номера устройства (Minor, в терминологии программы) и некоторых дополнительных опций (в зависимости от команды). Выход из программы - командой exit
или комбинацией Control+D.
Полный список доступных команд с возможными опциями и аргументами, а также краткими, но внятными комментариями (в правильно локализованной системе -- на языке установленной локали, например, русском) можно получить, введя в командной строке
(parted) help
или просто нажав Enter в ответ на приглашение. Список этот включает команды для:
- выбора устройства для редактирования (
select /dev/sd?
); - действий с существующими разделами (
print
- просмотр таблицы разбиения,check
- проверка целостности файловой системы раздела,rm
- удаление раздела,cp
- копирование файловой системы в другой раздел,resize
- изменение размера раздела,move
- перемещение раздела в пределах диска); - манипуляций по разбиению диска (
mkpart
- создание раздела,mkpartfs
- создание раздела с файловой системой заданного типа,mkfs
- создание файловой системы на существующем разделе).
Подробную справку по каждой команде можно получить, введя
(parted) help имя_команды
Кроме того, справка по использованию команды будет выведена, если дать ее
без аргументов и опций. И, разумеется, программа parted
сопровождается документацией в форматах man
и info
, из которой можно получить исчерпывающие сведения о ее использовании.
В отличие от fdisk
или cfdisk
, в parted
не предусмотрено специальной команды для записи изменений, все действия выполняются в реальном времени, без откладывания. То есть, например, команда
(parted) rm #
приведет к немедленному удалению раздела с указанным номером.
Соответственно, parted
требует исключительно аккуратного обращения. Однако в обмен на это предоставляет, во-первых, исключительную гибкость при задании размера раздела и его позиционировании. Во-вторых, он делает доступными множество дополнительных манипуляций разделами и файловыми системами.
Чтобы оценить возможности parted
, рассмотрим для примера процесс разбиения вновь приобретенного диска. Для чего после запуска программы сначала выбираем соответствующее устройство:
(parted) select /dev/sd?
затем командой
(parted) print
убеждаемся, что устройство это разбиению не подвергнуто, и даем команду
для создания раздела:
(parted) mkpart type_part type_fs start end
Под типом раздела здесь могут выступать значения primary
(для первичного раздела), extended
(для расширенного) или logical
(для логического раздела в последнем). Возможные значения для типа файловой системы - ext2
, ext3
, reiserfs
, linux-swap или FAT. Можно указать также и иные поддерживаемые Linux файловые системы - xfs
или jfs
. Или даже hp-ufs
и sun-ufs
- версии файловой системы проприетарных Unix для платформ HP-PA и Sun Sparc, соответственно. Однако это лишь задаст для раздела соответствующие идентификаторы типа -- само по себе создание файловых систем при этом выполнено командой part
не будет, о чем я скажу чуть ниже.
Начало (start
) и конец (end
) раздела указываются в мегабайтах, например, 0 и 3000 при создании раздела в 3 Гбайт от начала диска. И начало, и конец можно задать дробными (с точностью до третьего знака и разделителем - десятичной точкой) числами, что обеспечивает необходимую точность разбиения (при наличии калькулятора или способности к счету в уме).
Как легко понять из формата команды, раздел заданного размера может быть
создан в любом месте диска (не обязательно в начале его или в конце). И
раздел, созданный первым по времени (вне зависимости от положения на диске),
получит номер (Minor) 1, созданный вторым (пусть и в начале диска) - Minor 2, и так далее. То есть по гибкости команда mkpart
из parted
ничуть не уступает программе fdisk
.
Далее на дисковых разделах должны быть созданы файловые системы.
Вообще-то, это будет темой отдельного разговора. Однако поскольку именно эта
возможность делает программу parted
столь универсальной, затрону ее здесь вскользь. Создание файловой системы осуществляется командой
(parted) mkfs # type_fs
где под # выступает тот самый номер (Minor) раздела, который был присвоен
ему при создании, а type_fs
-- доступные для создания файловые системы: - ext2
, ext3
, reiserfs
, linux-swap
и FAT
.
Дисковый раздел и файловая система на нем могут быть созданы также одной
командой:
(parted) mkpartfs type_part type_fs start end
К опциям ее относится все то, что было сказано чуть выше о командах
mkpart
и mkfs
.
Таким образом, создание разделов (и, добавлю, файловых систем) средствами
программы parted
в интерактивном режиме весьма просто и удобно (при должной, естественно, аккуратности). Однако основные ее преимущества проявляются при использовании в командном режиме. Чтобы прибегнуть к нему, программу parted
следует запустить с указанием аргумента (имени файла дискового устройства), одной из его встроенных команд и необходимых последней опций. В итоге одной строкой типа
$ parted /dev/sda mkpartfs primary ext2 0 100 && parted /dev/sda mkpartfs primary linux-swap 101 1124 && parted /dev/sda mkpartfs primary ext2 1125 ###
можно создать полностью готовый к использованию в Linux диск - никаких
дальнейших действий в этом направлении не потребуется.
- Linux: утилиты дисковой разметки. Обзор
- Linux: утилита разметки fdisk
- Linux: утилита разметки cfdisk
- Linux: разметка диска с помощью утилиты parted
- Linux: методы высвобождения дискового пространства
- Linux: высвобождение дискового пространства с помощью утилиты parted
- Linux: переразметка диска с помощью Gparted
Теги: linux, parted, средства разметки