Алексей Федорчук
Как уже говорилось, утилита fdisk
часто оказывает устрашающее действие на начинающих пользователей. И потому, идя навстречу их невысказанным пожеланиям, Кевин Мартин (Kevin E. Martin) написал к ней консольный фронт-энд с меню-ориентированным интерфейсом, получивший имя cfdisk
. Как и fdisk
, эта утилита входит в состав
Утилита cfdisk
описывается в литературе гораздо реже, хотя во многих дистрибутивах она принята для разметки диска по умолчанию или пропагандируется как предпочтительная. Традиционно она считается более удобной, чем fdisk
— впрочем, это субъективно и зависит от привычки.
Запустить cfdisk
можно одноименной командой, с указанием имени дискового устройства в качестве аргумента:
# cfdisk /dev/sdb
Если аргумент в командной строке опущен — по умолчанию команда будет исполнена для первого физического диска машины.
Разумеется, для использования утилиты требуются права администратора. Если попытаться запустить её от лица обычного пользователя — программа стартует с сообщением об ошибке следующего вида:
FATAL ERROR: Cannot open disk drive Press any key to exit cfdisk
После запуска программы (в консоли или окне терминала) мы видим следующую картину:
На ней выводится информация о диске, первом физическом или том, что был указан в качестве аргумента (имя файла устройства, размер, число головок, секторов, цилиндров), таблица существующих разделов (если, кончено, они действительно существуют) и меню из следующих пунктов: Bootable, Delete, Help, Maximize, Print, Quit, Type, Units, Write. Это — для диска с существующими разделами. Если же диск не разбит (или в таблице разделов курсор зафиксирован на неразбитом пространстве), меню ограничивается пунктами Help, New, Print, Quit, Units, Write:
Смысл пунктов, думаю, понятен из их названий, как и возможности программы вообще. Замечу лишь, что здесь, как и в fdisk
, до выбора пункта Write (в котором будет запрошено подтверждение действия) никаких необратимых изменений не происходит: через Quit всегда можно покинуть программу без боязни за существующие разделы и данные на них. И еще: по умолчанию размеры разделов в таблице указаны в мегабайтах. Однако через пункт Units (сиречь единицы измерения) можно переключиться на показ его в секторах или цилиндрах.Для создания раздела выбирается пункт New, выводящий подменю: Primary, Logical, Cancel:
После выбора типа раздела просто задается желаемый его размер (в мегабайтах):
После чего запрашивается, приписать ли раздел к началу диска или его концу:
А потом остается только сохранить разбиение в таблице разделов выбором пункта Write (повторяю, с запросом подтверждения, и не просто как y, а вводом полного слова yes — дабы дать дополнительные мгновения на раздумье):
Таким образом, все происходит почти также, как в fdisk
. Это и не удивительно: cfdisk
по сути лишь интерфейсная для fdisk
оболочка. Хотя cfdisk
несколько менее гибок: например, раздел в середине неразбитого дискового пространства создать нельзя.
Некоторое неудобство возникает при работе с cfdisk
при использовании русской юникодовской системной локали (ru_RU.UTF-8). Во-первых, в некоторых дистрибутивах эта утилита по сей день собрана без поддержки таковой — а поскольку локаль предписывает вывод системных сообщений кириллицей, меню становится абсолютно нечитаемым.
Во-вторых, даже при сборке с поддержкой UTF-8 буквенные сокращения команд меню иногда отказываются работать. И в-третьих, если при англоязычном интерфейсе очевидно, что таким сокращением является первый символ соответствующего пункта меню, в интерфейсе русскоязычном эта мнемоника теряется.
Так что cfdisk
целесообразно использовать в англоязычном варианте. Что достигается просто — принудительным определением локали администратора как C или POSIX (что эквивалентно). Это можно сделать или в командной строке, или в профильном файле командной оболочки root’а, строкой вида (для bash
):
export LANG=POSIX
Последнее предпочтительней: локали, отличные от POSIX, не полезны при ряде административных действий.
Полноты картины ради замечу, что cfdisk
можно запустить и в интерактивном режиме, однако, насколько мне известно, его мало кто использует. По крайней мере, я ни разу не ощутил в нём потребности.