Дело об ошибке копирования
Однажды один из моих друзей обратился ко мне за помощью. Он поведал мне, что столкнулся с проблемой при копировании изображений на свой USB-драйв. После копирования более 200 фотографий неожиданно возникла ошибка, после которой стало невозможным скопировать изображение и стало появляться следующее сообщение:
К сожалению, сообщение "Невозможно создать файл или папку" никоим образом не указывало на причину проблемы и не сообщало, где следует искать решение. Мой знакомый был весьма сообразительным, поэтому, прежде чем обратиться ко мне, проверил, что места на диске было предостаточно, но все-таки запустил утилиту Chkdsk для проверки памяти на повреждения. Однако, результатов это не дало, хотя ошибка продолжала неустанно появляться при попытке копирования изображений на флэш-драйв.
Я, со своей стороны, я попросил его запустить Process Monitor, утилиту, которая в реальном времени регистрирует все обращения к файловой системе и реестру, что теоретически позволяет определить причину различных сбоев и ошибок ОС. Затем он отправил мне отчет утилиты в формате PML и я открыл его. После установки фильтра по букве диска, а затем фильтра операций, относящихся непосредственно к копированию информации, я стал прочесывать отчет на наличие ошибок. Собственно, мне не потребовалось много времени, поскольку в последней строке отчета и была ошибка, вызывающая диалог системы:
С целью экономии пространства на рабочем столе компьютера Process Monitor добавляет к отображаемым ошибкам префикс "STATUS", поэтому действительной системной ошибкой в данном случае являлась STATUS_CANNOT_MAKE. Лично я никогда не слышал и, тем более, не видел подобную ошибку. Кроме того, вместо имени ошибки Process Monitor показывал ее код - 0xc00002ea, поэтому пришлось поискать в файле Ntstatus.h из Windows Device Driver Kit, а затем добавить в Process Monitor функцию, конвертирующую коды ошибок в текст.
Тогда мне удалось отыскать ошибку в исходном коде Windows, но что насчет тех, кто не имеет возможности покопаться в исходном коде ОС. Как им решить данную проблему? Поиск привел меня к старой ветке в новостной группе для разработчиков файловой системы Windows:
Безусловно, раздел был отформатирован под файловую систему FAT и множество файлов, включая файлы с длиными именами, вполне могли использовать все доступные 512 корневых папок.
Проблему удалось-таки решить. Я посоветовал моему приятелю два варианта: 1) создать в корневой директории подпапку и скопировать оставшиеся файлы туда или 2) отформатировать флэш-драйв под файловую систему FAT32, что уберет ограничения по числу файлов/папок в корневой директории диска.
Тем не менее, один вопрос остался нерешенным. Почему диск был форматирован под FAT вместо FAT32? Причина кроется и в производителе USB-драйва и в диалоге форматирования, используемом в Windows. Я не уверен, но по-моему большинство производителей форматируют выпускаемые накопители под FAT, поскольку данная система гарантированно работает там, где другие файловые системы, как FAT32, не поддерживаются. Например в DOS 6 и Windows 95.
Что до Windows, то я всегда думал, что по умолчанию предлагается форматировать диск под FAT32, но диалог форматирования для одного из моих устройств показал, что это не так:
Мне не удалось найти рекомендации по созданию данного диалога, но быстрый взгляд на исходный код показал, что Windows по умолчанию предлагает форматировать под FAT все не-CD-ROM-подобные извлекаемые устройства размером менее 4GB.
Думаю, что дело об ошибке копирования можно закрыть, но я чувствую себя обязанным сделать два дела: 1) попытаться сделать сообщения об ошибках более понятными и 2) лоббировать изменение формата, используемого по умолчанию для форматирования флэш-драйвов, на FAT32. Пожелайте мне удачи.
Источник:
Перевод: deeper2k
Комментарии
Да у меня была такая ошибка. Как при подсоединении телефона как флэш-драйва, так и обычного флэш-накопителя
>> запустил утилиту Chkdsk для проверки памяти на повреждения
А что Chkdsk уже научился проверять память?
Ошибку в переводе исправте
а что нет? флаг /f зачем нужен? память есть оперативная, а есть постоянная (читай жесткий диск)
По теме
- Устраняем конфликт подписей дисков
- Дело о загадочных звуках
- Дело об ооооочень долгом входе в систему
- Дело об ошибке службы установки
- Дело о загадочных перезагрузках
- Дело о зависшей программе запуска игры
- Анализируем вирус Stuxnet с помощью инструментов Sysinternals (ч.3)
- Анализируем вирус Stuxnet с помощью инструментов Sysinternals (ч.2)
- Анализируем вирус Stuxnet с помощью инструментов Sysinternals (ч.1)
- Дело о нерабочей системе