Как показывает учет статистики моего блога, периодически сюда попадают люди, которые ищут ответ именно на этот вопрос — «Как отформатировать флешки в Linux?»
Итак, наиболее просто это можно сделать с помощью программы Gparted. Как ей пользоваться для изменения разделов жесткого диска, я уже вкратце писал тут. Для форматирования флешки не нужно загружаться в режиме Live-CD, можно просто запустить программу из меню. После этого в программе первым делом нужно выбрать саму флешку (вверху справа, нечто вида /dev/sdx, сориентироваться можно по объему диска в Мб) а потом на выбранном разделе щелкнуть правой кнопкой и выбрать пункт «Форматировать»….
А теперь перейдем к консоли. Зачем? На тот случай, если вдруг графика подводит…
Тезис первый — ниже описаны команды, выполнение которых разрешено только администратору. То есть, рядовой пользователь просто получит ответ, что команда не найдена. Посему, сначала в консоли становимся администратором:
su
…и в ответ на запрос вводим пароль администратора. Как стать root-ом в Ubuntu (точнее, задать root-у свой собственный пароль) я уже писал. Теперь поищем нашу флешку (собственно, как это сделать, я упоминал тут). Повторюсь — для этого вводим следующую команду:
fdisk -l
В ответ получим данные обо всех разделах всех жестких дисков компьютера. В том числе и данные о разделах флешки тоже. Причем, у флешек, плотно эксплуатировавшихся (и форматировавшихся в том числе) под Windows в таблице разделов зачастую такая каша, что линуксовый fdisk выводит весьма «веселые» комментарии:
Диск /dev/sdc: 125 МБ, 125829120 байт 4 heads, 60 sectors/track, 1024 cylinders Units = цилиндры of 240 * 512 = 122880 bytes Disk identifier: 0x6f20736b Это не похоже на таблицу разделов Возможно, вы выбрали неверное устройство. Устр-во Загр Начало Конец Блоки Id Система /dev/sdc1 ? 3242233 7998524 570754815+ 72 Неизвестный Раздел 1 имеет различные физические/логические начала (не-Linux?): физ=(357, 116, 40) логич=(3242232, 3, 49) Раздел 1 имеет различные физические/логические окончания: физ=(357, 32, 45) логич=(7998523, 0, 19) Раздел 1 не заканчивается на границе цилиндра. /dev/sdc2 ? 702874 8769658 968014120 65 Novell Netware 386 Раздел 2 имеет различные физические/логические начала (не-Linux?): физ=(288, 115, 43) логич=(702873, 0, 3) Раздел 2 имеет различные физические/логические окончания: физ=(367, 114, 50) логич=(8769657, 1, 22) Раздел 2 не заканчивается на границе цилиндра. /dev/sdc3 ? 7791173 15857957 968014096 79 Неизвестный Раздел 3 имеет различные физические/логические начала (не-Linux?): физ=(366, 32, 33) логич=(7791172, 3, 6) Раздел 3 имеет различные физические/логические окончания: физ=(357, 32, 43) логич=(15857956, 3, 37) Раздел 3 не заканчивается на границе цилиндра. /dev/sdc4 ? 12023672 12023903 27749+ d Неизвестный Раздел 4 имеет различные физические/логические начала (не-Linux?): физ=(372, 97, 50) логич=(12023671, 1, 53) Раздел 4 имеет различные физические/логические окончания: физ=(0, 10, 0) логич=(12023902, 2, 51) Раздел 4 не заканчивается на границе цилиндра. Пункты таблицы разделов расположены не в дисковом порядке
Ну да ладно, нас не шуточные комментарии интересовали. Главную информацию мы получили — в системе наша флешка определилась как /dev/sdc.
Начать я предлагаю все-таки с наведения порядка в таблице разделов. Для этого запустим все тот же fdisk, но уже с указанием того накопителя, который будем рихтовать:
fdisk /dev/sdc
(Естественно, вместо /dev/sdc вы указывайте нужный вам диск). В ответ получим следующее приглашение:
Команда (m для справки):
Чтобы, как говорили в небезызвестной комедии, «огласить весь список, пожалуйста» нажмем на клавиатуре как нам и предлагают букву «m». В ответ получим список возможных команд:
Действие команды a переключение флага загрузки b редактирование метки диска bsd c переключение флага dos-совместимости d удаление раздела l список известных типов файловых систем m вывод этого меню n добавление нового раздела o создание новой пустой таблицы разделов DOS p вывод таблицы разделов q выход без сохранения изменений s создание новой чистой метки диска Sun t изменение id системы раздела u изменение единиц измерения экрана/содержимого v проверка таблицы разделов w запись таблицы разделов на диск и выход x дополнительная функциональность (только для экспертов)
Первым делом удалим все те «смешные и странные» разделы. Как удалим? Да так, полностью, окончательно и бесповоротно! Зачем удалим? Так вы ж ведь флешку вобще-то форматировать собирались…
Данный этап процедуры я позволю себе назвать «первой красной меткой». Суть данного маркера в том, что выполняемые нами далее действия выглядят как деструктивные — мы что-то вроде как удаляем, что-то создаем. Однако, на данном этапе мы на самом деле еще не будем вносить какие-либо изменения в таблицу разделов диска. Реальные изменения будут выполнены позже, и об этом я вас извещу «второй красной меткой»…
Начинаем удалять — а именно — нажимать на клавиатуре букву «d». На предложение выбрать раздел, нажимаем последовательно сначала «1» (чтобы удалить первый раздел диска) :
Команда (m для справки): d Номер раздела (1-4): 1
…потом снова «d» и «2» (второй раздел), «d» и «3» (третий раздел) и возможно «d» и «4» (четвертый). Показателем того, что уже пора остановиться, будет следующее сообщение от fdisk, появляющееся в ответ на очередное нажатие кнопки «d» :
Разделы еще не определены!
То есть, все разделы мы удалили. Теперь создадим новый. Для этого нажмеме кнопку «n» на клавиатуре:
Команда (m для справки): n Действие команды e расширенный p основной раздел (1-4)
Создавать мы будем основной раздел. И для этого нажмем кнопку «p» на клавиатуре:
Номер раздела (1-4):
Создадим первый раздел. Для этого нажмем «1» на клавиатуре:
Первый цилиндр (1-1024, по умолчанию 1):
Значение по умолчанию нас полностью устраивает (нам же не нужно пустое место вначале флешки?). По этому чтобы создать разел начиная с самого первого «цилиндра» просто нажимаем «Enter» на клавиатуре:
Используется значение по умолчанию 1 Last цилиндр, +цилиндры or +size{K,M,G} (1-1024, по умолчанию 1024):
По умолчанию программа нам предлагает номер самого последнего «цилиндра». При этом новый раздел будет создан на весь размер флешки. Если Вы как и я, планируете всю флешку использовать как один диск, то просто согласитесь с предложенным выбором. Если же Вы хотите разбить флешку на несколько разделов, то тут нужно задать точку окончания первого раздела. Простейший способ — это указать требуемый размер раздела способом, который предложил сам fdisk — «+ КОЛИЧЕСТВО (ЕДИНИЦ ИЗМЕРЕНИЯ)». Например ввод «+1000М» создаст раздел размером 1000 Мегабайт. Лично я создавал один единственный раздел, и потому просто нажал «Enter» на клавиатуре:
Используется значение по умолчанию 1024
На этом лично я с созданием разделов закончил. Если же Вы планировали создание на диске нескольких разделов, то снова возвращайтесь к процессу создания (кнопка «n»), вводите следующий (а не 1-й) номер раздела, соглашайтесь с номером цилиндра начала раздела (fdisk корректно предложит первый свободный после первого раздела), указывайте размер раздела, и т.д. как говорится, до «полного удовлетворения»…
Если Вы сделали ошибку, то в любое время ошибочно созданный раздел можно удалить, и после этого создать его уже правильно.
И вот пришло время «второй красной метки». Следующая команда запишет на диск новую таблицу разделов, которую мы только что создали. Самое время лишний раз всё перепроверить, и если в чем-то допустили ошибку, вернуться к началу и исправить ее. Если же все нормально, то двигаемся далее.
Итак, вводим команду «w» с клавиатуры:
Таблица разделов была изменена! Вызывается ioctl() для перечитывания таблицы разделов. Синхронизируются диски.
ВОТ ИМЕННО В ЭТОТ МОМЕНТ новая таблица разделов и была записана на флешку. После этого Вы снова вернетесь в консоль.
И вот наконец-то мы добрались до … форматирования 🙂 .
Команда форматирования раздела в Linux выглядит следующим образом:
mkfs [-V] [-t тип_фс] [опции_фс] устройство [размер]
Нам в нашем процессе форматирования флешки потребуется указать два параметра. Наиболее важным будет параметр -t — тип файловой системы. Если флешку планируется использовать с Windows, то нужно использовать файловую систему FAT (отформатировать флешку в NTFS Linux,увы, не сможет). В этом случае параметр указывается как «vfat» Если же флешка будет использоваться для работы только с Linux, то можно использовать файловые системы ext2 или ext3. В этих случаях ключу -t тип файловой системы прямо так и указываете (ext2 или ext3).
Второй параметр — это номер того раздела, который мы планируем отформатировать. Раньше мы уже определили, что флешку нашу Linux видит как диск /dev/sdc, а раздел на ней мы создавали 1-й. Но, перепроверим на всякий случай еще раз:
fdisk -l
и получим ответ
Устр-во Загр Начало Конец Блоки Id Система /dev/sdc1 1 1024 122850 83 Linux
Как видим, «каши» в таблице разделов флешки теперь не наблюдается, там всего один раздел /dev/sdc1, и именно его нам и нужно отформатировать. Чтобы отформатировать флешку в файловую систему FAT, вводим следующую команду:
mkfs -t vfat /dev/sdc1
Если хотим использовать файловую систему ext2, то команда должна быть следующая:
mkfs -t ext2 /dev/sdc1
Ну и для ext3, соответственно:
mkfs -t ext3 /dev/sdc1
Флешка будет отформатирована соответствующим образом.
Кстати, при самой первой попытке отформатировать диск в файловую систему FAT меня ждал сюрприз. Оказывается в моей Mandriva утилита для форматирования в FAT вынесена в отдельный пакет и по умолчанию не устанавливается. Пришлось установить ее следующей командой
urpmi dosfstools
Вот и все…
PS. Те же самые процедуры используются и для работы с жестким диском…