Восстановление карты памяти linux

Восстановление карты MicroSD

Дмитрий Корнев

Иногда карты памяти дают сбой, из-за чего видеорегистраторы и другие устройства не могут с ними нормально работать, в том числе не могут отформатировать. Компьютеры на такие карточки тоже странно реагируют, например, тормозят или просто не видят их в системе.

У меня такое случилось с картой Adata 32GB MicroSDHC I. Не знаю по какой причине. Просто однажды обнаружил, что видеорегистратор «завис» и ни на что не реагирует. Отключение и подключение питания не помогло. Кнопка «Reset» в какой-то мере его оживила, но добраться до форматирования всё равно не удалось.

Используя карт-ридер я пробовал подключать карту к двум компьютерам с Windows 7 и 10, в результате чего оба впадали в ступор. Они долго тормозили, но так и не смогли даже просто показать данный носитель среди доступных в системе дисков.

Карту мне всё же удалось оживить! На помощь пришёл компьютер с Debian 7. Для описанных в статье манипуляций пойдет любая нормальная система Linux. Требуются утилиты, которые являются стандартными для многих дистрибутивов.

Все действия производятся через консоль.

Смотрим, какие диски есть в системе:

Более информативно можно так:

Карта памяти у меня в системе подключилась, как /dev/sdb . Устройство /dev/sdb1 — это уже её логический раздел. В теории, таких может быть несколько, что не суть важно.

Запускаем другую утилиту, указывая нужное основное устройство:

Получаем какой-никакой человеческий интерфейс с меню. Плюс отображается информация по выбранному дисковому устройству и его логическим разделам. На данном этапе следует убедиться, что это именно тот диск, который нужен!

У меня не было задачи спасти данные на карте памяти. Мне нужно было просто хоть как-нибудь её оживить. В связи с этим я сразу удалил существующий логический раздел, который по какой-то причине «сломался». На его месте создал новый. Порядок простой.

Удаляем все логические разделы на диске:

Должно получится одно цельное свободное пространство:

Создаём новый логический раздел. При этом выбираем тип «Primary»:

Размер раздела не меняем, так он займет всё пространство:

Поменяем тип (формат) созданного раздела:

Список возможных форматов с кодами:

Выбираем формат с кодом 0c :

Пока мы только выбрали нужные действия, записываем изменения:

Поскольку это важный шаг, в результате которого теряются данные, подтверждаем действие, напечатав yes :

В результате я получил полностью работоспособную карту памяти. Вся информация в процессе действий была удалена. Для верности, я выполнил форматирование карты под Windows, а также прогнал тест скорости CrystalDiskMark. Просто, чтобы убедиться, что с ней всё в полном порядке.

Читайте также:  Boot camp boot windows from mac

Другие поломки

Выше подробно описан лишь один из вариантов поломки и восстановления карты памяти. Бывают немного другие ситуации. Например, когда у меня возникли проблемы с Kingston 32GB MicroSDHC I и я стал разбираться, оказалось, что логический раздел там не «сломался», а просто бесследно пропал. Подключая карту к видеорегистратору, он не мог на неё записывать и не мог её отформатировать. Добраться до функции форматирования в этот раз можно было. Компьютер при виде такой карты не тормозил, а просто никак не реагировал.

Порядок восстановления этой карты был очень похожим. Снова использовалась утилита cfdisk , но операционная система была Elementary OS. Это та же Ubuntu, которая славится своей дружелюбностью. Здесь интерфейс утилиты оказался на русском языке.

Чтобы с утилитой можно было полноценно работать я предварительно перешёл в режим root:

Логический раздел на карте памяти удалять не пришлось. Его не было. На пустом месте просто был создан новый. В результате карточка тоже благополучно ожила.

К сожалению, иногда случаются безвыходные ситуации, когда карты памяти переходят в режим «Read Only». То есть, данные с них читаются, но записать новые нельзя. В данном случае пересоздание дискового раздела не поможет. Точнее сказать — это невозможно, поскольку для этого тоже требуются операции записи.

Источник

dimio.org

Несколько раз приходилось форматировать флешки (к которым относятся и различные 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 через плохой кард-ридер — даже когда не выскакивали ошибки ввода-вывода при операциях — контрольные суммы не совпадали, с заменой кард-ридера проблема ушла).
Пример:

Ну и для полного счастья при желании:

Разбиваем на разделы при помощи fdisk

