В продаже хоккейные коньки бауэр hockeyboy.ru. . Кухни на заказ в СПб: Кухни на заказ в СПб от производителя kuhni-simple.ru.

Linux: утилита разметки 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 всегда можно покинуть программу без боязни за существующие разделы и данные на них. И еще: по умолчанию размеры разделов в таблице указаны в тех мегабайтах, к которым мы привыкли -- 220 байт, которые, как нынче считается, положено называть мебибайтами. Однако через пункт 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 можно запустить и в интерактивном режиме, однако, насколько мне известно, так его мало кто использует. По крайней мере, я ни разу не ощутил в нём потребности.


Теги: , ,