Адрес для входа в РФ: exler.wiki
Поучительная история с ZIP-папкой
Как известно, не все базовые возможности Windows XP можно/нужно использовать. В частности, встроенные механизмы записи CD и DVD следует немедленно вырубать, в противном случае они станут источником неисчислимых глюков, да и чтобы нормально записать с их помощью диск - нужно станцевать византийский чин-чин, истово колотя заячьей лапкой в шаманский бубен.
(Кстати, вырубить эти средства можно следующим образом: в ключе реестра HKCUSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer DWORD NoCDBurning сделать равным "1". Ну или воспользоваться каким-нибудь твикером, вроде вполне симпатичного XP-Tweaker, который кроме этого позволяет делать еще массу всяких полезнейших настроек. )
Так вот, вчера я также убедился в том, что использование встроенных механизмов архивирования Windows XP (так называемые ZIP-папки) также может привести к определенным проблемам. Нет, конечно, когда вам нужно слить в один архив десяток документиков или фотографий - это все работает вполне пристойно. А вот если речь идет о более громоздких архивах, то там можно наступить на определенные грабли. Рассказываю.
Дама-фотограф. Снимает в формате RAW. Каждая фотография при этом занимает более 14 мегабайт. Снимает, записывает файлы на компьютер, обрабатывает, неудачные выкидывает, удачные оставляет. После того как обработка комплекта закончена, дама аккуратно записывает все эти фотографии в архив - ZIP-папку. То есть просто копировала фотографии в созданную ZIP-папку. Она считала, что этим заметно экономит место на диске. На самом деле RAW жмется не сильно, где-то процентов на 20, но уже хоть какая-то экономия. Беда в том, что дама все фотографии копировала в одну-единственную ZIP-папку, а оригиналы удаляла. И эту папку никуда не переписывала, потому что у нее на ноутбуке, где все это происходило, барахлил DVD-RW.
Прошел год. В какой-то момент, когда в ZIP-папку был скопирован 389-й здоровенный RAW-файл, Windows написала, что архив поврежден, поэтому его содержимое посмотреть нельзя. Вытащить оттуда тоже ничего нельзя. Пишите, короче говоря, письма, сливайте воду.
Дама чуть не поседела. В архиве - результат годичной работы, причем часть этих фотографий ей нужно было срочно предоставлять заказчикам. Буквально день назад архив открывался и оттуда все доставалось, а сейчас - все, полные вилы. Она позвонила мне, и пришлось помогать спасать все, что нажито непосильным трудом.
Источник проблемы выяснился сразу - ZIP-архив занимал более 4 гигабайт, а именно 4104 Мб. Встроенный архиватор ZIP Windows XP не умеет работать с архивами, размером более 4 гигабайт. При этом, конечно, возникает серьезный вопрос: какого фига он позволил создать такой архив, почему не ругнулся! А создавать позволяет без проблем - хоть сто гигов в архив запихните, ему пофиг. Потом просто скажет, что папка имеет неправильный формат или повреждена, а там трава не расти.
Но, что интересно, ни один из других архиваторов этот архив также не взял. Я пробовал WinZIP вплоть до новой, 11-й версии, последний WinRar, WinJar, различные консольные версии и так далее. Почти все они писали, что у архива невозможно обнаружить конец, а значит, нет надежды на продолжение рода. Только WinZIP честно сказал, что раз файл более 4 гиг, он его открывать и не собирается. И даже TurboZIP, в описании которого значилась поддержка здоровенных архивов, с этим файлом ничего не смог сделать - сообщил, что архив поврежден, попробовал восстановить и тут же сдулся.
Файловые коммандеры с плагинами чтения архивов также пробовал - они, разумеется, только ругались и сообщали, что архив поврежден, чтение списка файлов невозможно. Но это и неудивительно, раз уж оригинальные архиваторы его не взяли.
Оставалась единственная надежда на утилиты восстановления поврежденных архивов. Потому что на крайний случай надо было бы просто как-то руками разрезать архив, из второй части пытаться найти завершающую запись, вырезать ее и руками подклеить к первой части, но это жуткий геморрой, а уж учитывая 4-гиговый размер файла - в общем, до такого доводить не хотелось по определению.
Протестировал я три утилиты восстановления поврежденных ZIP-архивов.
1. ZIPRecovery
Платная, $149. Однако демонстрационная версия вполне функциональна. Но работает достаточно паршиво. Из 4-гигового архива сумела создать архив в 250 мегабайт, из которого я извлек в нормальном виде 22 файла. Всего в оригинальном архиве было 398 файлов. Результат при такой цене программы - явно ниже плинтуса.
Платная, $30. Демонстрационная версия показывает, что именно она сможет восстановить, но физически исправленный файл не записывает - предлагает купить программу. Но демонстрация написала, что она сможет восстановить всего один файл - и была, разумеется, послана.
Платная, $30. Демонстрационная версия также показывает, что именно она может восстановить и с какой вероятностью, но скорректированный файл на диск не записывает. Причем я ради интереса поискал его во всяких темпах - скрывает, зараза, довольно хитро. Однако эта программа написала, что готова восстановить все 398 файлов со стопроцентной вероятностью и только один файл из них - с двадцатипроцентной вероятностью. После такого многообещающего прогноза купил.
Далее мне просто прислали ссылку на полную версию - никаких регистраций там нет. Скачал полную версию, снова запустил восстановление. Получил скорректированный файл - что интересно, тоже размером больше 4 гигабайт - в районе 4100 Мб. Попробовал его открыть средствами Windows XP - сообщение об ошибке. Попробовал открыть через WinZIP 11 - тот тоже ругнулся. Я уже было решил, что напрасно потратил $30, но что самое главное - вытащить файлы из архива так и не удается, но тут натравил на архив WinRAR, и тот счастливо его все-таки считал. А также спокойно все разархивировал, кроме одного файла - того самого, у которого было двадцать процентов восстановления. Ура, ура, дама о таком счастье даже и не мечтала!
Выводы - структура архива все-таки была повреждена, а WinRAR все-таки умеет обрабатывать архивы, размером более 4 гигабайт. Но я бы на вашем месте не создавал архивы такого размера - на черта это нужно...
Вот такая поучительная история. Мораль тут, понятное дело, следующая:
1. Лучше не пользоваться встроенными механизмами Windows XP для работы с архивами.
2. Среди утилит восстановления поврежденных архивов наилучшие результаты (в данном, подчеркиваю, случае) показала программа Advanced Zip Repair.
Вот и вся мораль.
а на Бентли тебе прокатиться не захотелось?
> ну нету у меня возможности заплатить полтысячи долларов за софт
и действительно, вон Бентли стоит. А его владелец не обеднеет, новый себе купит...
объяснить.
В каких именно пунктах лицензия на любой Windows противоречит российскому законодательству и какому именно закону?
Или это о гипотетической лицензии которая может быть составлена, из той же серии что "если бы у бабушки..."
Что факт? Я все прекрасно понимаю. Но, в отличии от вас, я не богатенький буратино с полумиллионным тиражом книжек, а студент. Вот захотелось например мне порисовать что нибудь в фотошопе - ну нету у меня возможности заплатить полтысячи долларов за софт из-за 'правильного морального концепта'. Если бы я зарабатывал и нормально- тогда это другое дело.
А вот так тыкать всем в лицо свою "правильность" при том что у многих , если не всех, посетителей уровень заработной платы даже близко не стоит с вашим.. это не дело.
Я же до этого упомянул, что да, затраченный труд на разработку программ нужно вознаграждать, если этого никто делать не будет - не будет и самих прог.
Да и что я - а что остальные? В глубинке России например? По вашим словам всё упирается в нашу пост-советскую ментальность "переть все что можно" и т.д., но какая средняя зарплата сейчас по стране? 300, 400 долларов? Когда человек поставлен перед вариантом "купить поесть" или "честно заплатить 50 долларов за софт" какой вариант он предпочтет? Если бы зарплаты были соизмеримы с зарубежным уровнём - тогда можно было что-то говорить.
А вот постоянно потакать всем что мол они вечные воры, а мол я Экслер самый правильный дядюшка и за софт плачу - глупо.
Если бы у многих были бы высокие заработные платы - через лет 10-20 платили бы очень многие.
Интересно, тут кто-то еще регулярно платит за софт как дядя Экслер, или 'вот мы все такие неправильные и непонимающие?' ;0)
А в бесплатном GIMP'е порисовать не судьба? Я почти уверен, что функционала GIMP'а тебе хватит. Пример про то, что мне хочется автомобильку Lamborgini но пользуюсь жигулями, приводить не буду, не хочу оскорблять достоинства GIMP'а. 😜
-Зверик-: Интересно, тут кто-то еще регулярно платит за софт как дядя Экслер, или 'вот мы все такие неправильные и непонимающие?' ;0)
Есть такие люди 😄 Я правда редко покупаю (Debian Sarge (2 DVD - всё что необходимо) довольно давно вышел) но новая версия выйдет - куплю. Какие проблемы? Надо поиграть - Doom 3 , Quake 4. Всё легальное.
Только CD. DVD Win XP писать не умеет.
Нет, нельзя.
Вот если Вы попадете в аварию на автомобиле по причине его конструктивных недостатков, то в нормальной стране фирма-производитель выплатит Вам нехилую компенсацию да еще может схлопотать море разных других проблем.
У Микрософта же лицензия (почитайте, оч-чень познавательно!) составлена примерно так: -- вы, ребята, гоните бабло, но мы вам просто даем нашу программу и ни за что не отвечаем.
Кстати, это и есть один из основных аргументов в пользу бесплатного ПО против коммерческого: если при покупке программы за деньги фирма-производитель все равно ни за что не отвечает, то зачем эти деньги платить -- лучше воспользоваться бесплатным аналогом, автор которого так же формально не дает никаких гарантий.
И что? Архив и не читался, потому что он был более 4 гиг. Zip Repair сделал так, что он стал читаться.
У меня стратегия такая: 4 гига набралось - на второй винт скопировал, болваночку нарезал, на компьютер в другом помещении отнес.
Поможет ли она - чему? Это риторический вопрос. Если сделать просто зеркало - будет быстрее считывать, подольше записывать, если накроется один винчестер - теоретически его можно заменить и восстановить RAID без потери данных. На самом деле это слишком глобальная тема, чтобы обсуждать ее в комментах. В Интернете есть уйма всякого на эту тему.
Вот есть большие сомнения, что зеркало в этой ситуации чем-нибудь помогло. Зеркало помогает в случае отказа одного из винтов, а тут операционная система просто некорректно записала данные в файл, она точно так же бы записала эти данные и на второй винт.
В данной ситуации помог бы только бэкап на другой винт, на диск, на ленту и т.п.
Вообще-то зеркалирование всегда делается аппаратно, а не софтверно. Mirror поддерживают почти все современные матери - еще со времен IDE, не говоря уж о SATA.
Алекс,
MS предлагает идеологически более корректный способ. Запустить оснастку "Group Policy", через выполнить gpedit.msc. Далее выбираем "Конфигурация пользователя" -> "Административные шаблоны" -> "Windows Components" -> "Windows Explorer" и там уже есть пункт Remove CDBurning Feature. Выбираем Enable и все. Как плюс - то, что там это все через интерфейс в котором ты вряд ли сможешь ввести неправильное значение, плюс есть небольшая подсказка по каждому пункту.
к сожалению, этот метод не прокатит на WinXP Home. Там просто нет gpedit.msc
2. Очевидно, что сбой наступил при добавлении последнего файла, когда размер архива превысил 4Гб. При отрезании хвоста только он же и теряется. Если пересчитать объемы - так и выходит.
ПС. Специалист мог бы попробовать вырезать этот последний файл в отдельный архив.
ППС. А вот нафига тетке надо было на NTFS хранить файлы в ZIP? Есть же хорошая фича - "сжатие файлов и папок", может сжатие и немного похуже (не сравнивал как XP жмет), но никаких ограничений и побочных эффектов.
Просто был тут случай, когда при восстановлении данных программа обещалась восстановить 150 файлов, а в результате круглый ноль... Обидно, однако...
Искал бы другую, ясный пень. А какие еще варианты?
У меня тут в домашней сети не скачивался "Армагеддон" в формате MPEG4, но для HDTV, который занимал 8-м Гбайт только потому, что кто-то (честно не знаю!) сделал загрузочную партицию FAT32.
На NTFS скачалось без проблем.
Объянить, почему mirror - вовсе не панацея? Проще на второй винт просто бекапиться.
>потеряем как минимум 9 картинок.
4G - это 4096M
Здесь архив был 4104M. Разница - 8M. Меньше одной картинки.
На NTFS.
А не жалко $30 ради одноразового использования? Да и дороговато..
я вот линк на retail версию нашел за пару минут..
Да, я конечно за поддержку производителей и всего прочего (например если пользуешься софтом коммерчески или очень часто), но кхм, если у вас так много денег, поделителись с нами! :0)
А не жалко $30 ради одноразового использования?
Что-то мне подсказывает, что работа за год стоит побольше 30 долларей... 😄
Я вообще привык платить за программы. И результат того стоил.
-Зверик-: но кхм, если у вас так много денег, поделителись с нами!
Видите ли, я свои деньги зарабатываю, а не из тумбочки беру. Рекомендую вам делать то же самое.