Иногда карты памяти дают сбой, из-за чего видеорегистраторы и другие устройства не могут с ними нормально работать, в том числе не могут отформатировать. Компьютеры на такие карточки тоже странно реагируют, например, тормозят или просто не видят их в системе.
У меня такое случилось с картой Adata 32GB MicroSDHC I. Не знаю по какой причине. Просто однажды обнаружил, что видеорегистратор «завис» и ни на что не реагирует. Отключение и подключение питания не помогло. Кнопка «Reset» в какой-то мере его оживила, но добраться до форматирования всё равно не удалось.
Используя карт-ридер я пробовал подключать карту к двум компьютерам с Windows 7 и 10, в результате чего оба впадали в ступор. Они долго тормозили, но так и не смогли даже просто показать данный носитель среди доступных в системе дисков.
Карту мне всё же удалось оживить! На помощь пришёл компьютер с Debian 7. Для описанных в статье манипуляций пойдет любая нормальная система Linux. Требуются утилиты, которые являются стандартными для многих дистрибутивов.
Все действия производятся через консоль.
Смотрим, какие диски есть в системе:
ls /dev | grep sd
Более информативно можно так:
sfdisk -l
Карта памяти у меня в системе подключилась, как /dev/sdb
. Устройство /dev/sdb1
— это уже её логический раздел. В теории, таких может быть несколько, что не суть важно.
Запускаем другую утилиту, указывая нужное основное устройство:
cfdisk /dev/sdb
Получаем какой-никакой человеческий интерфейс с меню. Плюс отображается информация по выбранному дисковому устройству и его логическим разделам. На данном этапе следует убедиться, что это именно тот диск, который нужен!
У меня не было задачи спасти данные на карте памяти. Мне нужно было просто хоть как-нибудь её оживить. В связи с этим я сразу удалил существующий логический раздел, который по какой-то причине «сломался». На его месте создал новый. Порядок простой.
Удаляем все логические разделы на диске:
Должно получится одно цельное свободное пространство:
Создаём новый логический раздел. При этом выбираем тип «Primary»:
Размер раздела не меняем, так он займет всё пространство:
Поменяем тип (формат) созданного раздела:
Список возможных форматов с кодами:
Выбираем формат с кодом 0c
:
Пока мы только выбрали нужные действия, записываем изменения:
Поскольку это важный шаг, в результате которого теряются данные, подтверждаем действие, напечатав yes
:
Готово, выходим:
В результате я получил полностью работоспособную карту памяти. Вся информация в процессе действий была удалена. Для верности, я выполнил форматирование карты под Windows, а также прогнал тест скорости CrystalDiskMark. Просто, чтобы убедиться, что с ней всё в полном порядке.
Другие поломки
Выше подробно описан лишь один из вариантов поломки и восстановления карты памяти. Бывают немного другие ситуации. Например, когда у меня возникли проблемы с Kingston 32GB MicroSDHC I и я стал разбираться, оказалось, что логический раздел там не «сломался», а просто бесследно пропал. Подключая карту к видеорегистратору, он не мог на неё записывать и не мог её отформатировать. Добраться до функции форматирования в этот раз можно было. Компьютер при виде такой карты не тормозил, а просто никак не реагировал.
Порядок восстановления этой карты был очень похожим. Снова использовалась утилита cfdisk
, но операционная система была Elementary OS. Это та же Ubuntu, которая славится своей дружелюбностью. Здесь интерфейс утилиты оказался на русском языке.
Чтобы с утилитой можно было полноценно работать я предварительно перешёл в режим root:
sudo su
Логический раздел на карте памяти удалять не пришлось. Его не было. На пустом месте просто был создан новый. В результате карточка тоже благополучно ожила.
К сожалению, иногда случаются безвыходные ситуации, когда карты памяти переходят в режим «Read Only». То есть, данные с них читаются, но записать новые нельзя. В данном случае пересоздание дискового раздела не поможет. Точнее сказать — это невозможно, поскольку для этого тоже требуются операции записи.