Опрос
Вы участвуете в программе Windows Insider?
Популярные новости
Обсуждаемые новости

18.10.2007 17:51 | deeper2k

Однажды один из моих друзей обратился ко мне за помощью. Он поведал мне, что столкнулся с проблемой при копировании изображений на свой 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. Пожелайте мне удачи.


Источник: http://blogs.technet.com/markrussinovich
Перевод: deeper2k

Комментарии

Не в сети

Что ж сказать, удачи, жалко чувака, делать ему нефига

18.10.07 19:11
0
Не в сети

Во были времена.....

18.10.07 20:40
0
Не в сети

Да у меня была такая ошибка. Как при подсоединении телефона как флэш-драйва, так и обычного флэш-накопителя

19.10.07 01:07
0
Не в сети

удачи)))

19.10.07 16:42
0
Не в сети

500 метров форматровать в FAT32... Всё наместе?

19.10.07 16:56
0
Не в сети

>> запустил утилиту Chkdsk для проверки памяти на повреждения
А что Chkdsk уже научился проверять память?

Ошибку в переводе исправте

22.10.07 10:00
0
Не в сети

а что нет? флаг /f зачем нужен? память есть оперативная, а есть постоянная (читай жесткий диск)

24.10.07 23:42
0
Для возможности комментировать войдите в 1 клик через

По теме

Акции MSFT
420.55 0.00
Акции торгуются с 17:30 до 00:00 по Москве
Все права принадлежат © ms insider @thevista.ru, 2022
Сайт является источником уникальной информации о семействе операционных систем Windows и других продуктах Microsoft. Перепечатка материалов возможна только с разрешения редакции.
Работает на WMS 2.34 (Страница создана за 0.041 секунд (Общее время SQL: 0.025 секунд - SQL запросов: 67 - Среднее время SQL: 0.00037 секунд))
Top.Mail.Ru