fdisk / dev / sdb
Опции: m — справка, d — удалить раздел, p — просмотреть список разделов, n — создать раздел, t — поменять тип раздела, w — сохранить изменения.

Читайте также:  Назначение шкалы времени windows movie maker

Последний шаг — создать файловые системы на разделах флешки

mkfs.ext < 2 , 3 , 4 >/ dev / sdbX
где X — порядковый номер раздела, на котором нужно создать файловую систему.
Также полезны: mkfs.msdos, mkfs.vfat (создаёт «стандартную» файловую систему флешек — vfat).

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

18 мыслей о “Низкоуровневое форматирование flash/sd/microsd под Linux”

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

Спасибо! Старался написать понятно, хоть и кратенько.

Открыл несколько вкладок, чтобы вспомнить как вообще работать, и пошло поехало, первый сайт был с картинками выводом и красивым текстом, но когда увидел что тут, сразу понял что то что нужно!! Команды которые я видел не раз но не разу не пользовался!)) Спасибо!

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

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

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

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

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

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

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

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

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

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

Источник

Расскажите про восстановление SD flash в ubuntu, например.

Собственно, есть ноут с убунтой и пара старых SD флешек, которые я отложил в своё время по причине их отказа. Ёмкости 32 и 64 гиг. Вот задумался попробовать их оживить, если это возможно. У меня два вопроса:
1. Каков алгоритм проверки/оживления карт SD(HC) flash
2. Какие мне потребуются инструменты.
Спасибо.

Читайте также:  Linux kernel file directory

fdisk -l для начала. Если определяется, dd в помощь, ну или гуёвину какую нибудь. gparted к примеру.

1. Обратись в специализированное заведение. 2. Деньги, ноги. Пожалуйста.

Не, так не интересно. Мне не данные с них нужны. Мне они сами просто рабочими нужны. Если это возможно.

А что подразумевается под «отказом»?

да хрен их знает, не смотрел еще. Перестало читаться в устройстве.

Припоминаю, что одна дала отказ после попытки переткнуть её в мой старый смарт. Возможно, смарт не умеет HC, а она была HC. Но я не уверен. Может быть, просто «что-то пошло не так». Вторая. Не помню. ХЗ, короче.

Под виндой посстанавливал битую флешку софтиной USB-doctor ЕМНИП. Плюс еще в каждого производителя есть иногда специальный софт для восстановления и починки флешек (у трансенда точно есть).

Ну попробуй убить таблицу разделов:
dd if=/dev/urandom of=/dev/sdX bs=512 count=1000

Потом при помощи GParted создай новую и FAT32 раздел.

Мне они сами просто рабочими нужны. Если это возможно.

Если проблема на уровне железа или прошивки флешки, я бы остерёгся. Вдруг они опять внезапно откажут, даже если ты их починишь?

Если проблема на уровне «слетела таблица разделов», то переформатируй, да и всё.

Если проблема на уровне железа или прошивки флешки, я бы остерёгся. Вдруг они опять внезапно откажут, даже если ты их починишь?

мммм, я переживу, наверное. Не думал еще об этом. А что там за проблемы могут быть?

А что там за проблемы могут быть?

Ну, перегорело что-нибудь, напримеи. Они же от чего-то у тебя накрылись?

А если, допустим, я бы захотел попробовать восстановить там данные? Просто из интереса. Ничего невосстановимого там не было, в любом случае. Ну, может быть, последние фотки если только. Чем бы мне тогда следовало воспользоваться?

ключевое слово привело меня сюда https://help.ubuntu.com/community/DataRecovery Спасибо, посмотрю.
upd Забыл «внезапно» ))))))

Хреново быть второсортным плагиатчиком, да? 🙂

К ардуине через SPI подключи и тестовые скетчи либы SdFat погоняй, например.

Еще лет 10 назад возникла такая трабля. Гугль сразу выдал ссылку на «Программный ремонт USB flash в Linux». Для проверки сейчас погуглил — она же в результатах стоИт первой, вторая — https://www.prolinux.org/post/programmnyi-remont-usb-flash-nakopitelei-v-linux/. Ну а я немножко упростил:
1. В консоли от суперюзера

Для ускорения процесса можно добавить че-нить типа bs=1M.

2.GParted:
2а. Устройство — Создать таблицу разделов. GParted скажет, что по умолчанию создается таблица разделов msdos — для fat32 или exfat годится.
2б. Раздел — новый — выбираем, чего хочем.
2в. Voila!

Спасибо. Притащил обе флешки на работу, гоняю первую.

Источник

Оцените статью