Несколько раз приходилось форматировать флешки (к которым относятся и различные SD и microSD карточки), а поскольку происходит это довольно редко — вынужден был лезть в гугл. Конспективная памятка по форматированию флешек под Linux:
Проверить подключение flash
fdisk -l
Выведет список подключенных дисков и их разделов. Обычно флешка — /dev/sdb, но нужно обязательно проверить, так ли это!
Проверить, примонтирована ли флешка
df -h
Если флешка примонтирована — покажет это и точку монтирования. Перед форматированием — отмонтировать: umount /dev/sdb
.
Проверить защиту от записи и геометрию
При желании — можно проверить защиту от записи и геометрию (защита от записи в линуксе не важна):hdparm /dev/sdb
Если нужно низкоуровневое форматирование — забить нулями
dd if=/dev/zero of=/dev/sdb
В выводе покажет объем флешки (должен соответствовать заявленному), скорость и время записи. Также покажет, сколько было записано байт на флешку, что полезно при проверке флешки на физические ошибки (см. ниже).
Проверить на физические ошибки
head -c N /dev/sdb | md5sum
head -c N /dev/zero | md5sum
где N равно числу байт, записанных на флешку при помощи dd. Если контрольные суммы не совпадают — флешка «битая» или были ошибки записи (в реальности сталкивался с форматированием microSD через плохой кард-ридер — даже когда не выскакивали ошибки ввода-вывода при операциях — контрольные суммы не совпадали, с заменой кард-ридера проблема ушла).
Пример:
dimio@ibm $ dd if=/dev/zero of=/dev/sdb
dd: запись в «/dev/sdb»: На устройстве кончилось место
3932161+0 записей считано
3932160+0 записей написано
скопировано 2013265920 байт (2,0 GB), 1010,99 c, 2,0 MB/c
dimio@ibm $ head -c 2013265920 /dev/zero | md5sum
5d0fd6273bed1c500c6fc22d86a59630 -
dimio@ibm $ head -c 2013265920 /dev/sdb | md5sum
5d0fd6273bed1c500c6fc22d86a59630 -
Ну и для полного счастья при желании:
dimio@ibm $ perl -we ' > print "OK" if q{5d0fd6273bed1c500c6fc22d86a59630} > eq q{5d0fd6273bed1c500c6fc22d86a59630};' OK
Разбиваем на разделы при помощи fdisk
fdisk /dev/sdb
Опции: m — справка, d — удалить раздел, p — просмотреть список разделов, n — создать раздел, t — поменять тип раздела, w — сохранить изменения.
Последний шаг — создать файловые системы на разделах флешки
mkfs.ext{2,3,4} /dev/sdbX
где X — порядковый номер раздела, на котором нужно создать файловую систему.
Также полезны
mkfs.msdos, mkfs.vfat (создаёт «стандартную» файловую систему флешек — vfat
).
mkfs.ntfs — тут понятно, создаёт NTFS, не на всяком Андроид-устройстве может читаться потом.
mkfs.exfat — «расширенная fat», на старых устройствах не прочитается, зато файлы большого размера поддерживает, например (как и NTFS). В Убунте надо пакет exfatprogs
поставить, чтобы создавать эту ФС.
Форматирование успешно окончено!
Если что-то осталось непонятным или есть дополнения и замечания — добро пожаловать в комментарии! 🙂