Утилиты разметки. cfdisk

Алексей Федорчук

Как уже говорилось, утилита fdisk часто оказывает устрашающее действие на начинающих пользователей. И потому, идя навстречу их невысказанным пожеланиям, Кевин Мартин (Kevin E. Martin) написал к ней консольный фронт-энд с меню-ориентированным интерфейсом, получивший имя cfdisk. Как и fdisk, эта утилита входит в состав пакета  linux-utils-ng.

Утилита cfdisk описывается в литературе гораздо реже, хотя во многих дистрибутивах она принята для разметки диска по умолчанию или пропагандируется как предпочтительная. Традиционно она считается более удобной, чем fdisk — впрочем, это субъективно и зависит от привычки.

Запустить cfdisk можно одноименной командой, с указанием имени дискового устройства в качестве аргумента:

# cfdisk /dev/sdb

Если аргумент в командной строке опущен — по умолчанию команда будет исполнена для первого физического диска машины.

Разумеется, для использования утилиты требуются права администратора. Если попытаться запустить её от лица обычного пользователя — программа стартует с сообщением об ошибке следующего вида:

                      FATAL ERROR: Cannot open disk drive
                          Press any key to exit cfdisk

После запуска программы (в консоли или окне терминала) мы видим следующую картину:

cfdisk01.png

На ней выводится информация о диске, первом физическом или том, что был указан в качестве аргумента (имя файла устройства, размер, число головок, секторов, цилиндров), таблица существующих разделов (если, кончено, они действительно существуют) и меню из следующих пунктов: Bootable, Delete, Help, Maximize, Print, Quit, Type, Units, Write. Это — для диска с существующими разделами. Если же диск не разбит (или в таблице разделов курсор зафиксирован на неразбитом пространстве), меню ограничивается пунктами Help, New, Print, Quit, Units, Write:

cfdisk02.png

Смысл пунктов, думаю, понятен из их названий, как и возможности программы вообще. Замечу лишь, что здесь, как и в fdisk, до выбора пункта Write (в котором будет запрошено подтверждение действия) никаких необратимых изменений не происходит: через Quit всегда можно покинуть программу без боязни за существующие разделы и данные на них. И еще: по умолчанию размеры разделов в таблице указаны в мегабайтах. Однако через пункт Units (сиречь единицы измерения) можно переключиться на показ его в секторах или цилиндрах.Для создания раздела выбирается пункт New, выводящий подменю: Primary, Logical, Cancel:

cfdisk03.png

После выбора типа раздела просто задается желаемый его размер (в мегабайтах):

cfdisk04.png

После чего запрашивается, приписать ли раздел к началу диска или его концу:

А потом остается только сохранить разбиение в таблице разделов выбором пункта Write (повторяю, с запросом подтверждения, и не просто как y, а вводом полного слова yes — дабы дать дополнительные мгновения на раздумье):

cfdisk05.png

Таким образом, все происходит почти также, как в fdisk. Это и не удивительно: cfdisk по сути лишь интерфейсная для fdisk оболочка. Хотя cfdisk несколько менее гибок: например, раздел в середине неразбитого дискового пространства создать нельзя.

Некоторое неудобство  возникает при работе с cfdisk при использовании русской юникодовской системной локали (ru_RU.UTF-8). Во-первых, в некоторых дистрибутивах эта утилита по сей день собрана без поддержки таковой — а поскольку локаль предписывает вывод системных сообщений кириллицей, меню становится абсолютно нечитаемым.

Во-вторых, даже при сборке с поддержкой  UTF-8 буквенные сокращения команд меню иногда отказываются работать. И в-третьих, если при англоязычном интерфейсе очевидно, что таким сокращением является первый символ соответствующего пункта меню, в интерфейсе русскоязычном эта мнемоника теряется.

Так что cfdisk целесообразно использовать в англоязычном варианте. Что достигается просто — принудительным определением локали администратора как C или POSIX (что эквивалентно). Это можно сделать или в командной строке, или в профильном файле командной оболочки root’а, строкой вида (для bash):

export LANG=POSIX

Последнее предпочтительней: локали, отличные от POSIX, не полезны при ряде административных действий.

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

Оставить комментарий