Несколько раз приходилось форматировать флешки (к которым относятся и различные 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
поставить, чтобы создавать эту ФС.
Форматирование успешно окончено!
Если что-то осталось непонятным или есть дополнения и замечания – добро пожаловать в комментарии! 🙂