Архив комната с файлами а вот если один из них вынести
я как то неверно заархивировал, теперь не могу разархивировать.
подскажите -
архивировал на 2 рар-файла обычнейшим способом (помоему даже советовали мне именно на этом форуме), но теперь архиватор не видит архив как разделенный в 2 архивах (part1 и part2) - т.е. он пытается разархивировать первую часть и НЕ ищет вторую. в итоге - ошибка, т.к. с его точки зрения архив инвалиден, неполный.
как совместить теперь эти 2 части архива? как заставить комп разархивировать файл целиком?
(part1 и part2)
значит есть еще одна часть без индекса. попробуй найти, собрать все в один каталог и разархивировать файл без индекса
нет нет никаких больше частей нет, я ж сам архивировал.
странно вообще что имея файл с именем парт 1, винрар не ищет парт 2 - мне казалось это само собой разумеется.
как я могу их объединить и разархивировать файл без индекса?
ytrewq, можно скриншот, на котором видно окно WinRar c открытой первой частью архива? Так, чтобы в списке файлов был виден первый и последний файлы содержимого?ytrewq, можно скриншот, на котором видно окно WinRar c открытой первой частью архива? Так, чтобы в списке файлов был виден первый и последний файлы содержимого?
при этом в каждом из них имеется еще одна надпапка, не знаю мешает ли она
в первом архиве нет стрелочки к mdf
это настораживает
кстати то что файл mds записался дважды тоже странно както
ytrewq Файл .mds просто разделился на две части.С какими расширениями сохранились части архива ? Должны быть *.rar и *.r00
ytrewq Файл .mds просто разделился на две части.
С какими расширениями сохранились части архива ? Должны быть *.rar и *.r00
нет, оба
rar:(
ytrewq1212427505
вот кстати по такому совету архивировал
образ (не важно, iso или mdf/mds), архивируешь в WinRar со следующими параметрами: Метод сжатия "Без сжатия" , разделить на тома размером 4481Mb.
В результате, получится 2 файла, один из них размером точь-в-точь под DVD-болванку. :wow:
Это бывает
ytrewq Тут что-то изначально не так . Действительно Такое впечатление, что это две части от разных архивов, с одинаковыми именами.
Kraft, от версии зависит. WinRar 3.61, к примеру, именует именно так: archive.part1.rar; archive.part2.rar . archive.partX.rar
По моему опыту, полный комплект файлов, закатаных в архив, полностью отображается во всех его частях, Вероятно, тоже от версии зависит, но мой опыт показывает, что полный набор файлов отображается не всегда. Опять же, WinRar 3.61 показывает полный набор файлов только в первой части архива, в остальных - только фактически содержащиеся в них куски.
Что за ситуация у автора - мне непонятно. Вероятно, сбой при архивации и битый архив как результат.
ytrewq А исходную папку (до архивации) уже, ясное дело, не имеешь?ну имел бы, незачем было б разархивировать. вся идея была просто перенести файл на новый комп, а записать на болванку 8 гигов никак.
если б не я сам архивировал то все могло бы быть, и разыне файли и архивы.
но в данном случае все оч странно.
попробую r00 и еще попробую начинать разархивацию со второго архива.
ytrewq1212449924
совсем весело - на днях раздачу прикрыли, т.е. мне даже заново все это не скачать(
остался я со своими 2 архивами..
а почему все таки не заставить винрар читать файл с 2 архивов?
ytrewq
сделай копии обоих частей и положи их в отдельную папку. Потом из первой части попробуй удалить файлы exe и txt. И напиши, какой размер архива получится.
Вероятно, тоже от версии зависит, но мой опыт показывает, что полный набор файлов отображается не всегда. Опять же, WinRar 3.61 показывает полный набор файлов только в первой части архива, в остальных - только фактически содержащиеся в них куски. возможно, у меня старая версия архиватора. Я проглядела, что у него к тому же без сжатия упаковка. Тогда этот вопрос снимается. Но размер конечного файла не соответствет в разных частях архива - это не есть гут.
ytrewq
сделай копии обоих частей и положи их в отдельную папку. Потом из первой части попробуй удалить файлы exe и txt. И напиши, какой размер архива получится.
имеется в виду, что в графе packed размер mdf второго архида всего 3 гига?
попробую описанный метод
ps ничего не пойму, смешно же получается, кучу архивов с нета качаешь, и все нормально. тут - сам сделал простейшую архивацию и такие проблемы(((
может, при записи этих 2 папок на ДВД произошла какаято лажа?
имеется в виду, что в графе packed размер mdf второго архида всего 3 гига?
попробую описанный метод нет, я имею ввиду, что у первой части архива
Total 8,528,567,000 in 4 files (это в строке состояния)
(volume 1) unpacked 8,528,567,000 (в адресной строке)
а у второй
Total 8,514,838,216 in 2 files
(volume 2) unpacked 8,514,838,216
Вот эти расхождения меня смущают, unpacked для всех частей должен быть одинаковый, независимо от их размера.
ничего не пойму, смешно же получается, кучу архивов с нета качаешь, и все нормально. тут - сам сделал простейшую архивацию и такие проблемы((( no comment :D
может, при записи этих 2 папок на ДВД произошла какаято лажа? лажа может быть всегда, но она не переписывает содержимое архивов и не меняет в них данные.
имеется в виду, что в графе packed размер mdf второго архида всего 3 гига?
попробую описанный метод нет, я имею ввиду, что у первой части архива
Total 8,528,567,000 in 4 files (это в строке состояния)
(volume 1) unpacked 8,528,567,000 (в адресной строке)
а у второй
Total 8,514,838,216 in 2 files
(volume 2) unpacked 8,514,838,216
Вот эти расхождения меня смущают, unpacked для всех частей должен быть одинаковый, независимо от их размера.
дело в том что различие в весе как раз на стоимость exe - я не помню этого но может я докинул его в архив уже после архивации основного mdf?
это могло чтото изменить?
1. У трех трактористов есть брат Сергей, а у Сергея братьев нет. Может ли такое быть?
2. На столе лежат две монеты, в сумме они дают 3 рубля. Одна из них - не 1 рубль. Какие это монеты?
3. В комнате горело 50 свечей, 20 из них задули. Сколько останется?
4. Если в 12 часов ночи идет дождь, то можно ли ожидать, что через 72 часа будет солнечная погода?
5. На край стола поставили жестяную банку, плотно закрытую крышкой, так, что 2/3 банки свисало со стола. Через некоторое время банка упала. Что было в банке?
6. Можно ли из двух химических элементов создать еще один элемент?
7. Как известно, все исконно русские женские имена оканчиваются либо на "а", либо на "я": Анна, Мария, Ольга и т.д. Однако есть одно-единственное женское имя, которое не оканчивается ни на "а", ни на "я". Назовите его.
8. Назовите пять дней, не называя чисел (напр., 1, 2, 3. ) и названий дней (напр., понедельник, вторник, среда. ).
9. Когда черной кошке лучше всего пробраться в дом?
10. На столе лежат линейка, карандаш, циркуль и резинка. На листе бумаги нужно начертить окружность. С чего начать?
11. Один поезд едет из Москвы в С.-Петербург с опозданием 10 минут, а другой - из С.-Петербурга в Москву с опозданием 20 минут. Какой из этих поездов будет ближе к Москве, когда они встретятся?
12. Из гнезда вылетели три ласточки. Какова вероятность того, что через 15 секунд они будут находиться в одной плоскости?
13. С какой скоростью должна бежать собака, чтобы не слышать звона сковородки, привязанной к ее хвосту?
14. Один оборот вокруг Земли спутник делает за 1 ч 40 минут, а другой - за 100 минут. Как это может быть?11
15. Крыша одного дома не симметрична: один скат ее составляет с горизонталью угол 60 градусов, другой - угол 70 градусов. Предположим, что петух откладывает яйцо на гребень крыши. В какую сторону упадет яйцо - в сторону более пологого или крутого ската?
Всем здравия!
Сегодняшняя заметка будет посвящена проблемным архивам, главным образом формату ZIP (как одному из самых популярных форматов для сжатия. ).
Примечание: файлы и документы, сжатые в ZIP-"папку", обладают рядом преимуществ — они меньше занимают места, их быстрее можно передать с одного устройства на другое, в т.ч. по сети (да и в целом, куда удобнее иметь дело с одним ZIP-файлом, чем со множеством мелких. ).
Что можно сделать с проблемным ZIP-архивом
Первое
Для начала следует сказать, что архивы ZIP могут быть сжаты с использованием разных алгоритмов (и разными программами). Я уж не говорю о "новом" продвинутом формате ZIPX. (который многие путают с тем же ZIP. )
И в ряде случаев (по этим причинам) определенные архиваторы не способны открывать некоторые ZIP-файлы!
Извлечь в текущую папку — WinZIP
Разумеется, не лишним будет попробовать разархивировать файлы из проблемного ZIP-файла и др. программами: WinRAR, Total Commander и пр.
Второе
У архиватора WinRAR есть спец. режим извлечения, при котором архиватор попробует "проигнорировать" ряд ошибок (своего рода "восстановление").
Архив открыт в WinRAR
Третье
Если вышеприведенные советы с архиваторами не помогли — рекомендую воспользоваться утилитой Recovery Toolbox for ZIP (о компании Recovery Toolbox).
Она предназначена для восстановления файлов из поврежденных архивов (даже тех, с которыми отказываются работать WinZIP / WinRAR и др. архиваторы).
Recovery Toolbox for ZIP — скриншот работы программы
Примечание : все опции, кроме последней, доступны в режиме демо-версии . Пользователи могут делать все, что угодно, кроме сохранения восстановленных данных на диск. Логично, что это требует оплаты и регистрации Recovery Toolbox for ZIP .
После регистрации программу можно использовать без ограничений (для работы с десятками архивов). Доступ к интернету для ее работы — не требуется.
Recovery Toolbox for ZIP — восстановление файлов
Четвертое
В рамках текущей заметки не могу не отметить один момент с которым часто сталкиваюсь сам — встроенный защитник иногда "обезвреживает" архив (или вовсе его удаляет с диска) с целью недопущения заражения ПК вирусами. Кстати, это могут делать и сторонние антивирусы.
Если в журнале будет отображаться строка, в которой значится что "такая-то угроза обезврежена. " — попробуйте восстановить файл (отменить это действие).
Журнал угроз защитника в ОС Windows 10
Кроме этого, также порекомендую открыть свойства папки с документами (если проблемный архив хранился там) и посмотреть нет ли у нее копий (некоторые версии Windows такие копии делают по умолчанию!).
Мой компьютер - открываем свойства документов
Разумеется, если копия системной папки есть — ее можно восстановить.
Предыдущие версии файлов
Пятое
Если у вас когда-то была нормальная копия не открывающегося ZIP-архива где-нибудь на жестком диске или флешке (но вы ее удалили) — имейте ввиду, что есть шанс, что тот "старый" файл возможно удастся восстановить с помощью спец. утилит ( прим. : т.е. мы будем пытаться не открыть проблемный ZIP; а найти "старую" копию архива, на тот момент, когда все работало).
Найденные файлы, которые можно восстановить // утилита R.Saver
Для начала следует сказать, что есть довольно много причин, которые могут привести к порче ZIP-файлов (да и не только их, кстати):
- сбои при загрузке файлов : тут можно посоветовать просто перезагрузить файл или скачать его с другого источника;
- вирусное заражение : здесь самый очевидный совет — использование современного антивируса + регулярное создание бэкапов (кстати, при заражении некоторыми видами вирусов — архивы вовсе уже нельзя извлечь - вирус их портит окончательно) ;
- ошибки программ при запаковке файлов : после того, как вы создали архив с файлами — проверьте, можно ли открыть его. В WinRAR для этого есть спец. функция тестирования архива;
WinRAR — ошибок не обнаружено!
В общем-то, соблюдение этих нехитрых правил, конечно, не дает 100% гарантии, но риски снижает значительно. Кстати, я бы в этом плане еще порекомендовал сделать копию документов на облачный диск (это и удобно - можно получить доступ с любого устройства; и довольно надежно).
Если вы смогли спасти данные др. способом - поделитесь в комментариях!
Формат архивов 7-Zip довольно гибкий и позволяет, например, включать весь архив как один из файлов внутри самого архива, лишь немного считерив. Разберём формат на примере: создадим почти вручную архив с именем «Рекурсивный.7z», содержащий два файла: «Какой-то файл.txt» с содержимым «Hello, Habrahabr!» и «Рекурсивный.7z», копию самого себя.
Краткая документация по формату входит в LZMA SDK. Архив начинается со следующей структуры размером 32 байта. Все позиции внутри архива кодируются как смещения относительно конца этой структуры.
Далее следуют данные файлов без какой бы то ни было информации о самих файлах и о границах данных. Основной заголовок, который описывает всё содержимое архива, размещается в конце архива.
Основной заголовок может быть сам по себе упакован (а также зашифрован). Поскольку он содержит структурированные данные (типа имён файлов), коэффициент сжатия достаточно неплохой. Именно для возможности подобного сжатия вся информация о файлах в 7z собрана в одном заголовке и полностью отделена от сжатых данных файлов. Признак упакованности — первый байт основного заголовка: он должен быть равен 1 у неупакованного заголовка и 0x17 у упакованного. Для создания архива вручную мы не будем ничего сжимать.
Общая схема (распакованного) основного заголовка из документации:
Давайте разбираться по порядку, формируя попутно нужный заголовок. Первые 32 байта мы заполним в последнюю очередь (для них нужен готовый основной заголовок), следующие байты — данные, которые мы для простоты сжимать не будем:
Записываем первый байт основного заголовка:
ArchiveProperties — свойства для возможного расширения, сейчас не используются, 7-Zip никогда их не создаёт и молча пропускает при чтении.
AdditionalStreams и MainStreams описывают структуру сжатых данных. Первый байт в AdditionalStreams равен 0x03, первый байт в MainStreams равен 0x04, в остальном их структура идентична (кстати, точно такую же структуру имеет упакованный основной заголовок после первого байта 0x17).
MainStreams описывают данные файлов. AdditionalStreams позволяют вынести некоторые данные (например, собранные вместе имена файлов) отдельно и сжимать независимо от основного заголовка; 7-Zip не использует такую возможность при записи (в реальных архивах AdditionalStreams отсутствуют), но способен обрабатывать их при чтении.
Записываем первый байт MainStreams и идём вглубь:
В 7-Zip преобразованиями данных занимаются кодировщики. У каждого кодировщика есть сколько-то входных потоков, сколько-то выходных потоков, свой собственный идентификатор и, возможно, какие-нибудь настройки. Большинство кодировщиков преобразуют один входной поток в один выходной поток: таковы, например, копирующий кодировщик (он-то нам и нужен), LZMA-упаковщик , AES-шифратор , BZip2-упаковщик (да, формат 7z вполне допускает алгоритмы, традиционно использующие другие форматы архивов). Пример кодировщика с несколькими выходными потоками: BCJ2 . Машинный код x86 и x86-64 устроен так, что команды вызова процедуры (E8 xx xx xx xx) и прыжков (E9 xx xx xx xx — длинный безусловный, 0F 8y xx xx xx xx — длинный условный) кодируют адрес назначения как смещение относительно своего конца. Из-за этого просто так сжатие «не заметит», что разные вхождения E8 xx xx xx xx (с разными xx из-за относительности смещения) — на самом деле вызов одной и той же процедуры. BCJ2 преобразует назначения вызовов и прыжков в абсолютную форму и выдаёт 4 выходных потока: первый — обычные данные, второй — назначения вызовов, третий — назначения прыжков, четвёртый — битовый поток, который на каждое появление E8/E9/0F 8x сообщает, есть ли соответствующее закодированное назначение или это просто байт данных.
Формат 7z описывает самую общую ситуацию: входной поток кодируется произвольным числом каких-то кодировщиков, выходы с которых в свою очередь могут быть входами других кодировщиков и так далее. Первый блок PackInfo в информации о потоках описывает все финальные потоки, записанные в архив (все выходные потоки кодировщиков, не поданные на вход каким-то другим кодировщикам): байт 0x06, кодированное начало финальных потоков в файле (в виде смещения относительно конца первого заголовка, потоки следуют один за другим последовательно), кодированное число потоков, байт 0x09, размеры всех финальных потоков (по одному кодированному числу на каждый финальный поток), байт 0x00. Между размерами потоков и концом структуры может быть информация о CRC финальных потоков, но она обычно не используется, а CRC контролируется у распакованных данных.
Целые числа в 7z кодируются следующим образом: количество ведущих единиц в первом байте определяет количество дополнительных байт, прочие биты первого байта суть старшие биты числа, дополнительные байты определяют младшие байты числа в little-endian. Числа, меньшие 0x80, кодируются одним байтом, равным самому числу. Числа, занимающие все 8 байт, кодируются с помощью приписывания в начало байта 0xFF.
У нас будет два потока. Первый — для файла «Какой-то файл.txt», начинающийся со смещения 0 относительно конца первого заголовка. Второй — для архива, начинающийся с начала файла. Поскольку потоки следуют один за другим последовательно, размер первого потока придётся сделать равным 0 — 0x20 = 0xFFFFFFFFFFFFFFE0. Размер архива мы пока не знаем, оставим под него два байта. Итак, формируем блок PackInfo:
Второй блок CodersInfo описывает все использованные кодировщики с параметрами и связи между ними. Кодировщики объединены в группы по связям, между группами связей нет. Например, одна группа может состоять из одного LZMA-упаковщика, вторая — из связки BCJ2+(несколько разных LZMA). Блок CodersInfo начинается с байт 0x07 0x0B, после которых следует кодированное число групп, нулевой байт (ненулевой означал бы вынесение информации о группах в отдельный AdditionalStream), по одной структуре Folder на группу. Каждая группа начинается с числа кодировщиков в группе, затем следует описание каждого кодировщика. Первый байт описания кодировщика содержит размер идентификатора в младших 4 битах, следующий бит установлен, только если у кодировщика число входных каналов или число выходных каналов не равно единице, следующий бит установлен, если у кодировщика есть параметры. Далее следует идентификатор, далее число выходных и входных каналов (если либо то, либо другое отлично от единицы), далее размер параметров (если они есть) и сами параметры в виде массива байт. После всех кодировщиков идёт описание связей: номер выходного канала и номер входного канала, которые нужно связать. Каждый входной канал, кроме одного, должен быть выходом какого-нибудь декодера, поэтому число связей равно суммарному количеству входных каналов во всех кодировщиках минус 1. Наконец, если число выходных потоков больше одного, то описание группы заканчивается списком индексов несвязанных выходных потоков в том порядке, в котором они записаны в архиве. После описания папок идёт байт 0xC и размеры всех входных каналов, включая связанные, всех папок. Как и PackInfo, блок CodersInfo заканчивается байтом 0x00. Между размерами потоков и концом структуры может быть информация о CRC входных данных, которая обычно используется только для информации о потоках упакованного заголовка (CRC файлов хранятся в следующем блоке). CRC, если есть для всех потоков, хранится так: сначала ненулевой байт (признак того, что CRC определена для всех потоков; иначе дальше бы шёл битовый массив, указывающий, для каких потоков CRC определена), потом по 4 байта CRC на каждый поток.
Формируем блок CodersInfo, учитывая, что у нас один копирующий кодировщик в каждой из двух групп для двух потоков, и по-прежнему оставляя два байта под пока ещё неизвестный размер архива:
Завершаем информацию о потоках нулевым байтом и возвращаемся на уровень выше:
FilesInfo, как нетрудно догадаться, содержит информацию о файлах внутри архива: имена, даты создания/изменения/доступа, атрибуты файлов. FilesInfo начинается с байта 0x05, следом идёт закодированное целое число, обозначающее число файлов, следом свойства (в некотором количестве). Каждое свойство начинается с ненулевого байта-идентификатора, после которого следует размер свойства (чтобы 7-Zip мог пропускать неизвестные свойства). Нулевой байт заканчивает FilesInfo. Имена файлов кодируются как свойство с типом 0x11, первый байт содержимого равен нулю (ненулевой байт означает, что всё дальнейшее содержимое свойства вынесено в отдельный AdditionalStream, индекс которого в общем массиве закодирован далее), дальше идут сами имена в UTF-16 с терминирующим нулём.
Даты и атрибуты мы для простоты заполнять не будем, а вот имена нужны. Заполняем блок FilesInfo:
Осталось только завершить весь заголовок привычным уже нулевым байтом:
Итак, размер всего файла 0x9E байт, теперь мы можем вернуться и записать на место вопросиков байты 80 9E, кодирующие число 0x9E. Осталось сформировать первый заголовок. Основной заголовок начинается с позиции 0x11 относительно конца первого заголовка и занимает 0x9E — 0x31 = 0x6D байт.
Теперь надо вычислить две CRC. Вручную считать CRC по 0x6D байтам довольно хлопотно, поэтому здесь прибегнем к помощи программ. Первая CRC, которую нам надо вычислить, — основной заголовок: байты с 0x31 до конца, его CRC равна 0x3F5E2977. Вторая CRC считается по трём последним полям первого заголовка, включая первую CRC: 11 00 00 00 00 00 00 00 6D 00 00 00 00 00 00 00 77 29 5E 3F. Она равна 0x6FA3DEA5. Наконец, соберём всё воедино и получим такой "Рекурсивный.7z":
Читайте также: