- Восстановление карты MicroSD
- Другие поломки
- dimio.org
- Проверить подключение flash
- Проверить, примонтирована ли флешка
- Проверить защиту от записи и геометрию
- Если нужно низкоуровневое форматирование — забить нулями
- Проверить на физические ошибки
- Разбиваем на разделы при помощи fdisk
- Последний шаг — создать файловые системы на разделах флешки
- 18 мыслей о “Низкоуровневое форматирование flash/sd/microsd под Linux”
- Расскажите про восстановление SD flash в ubuntu, например.
Восстановление карты MicroSD
Дмитрий Корнев
Иногда карты памяти дают сбой, из-за чего видеорегистраторы и другие устройства не могут с ними нормально работать, в том числе не могут отформатировать. Компьютеры на такие карточки тоже странно реагируют, например, тормозят или просто не видят их в системе.
У меня такое случилось с картой Adata 32GB MicroSDHC I. Не знаю по какой причине. Просто однажды обнаружил, что видеорегистратор «завис» и ни на что не реагирует. Отключение и подключение питания не помогло. Кнопка «Reset» в какой-то мере его оживила, но добраться до форматирования всё равно не удалось.
Используя карт-ридер я пробовал подключать карту к двум компьютерам с Windows 7 и 10, в результате чего оба впадали в ступор. Они долго тормозили, но так и не смогли даже просто показать данный носитель среди доступных в системе дисков.
Карту мне всё же удалось оживить! На помощь пришёл компьютер с Debian 7. Для описанных в статье манипуляций пойдет любая нормальная система Linux. Требуются утилиты, которые являются стандартными для многих дистрибутивов.
Все действия производятся через консоль.
Смотрим, какие диски есть в системе:
Более информативно можно так:
Карта памяти у меня в системе подключилась, как /dev/sdb . Устройство /dev/sdb1 — это уже её логический раздел. В теории, таких может быть несколько, что не суть важно.
Запускаем другую утилиту, указывая нужное основное устройство:
Получаем какой-никакой человеческий интерфейс с меню. Плюс отображается информация по выбранному дисковому устройству и его логическим разделам. На данном этапе следует убедиться, что это именно тот диск, который нужен!
У меня не было задачи спасти данные на карте памяти. Мне нужно было просто хоть как-нибудь её оживить. В связи с этим я сразу удалил существующий логический раздел, который по какой-то причине «сломался». На его месте создал новый. Порядок простой.
Удаляем все логические разделы на диске:
Должно получится одно цельное свободное пространство:
Создаём новый логический раздел. При этом выбираем тип «Primary»:
Размер раздела не меняем, так он займет всё пространство:
Поменяем тип (формат) созданного раздела:
Список возможных форматов с кодами:
Выбираем формат с кодом 0c :
Пока мы только выбрали нужные действия, записываем изменения:
Поскольку это важный шаг, в результате которого теряются данные, подтверждаем действие, напечатав yes :
В результате я получил полностью работоспособную карту памяти. Вся информация в процессе действий была удалена. Для верности, я выполнил форматирование карты под Windows, а также прогнал тест скорости CrystalDiskMark. Просто, чтобы убедиться, что с ней всё в полном порядке.
Другие поломки
Выше подробно описан лишь один из вариантов поломки и восстановления карты памяти. Бывают немного другие ситуации. Например, когда у меня возникли проблемы с 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 — сохранить изменения.
Последний шаг — создать файловые системы на разделах флешки
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. Какие мне потребуются инструменты.
Спасибо.
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!
Спасибо. Притащил обе флешки на работу, гоняю первую.
Источник