Non-Stop Copy v1.03 (C) Дмитрий Сергеев, 2005 mailto:dmitrys@nm.ru Официальный сайт разработчика: http://dmitrys.nm.ru СИСТЕМНЫЕ ТРЕБОВАНИЯ Windows 95/98/ME/NT4/2K/XP/2K3 и выше Смотрите раздел "СОВМЕСТИМОСТЬ" для дополнительной информации. Конфигурация компьютера – любая, на которой способна запуститься ваша операционная система. ОПИСАНИЕ Программа позволяет копировать поврежденные файлы с любых носителей, причем не читаемые сектора заменяются нулевыми байтами. Также, пытается восстанавливать информацию из плохих секторов. Программа не использует никаких низкоуровневых методов чтения информации, в результате чего будет корректно работать на любых типах носителей и на любых файловых системах, поддерживаемых операционной системой. Процесс копирования файла разделен на 4 этапа: быстрое копирование, детализация, точная детализация, копирование плохих секторов. Цель этого разделения – за как можно меньшее время скопировать как можно больше хороших секторов, и на каждом этапе получать все более детальную картину плохих секторов. Быстрое копирование. Копирует файл довольно большими блоками. Размер этого блока определяется опцией "Буфер быстрого копирования"; если включена опция "Авто", то буфер равен 1mb при копировании с быстрых носителей (CD, HDD), и 64kb при копировании с медленных носителей (FDD). Если внутри такого блока окажется плохой сектор, весь блок будет считаться плохим. В результате достигается быстрый пропуск групп плохих секторов и получается довольно приблизительная картина плохих участков файла. Детализация. Каждый плохой сектор копирует по секторам до первого плохого сектора, сперва двигаясь от начала плохого блока, затем от конца плохого блока. В результате при малых затратах времени получается более точная картина групп плохих секторов. Точная детализация. Пытается скопировать каждый сектор во всех плохих участках. По окончанию этого этапа получается реальная картина плохих секторов. Копирование плохих секторов. Пытается скопировать каждый плохой сектор, при этом делает подряд несколько попыток чтения. Количество попыток определяется опцией "Попыток скопировать плохой сектор". Именно на этом основана способность программы восстанавливать информацию из плохих секторов, так как в некоторых случаях (например старый, но не поцарапанный CD-R диск) есть вероятность, что сектор все-таки считается. Программу можно настроить таким образом, чтобы последний этап повторяется до тех пор, пока весь файл не будет успешно скопирован. Потому программа и называется – Non-Stop Copy. Этого поведения можно добиться с помощью опции "Макс. кол-во циклов 'плохого копирования'", которая определяет, сколько раз будет повторен последний этап. В процессе копирования программа пытается контролировать время, которое будет затрачено на ту или иную операцию чтения. Размер этих временных интервалов устанавливается опциями в разделе "Таймауты чтения данных". К сожалению, срабатывает ли оно или нет, точно сказать сложно. Программа честно пытается отменить операцию чтения по истечении указанного времени, а остальное зависит от операционной системы, а точнее от установленных драйверов, и самого привода. Информация о копируемом файле и карта плохих секторов сохраняется в каталоге конечного файла в файле с тем же именем, что и конечный файл, с добавлением расширения ".nsc". Этот файл в программе называется информационный файл или инфофайл. Если копируемый файл полностью скопирован и не содержит плохих секторов, то инфофайл не сохраняется или удаляется, если был сохранен раньше. В процессе копирования инфофайл автоматически сохраняется с периодичностью, которая определяется опцией "Период автосохранения файла информации". ОПЦИИ "Буфер быстрого копирования" - определяет размер блока при быстром копировании. При включенной опции "Авто" это значение выбирается автоматически в зависимости от типа носителя, на котором расположен исходный файл (1mb при копировании с быстрых носителей (CD, HDD), и 64kb при копировании с медленных носителей (FDD)). "Попыток скопировать плохой сектор" - определяет количество попыток скопировать плохой сектор на этапе "Копирование плохих секторов". "Макс. кол-во циклов 'плохого копирования'" - определяет, сколько раз будет повторен этап "Копирование плохих секторов", при условии наличия плохих секторов. Если это значение равно 0, количество повторов не ограничено. Раздел "Таймауты чтения данных" - значения в этом разделе определяют для каждого этапа через сколько миллисекунд будет отменена операция чтения, а считываемый участок файла помечен как плохой. Не увлекайтесь чрезмерным уменьшением этих значений, так как программа может начать помечать действительно читающиеся участки файла как плохие. "Период автосохранения файла информации" - определяет в миллисекундах, как часто в процессе копирования будет автоматически сохраняться инфофайл. "Таймаут отмены процесса копирования" - определяет через сколько миллисекунд будет завершен поток копирования, в случае если он не реагирует на запрос пользователя об остановке копирования. Дело в том, что копирование происходит в отдельном потоке программы. Когда пользователь останавливает копирование, программа отдает потоку команду остановиться, но иногда, например при чтении плохих секторов на CD-ROM'ах, поток копирования ни на что не реагирует. В этом случае программа ждет указанное время, а затем прерывает работу потока. Однако, данная опция не определяет время, через которое в любом случае будет остановлено копирование, так как остановка не ограничивается только завершением потока копирования. КОМАНДНАЯ СТРОКА Программа поддерживает командную строку. Использование: nscopy.exe [ИсходныйФайл] [КонечныйФайл] [/e] [/p] [/w] [/c] или nscopy.exe [<Файл или NSC инфофайл> /i] где: ИсходныйФайл - имя исходного (копируемого) файла КонечныйФайл - имя конечного файла (куда копировать) /e - выйти из программы после завершения копирования /p - выключить компьютер после завершения копирования /w - не начинать копирование сразу /c - показать диалог выбора файла /i - показать информацию по копируемому файлу СОВМЕСТИМОСТЬ Программа тестировалась на следующих операционных системах: Windows 95 OSR2, Windows 98 SE, Windows NT4 SP6, Windows 2000 SP4, Windows XP SP2, Windows 2003 Server. Полная функциональность обеспечивается на линейке Windows NT (NT4/2K/XP/2k3/...) Под Windows 9x (95/98/ME) программа имеет одно ограничение – не работают таймауты чтения данных. Хотя потеря не велика - они и так редко работают. ;) Охотно принимаются любые отзывы о неработоспособности программы под любой ОС. ГАРАНТИИ Естественно, ничего толком не гарантируется и разработчик никакой ответственности за любые результаты использования программы не несет. Да и какие, собственно, могут быть гарантии о сохранности данных при работе с уже поврежденными данными. :) ДОПОЛНИТЕЛЬНО Прочитайте файл "faq.txt", в нем вы можете найти некоторую полезную информацию. ИЗВЕСТНЫЕ ПРОБЛЕМЫ - Не работает TAB и ENTER в главном окне – просто пока этого не сделал. - После остановки копирования во время одного из последних трех этапов, а затем возобновления, процесс начинается с начала файла. Тоже, просто этого не сделал, ввиду того, что большой надобности в этом нет. Даже наоборот - это позволяет пользователю слегка контролировать, какие плохие блоки читать. ЧТО В БУДУЩЕМ Очень приблизительный план, в порядке очередности реализации: - поддержка Unicode - копирование каталогов - возможность создания патч-файлов Если одна из этих возможностей реально вам понадобилась – напишите мне об этом. Возможно, это придаст мне стимул, и в следующей версии вы увидите то, что хотели. Так же принимаются предложения по локализации программы на другие языки. Очень охотно выслушаю любую критику по поводу английского перевода программы, так как не очень в нем уверен. :) Плюс был бы очень благодарен тому, кто поможет с переводом документации к программе на английский язык. ИСТОРИЯ ВЕРСИЙ (ЧТО НОВОГО) 1.03 (24/03/2005) Добавлена поддержка Windows 9x Добавлена возможность копирования файлов размером больше 4GB Сообщения об ошибках стали гораздо более точными и подробными Добавлено преобразование коротких имен файлов в длинные Диалог выбора файла исправлен и стал более дружественный: предлагает сохранить файл под своим именем и в тот же каталог, куда копировался предыдущий файл Добавлена кнопка отмены процесса копирования Теперь по умолчанию последний этап повторяется только один раз, а то иногда люди не догадывались, что нужно нажать "Стоп" и ждали по несколько часов Зато количество попыток чтения плохого сектора по умолчанию увеличено до пяти Реорганизован движок копирования, он стал надежнее и гибче Теперь запись в конечный файл без кэша производится только при быстром копировании, на остальных этапах кэш включается – это слегка ускорило процесс Формат инфофайла изменился, ввиду поддержки файлов >4GB Исправлена ошибка в обработке командной строки Исправлено отображение начального состояния окна, теперь "запустить свернутым" будет работать Исправлено неправильное освобождение памяти буфера копирования Исправлена потенциальная ошибка в быстром копировании (очень мало вероятно, но могла проявляться как завершение первого этапа раньше, чем на карте добрались до конца файла плюс смещение реального положения плохих блоков, в общем – искажение карты) Слегка оптимизировано обновление карты Исправлено копирование пустых файлов – теперь оно работает :) Теперь не остается файла полностью забитого нулями, если вообще ничего не удалось скопировать Исправлено неверное поведение программы при буфере превышающем объем свободной физической памяти Еще всяческие косметические и мелкие исправления 1.02 (17/12/2004) Первая публичная версия. До нее программа прошла целый ряд альфа версий, набралась стабильности.