Низкоуровневое форматирование flash/sd/microsd под Linux

Несколько раз приходилось форматировать флешки (к которым относятся и различные 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).

Если что-то осталось непонятным или есть дополнения и замечания — добро пожаловать в комментарии! 🙂

каталог интернет магазинов Москвы



Category Рубрики: *NIX, Памятки, Полезности | Tag Метки: , | Comments 16 комментариев »

16 комментариев

  1. Владимир says:

    Лучшая памятка, которую нашёл в интернете. dimio благодарность!

  2. Аноним says:

    Помогите пож-ста на эту тему
    lsusb выдает:
    Bus 001 Device 005: ID 1b1c:0a60 Corsair

    т.е. флешка вставлена

    Дисковая утилита тоже видит, что подключена ( /dev/sdb ) Форматировать отказывается, пишет — Носитель отсутствует.

    hdparm /dev/sdb выдает:
    /dev/sdb: Permission denied

    любые дальнейшие действия — Отказано в доступе 🙁

  3. Igor says:

    Предыдущий пост от меня был.
    Флешка Corsair Survivor 8G

    • dimio says:

      Отмонтировать не забываете? И уверены, что она вообще живая — может выдернули неудачно без отмонтирования и контроллер слетел (такое у меня было, лечилось утилитой от производителя). Или USB-гнездо переполюсовано было и флешка померла после общения с ним.
      И да — все операции по форматриованию и разбивке требуют прав root.

      • Igor says:

        а есть утилиты от производителя под линукс?
        под виндовсом вообще грустно — флешка то есть — то нет — появляется на секунду и исчезает
        пробовал утилиты от производителя под виндовс — в упор ее не видят
        … ну конечно же root 🙂

        • dimio says:

          В наличии фирменных утилит под Linux я сомневаюсь, но вообще — не искал никогда. А сам USB-порт рабочий? У меня на одном компе разболталось гнездо и точно так же себя флешка вела — контакт был плохой.

          • Igor says:

            Конечно, порт рабочий (к тому же пробовал на разные) + повторюсь, что lsusb отрабатывает как положено.
            Вчера запускал R-studio под линуксом — флешку видит, но кнопка Scan неактивна — ничего сделать нельзя.
            Может еще что-то по форматированию флешек для Линукса есть? — в Линуксе хоть флешка на /dev/sdb стабильно видна

            • dimio says:

              lsusb опрашивает один раз и может попадать как раз на момент работоспособности. У меня была проблема, когда процесс разбивки и форматирования проходил внешне нормально, но не совпадали контрольные суммы — виной был глючный кард-ридер, который периодически отваливался, т.е. до сравнения контрольных сумм уверенным в результате быть нельзя.
              К сожалению, все мои знания исчерпываются этой заметкой — больше ничего не могу подсказать. Я бы грешил на контроллер флешки, раз всё остальное в порядке. Полагаю, что ответ можно получить на хоботе (ixbt.com)

  4. Александр says:

    я прошу прощения, а что делать , если вообще не совпадают контрольные суммы?
    флешка когда-то перестала работать и даже не определялась ни в виндовс ни в линукс, а теперь чудным образом определяется (в виндовс определяется но не форматируется,,а пишет, что надо отформатировать)…или ей уже капец…

    • dimio says:

      Или поискать утилиту от производителя, которая может сбросить чипсет управляющий, или проверить надёжность контакта USB-разъема. Хотя в нынешнее время по-моему проще поменять на новую.

      • Александр says:

        dimio, спасибо большое и за совет и за оперативность!
        ЗЫ: это я чисто для научного интереса, у меня кроме этой есть ещё флешки..просто если бы её оживить.. то можна было бы из неё например сделать востановочную флешку-брелок с установленым линуксом

  5. Галымбек says:

    Пожалуйста помоги! У меня такая проблема. У меня флешка 1Gb. И он почему то принимает только 20-18 песни а остальное говорит что «Формат не поддерживает». Почему?

  6. Приветствую всех! ситуация выглядит следующим образом: Имеются две неработоспособные флешки microsd одна на 4GB вторая на 8GB. При попытке забить их нулями процедура повторяется до бесконечности, тоесть процесс не завершаеться не через час не через десять часов. Фирменные утилиты в упор их не видят. Может что посоветуете? Или им пора в мусор?

Добавить комментарий