Flashnul - проверка работоспособности Flash-памяти

Материал из ISRAPDA.

Перейти к: навигация, поиск

Содержание

[править] Вводная

Поучаствовав в обсуждении этой проблемы, задался мыслью о необходимости программки для диагностирования неполадок, возникающих при использовании Flash-памяти (USB-Flash, IDE-Flash, SecureDigital, MMC,MemoryStik, SmartMedia, XD, CompactFlash и т.д.). Сменные носители на базе flash-памяти в силу ряда особенностей (hot-plug подключение, воздействие статики, влаги, температуры, механических воздействий при траспортировке, естественный износ из-за ограниченного числа циклов чтения/записи) относительно часто выходят из строя. Вот здесь возникает вопрос выкинуть или все таки попытаться исправить? И хотя данная програмка предназначена для диагностирования неполадок, ее результаты дают 90% уверенность что делать: выкидывать или исправлять. Все конечно же зависит от степени повреждения. Если простые дефекты вроде "не определяется", "ошибки записи", обнаруживаются относительно просто, то диагностика более сложных дефектов представляет из себя весьма нетривиальную задачу.

[править] Проблемы flash-накопителей

Вот ряд дефектов, которые характерны для flash-накопителей:

  1. Флешка не определяется при подключении к компу(при подключении ничего не происходит).
    Вероятная причина,- сгоревший предохранитель или повреждается плата.
  2. Флешка определяется неверно (windows при подключении пишет USB device not recognized)
    Вероятная причина,- повреждён контроллер устройства.
  3. Ошибки записи/чтения (при записи выдаётся сообщения вида "error writing ...", "delayed
    writing failed", "i/o operation failed"). Вероятная причина,-
    Повреждение/износ flash-памяти, повреждение контроллера.
  4. Флешка не форматируется (при попытке форматирования выдаётся сообщение об ошибке).
    Вероятная причина,- сбой памяти, контроллера, логические ошибки.

Часть дефектов может быть устранена утилитами производителя (они доступны не всегда) путём низкоуровнего форматирования.
Однако существуют дефекты, целиком и полностью являющиеся "программными" - т.е. не связанными с аппаратными ошибками. К таким относятся неправильные размеры разделов, ошибки файловой системы. Некоторые особо удачные варианты partition table способны просто "завесить" windows при подключении устройства.
Так же существуют весьма специфические сбои контроллера памяти на устройстве, приводящие к записи данных в произвольные области памяти. (пишут в один файл, оказывается в другом). Такие дефекты сложно обнаружить простым копированием данных на устройство и обратно.
Для диагностики ряда дефектов и очистки устройства от программных сбоев и создана утилита flashnul.

[править] Описание утилиты flashnul

Список выполняемых операций:

  • Тест чтения - проверка доступности каждого сектора носителя (дублирует функциональность обычных HDD-тестов).
  • Тест записи - проверка возможности записи каждого сектора носителя (дублирует функциональность большинства HDD-тестов).
  • Тест сохранности записанной информации - проверка соответствия записанной и прочитанной информации (аналогично функциональности memtest, но в отношении flash-накопителей).
  • Недеструктивная проверка чтения/записи позволяет проверить доступность на запись каждого сектора устройства, не теряя записанные данные (после проверки блока данные, содержащиеся в этом блоке, записываются обратно).
  • Сохранение образа содержимого устройства - посекторное сохранение всего (или части) содержимого в файл (аналогично функциональности dd из UNIX).
  • Загрузка образа в устройство - посекторная запись образа в устройство (аналогично функциональности dd из UNIX).

Flashnul - это средство диагностики, а не лечения устройств, хотя некоторые тесты могут привести к полной потери данных. Если тест говорит, что устройство работает некорректно, значит, оно работает некорректно.

Приведу пару примеров как это работает. Проверял на своей флешке LG 256МБ.

[править] Примеры работы

Внимание: Большая часть тестов деструктивные - они уничтожают информацию с flash-устройства, перед использованием рекомендуется сделать резеврную копию данных.
КАТЕГОРИЧЕСКИ запрещено отключение устройства во время выполнения теста, это может привести к физическому повреждению устройства.


Программа не имеет графического интерфейса, она работает из командной строки (cmd). Программа бесплатна, последнюю версию программы можно взять с официального сайта shounen.ru
Распаковываем архив где-нибудь у себя на компе и затем копируем файл flashnul.exe в папку %systemroot%\system32. Для этого идем в Start > Run, в строке пишем %systemroot%\system32 и копируем flashnul.exe в открывшееся окно папки system32. Закрываем все окна, затем опять идем в Start > Run, и пишем в строке команду cmd.

Утилита работает с привязкой к букве, которая присваивается операционной системой флешке, или номеру, который также присваивается любому подключенному устройству. Изнать, какой номер присвоен нашей флешке можно запустив утилиту flashnul с ключем -p. Синтаксис команды такой: flashnul.exe -p:

Изображение:Flushnul1.jpg

Теперь, зная какой номер соответствует нашей флешке, можно вывести всю информацию о ней, запустив команду flashnul.exe 1:

Изображение:Flushnul2.jpg

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

Ну, и теперь самое время проверить нашу флешку на читабельность:

flashnul.exe 1 -R:

Изображение:Flushnul3.jpg

Как видно из этого скриншота, информация считывается с каждой физической ячейки,- адрес ячейки отображается как 0х1500000. В моем случае ошибок чтения обнаружено не было. Но если ошибка обнаруживается, то на экран выводится инфа об адресе проблемной ячейки. И здесь теперь два варианта,- или битая информация или же адрес ячейки, в которой хранится информация не соответствует тому, что прописано в файловой таблице на флешке. Как такое возможно,- это отдельный разговор. Вылечить подобную проблемму вполне реально (правда информация будет утеряна) заполнением этого сектора 0. Как я уже говорил, в моем случае ошибок обнаружено не было и в конце теста на экране появилась информация с результатами:

Изображение:Flushnul4.jpg]

Теперь более агрессивный вид теста: flashnul.exe 1 -Т.

Внимание! Выполнение этого теста приводит к полной потере информации!

Суть этого теста состоит в том, что сначала информация записывается на флешку, а затем считывается. При этом проверяется соответствие физических адресов, в которых записана информация, с записями в файловой таблице:

Изображение:Flushnul5.jpg

Также как и в первый раз, по окончании теста, на экран выводится собранная информация:

Изображение:Flushnul6.jpg

Это лишь небольшая часть из того, что может эта маленькая и очень полезная програмка. Все остальные ее возможности и способы применения очень хорошо описаны на сайте автора.

Если у кого возникнут трудности с использованием програмки (еще раз подчеркиваю: неправильное использование может полностью повредить устройство или привести к полной потери информации) обращайтесь на форум.

Igor7 18:21, 13 декабря 2007 (IST)

Личные инструменты