Hi! I have (1 year old) 7z arhive.
Someday, when i'm tried to open it, 7zip sayd: "Can not open the file as 7z archive".
This archive is important to me and i don't have any backup.
As far as I remember, it is arhive with LZMA Ultra. I tried about hundred recovery porgrams but no result, and most of them doesn't support 7z.
My arhive have the same size (before and after corrupting), ~460 mb. All file archivers (WinAce, WinRAR,WinZip,KGB Archiver,PeaZip,FreeArc, Linux archivers etc) can't open it.
It is possible to recover it, maybe partly?
Sorry for my English.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
List of files probably is corrupted.
You can try to extract RAW data.
1) split bad.7z to
- bad.7z.001 - 32 bytes
- bad.7z.002 - remainder. (481990031 - 32 bytes) in your case
2) You must get some file "RAW" that is larger than total size of files in bad.7z.
Select RAW file in 7-Zip and press "Add" button to create a.7z archive with LZMA method (not LZMA2) and Ultra level
(dictionary size must be equal or larger than dictionary size that was used to create bad.7z).
a.7z also must be larger than bad.7z
4) delete a.7z.002 and rename bad.7z.002 to a.7z.002.
5) try to extract from a.7z.001 to another folder
you will get RAW.
that file contains original files combined to one file.
If you had many files in corrupted bad.7z, you must find some program that will parse the data in RAW file to extract files using known file type signatures.
Last edit: Igor Pavlov 2013-03-14
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi!
I have some troubles with a7z archive also.
Method: PPMD:o16:mem26
I have adapted your method by using PPMD in creating RAW file by archiving bad.7z.002. (the new archive is o16:mem24; did not succeeded to create o16:mem26).
In step 5 it is retuning BAD CRC.
Would you be so kind to advise what do I have to do for PPMD method?
Thank you!
Nic
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Thank you! With your help I managed to get something out of the corrupted archive.
My archive is containing many text files. Most of them are recovered (especially in the beginning). The last ones are lost (random errors here and there, in the end messed everything).
I took a good archive and I followed step 1-5. Still, in the end of the recovered raw I get many errors (same like with the corrupted one).
I thought is an issue with RAW file. I tried with a text one (created manually) and then I tried with another binary one (random picked from HDD). Same result.
I get 2 errors, both with corrupted archive and good archive:
0 Path to the archive\raw.7z.001
1 Data error in 'raw'. File is broken.
Still I have the feeling that I am missing something.
Please advise me what can I do more.
Thank you in advance!
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi, I have a similar problem with my 7z. No recovery tool can read from it. My file size is 3.57 GB (3,835,691,008 bytes). I found 7z source code, and ran it on my machine, and found that for this file, in InArchive.java, method ReadDatabase, crcFromArchive, nextHeaderOffset, and so on are all 0.
Can you please tell me how to find out the hex notations for the first 48 and last 96 bytes?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Sorry, but how do I split the archive into 2 volumes -- 1 vol of 32 bytes and other vol of remaining archive size. If I enter 32 in the split window, it seems it will create a lot of volumes of 32 bytes each (archive_size/32bytes=no. of volumes)
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I zipped a ~4.4G file for a.7z. After step 5, the bad.7z was 1.95 GB (2,100,392,180 bytes) much less that the original 3.57 GB (3,835,691,008 bytes). Is that due to the removal of the corrupted bytes?
Also, my bad.7z contained lots of folders and different types of files, eg. .jpg, .avi etc. Are there parsers that can parse different file types?
PS. At the end of step 5, for all files being extracted including bad.7z, the diagnostic reports, '<filename> is broken'. Is that expected?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
1) Probably solid block size was about 2 GB.
Then it started another solid block. But recovered archive doesn't contain information about exact solid block range.
That information is stored at the end of archive (it's broken part in your case).
It's possible to detect exact solid block range. But now there are no programs that can do it. Maybe I'll develop something in future. It's not so simple. So keep your broken archive. Maybe it will be simpler to recover it in future.
2) I don't know any parsers now.
3) after step 5 you must have only one file (RAW).
And "is broken" message is expected.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Observation: For my update above, I observed that
i. bad.7z at step 5 is 2G (something you relate to the solid block range)
ii. if I open the bad.7z in 7z archive, it actually reads 4 files of total size 14M
iii. I was able to extract these 4 files without the need of any parser
Does this observation tell you anything so that you can give instructions to get some more files without the need to find a parser program that can extract files based on identifiable signatures?
Perhaps not the correct question to ask here, but since the files are all very important to me: how do I get one single file of ~4G without the help of audio/video/graphic files?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
You are in wrong way.
There is no bad.7z in step 5.
a.7z must contain only one file. We use name "RAW" for that file. In step 5 you extract one "RAW" file from a.7z.001
You can use any BIG file as RAW file. For example, you can use AVI file. There are only two conditions:
1) RAW file must be larger than total size of original files that were used to create bad.7z
2) a.7z after compression must be larger than bad.7z
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I found a program that uses FileOutputStream to create a file and insert random data into it to create a 4G file. Now I have one file 'RAW' at step 5.
At step 5, does RAW contain data in binary format? I mean do I have to search for parsers that can parse binary format files (jpeg and avi formats in my case)?
Last edit: Starter 2013-03-19
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
The bad.7z had jpg file and others. In my following update when I was following your instructions incorrectly, I was able to retrieve 4 of those jpg files (https://sourceforge.net/p/sevenzip/discussion/45798/thread/e34b4a1d/#6dbc). All of them start with the jpg hex notation of "FF D8 FF E1" and they end with 'FF D9". But the 'RAW' file at step 5 doesn't have even one occurrence of FF D8 FF E1.
1. Your comments would be of value here.
2. Is it possible that since out of a potential 3.57G bad.7z file, since only ~2G is being extracted, it's only partial data and hence cannot be parsed?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi! I have (1 year old) 7z arhive.
Someday, when i'm tried to open it, 7zip sayd: "Can not open the file as 7z archive".
This archive is important to me and i don't have any backup.
As far as I remember, it is arhive with LZMA Ultra. I tried about hundred recovery porgrams but no result, and most of them doesn't support 7z.
My arhive have the same size (before and after corrupting), ~460 mb. All file archivers (WinAce, WinRAR,WinZip,KGB Archiver,PeaZip,FreeArc, Linux archivers etc) can't open it.
It is possible to recover it, maybe partly?
Sorry for my English.
Show
1) exact size of archive.
2) first 48 bytes in hex.
3) last 96 bytes in hex.
1)Size: 481 990 031 bytes
2)first 48 bytes:
37 7A BC AF 27 1C 00 03 6C 92 CE F2 49 95 BA 1C
00 00 00 00 26 00 00 00 00 00 00 00 78 F1 EE 0E
00 28 12 BC 60 28 97 D5 5D 3A 50 4E 2E 80 52 D3
3)last 96 bytes:
97 3B A4 2D 51 B6 2A 3C 65 6E 91 EB BD EB F2 A3
9A 67 87 26 90 70 E9 2C 76 97 0F DA FF A2 AB 34
45 02 87 85 C5 64 52 E7 29 E6 43 7A 28 F2 65
List of files probably is corrupted.
You can try to extract RAW data.
1) split bad.7z to
- bad.7z.001 - 32 bytes
- bad.7z.002 - remainder. (481990031 - 32 bytes) in your case
2) You must get some file "RAW" that is larger than total size of files in bad.7z.
Select RAW file in 7-Zip and press "Add" button to create a.7z archive with LZMA method (not LZMA2) and Ultra level
(dictionary size must be equal or larger than dictionary size that was used to create bad.7z).
a.7z also must be larger than bad.7z
3) split a.7z to
- a.7z.001 - 32 bytes
- a.7z.002 - (481990031 - 32 bytes)
- a.7z.003 - remainder
4) delete a.7z.002 and rename bad.7z.002 to a.7z.002.
5) try to extract from a.7z.001 to another folder
you will get RAW.
that file contains original files combined to one file.
If you had many files in corrupted bad.7z, you must find some program that will parse the data in RAW file to extract files using known file type signatures.
Last edit: Igor Pavlov 2013-03-14
Hi!
I have some troubles with a7z archive also.
Method: PPMD:o16:mem26
I have adapted your method by using PPMD in creating RAW file by archiving bad.7z.002. (the new archive is o16:mem24; did not succeeded to create o16:mem26).
In step 5 it is retuning BAD CRC.
Would you be so kind to advise what do I have to do for PPMD method?
Thank you!
Nic
You must use same options.
Create "PPMD:o16:mem26" archive.
RAW file must be larger than 16 MB.
Thank you! With your help I managed to get something out of the corrupted archive.
My archive is containing many text files. Most of them are recovered (especially in the beginning). The last ones are lost (random errors here and there, in the end messed everything).
I took a good archive and I followed step 1-5. Still, in the end of the recovered raw I get many errors (same like with the corrupted one).
I thought is an issue with RAW file. I tried with a text one (created manually) and then I tried with another binary one (random picked from HDD). Same result.
I get 2 errors, both with corrupted archive and good archive:
0 Path to the archive\raw.7z.001
1 Data error in 'raw'. File is broken.
Still I have the feeling that I am missing something.
Please advise me what can I do more.
Thank you in advance!
Thanks for answer.
How can i split my archive?
Does any file splitter can do that or i need special splitter?
Здесь не запрещено по русски писать?
Last edit: microsample 2013-03-13
7-zip can split files.
I've changed the message with recovering instruction.
Hi, I have a similar problem with my 7z. No recovery tool can read from it. My file size is 3.57 GB (3,835,691,008 bytes). I found 7z source code, and ran it on my machine, and found that for this file, in InArchive.java, method ReadDatabase, crcFromArchive, nextHeaderOffset, and so on are all 0.
Can you please tell me how to find out the hex notations for the first 48 and last 96 bytes?
You can find info about 7z format in source code in DOCS folder.
Show first and last bytes in hex. So it will be simpler to detect type of corruption.
1) file size: 3,835,691,008 bytes
2) first 48 bytes in hex
37 7A BC AF 27 1C 00 03 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 28 12 BC 60 28 97 D5 5D 3A 4F E9 08 37 E7 6C
3) last 96 bytes
C5 73 C5 70 64 EC D8 6A D4 A9 9C 13 95 8D A9 5C
5A 27 63 37 2A CD A3 61 50 76 F3 8F D5 46 85 60
94 32 A9 43 2F 65 C4 14 E1 4A 1A 84 81 47 52 BE
B2 F3 D2 E4 09 0C CE 8D F6 C2 6C 74 4E EC FB 2E
8B BF 9F E4 8E A2 44 AA F7 F3 71 E1 49 43 C1 A7
4F 09 D7 9C 77 CD 61 A4 15 87 EF 7D 55 22 87 87
Starter:
Use my instructions in message above to extract RAW data.
http://sourceforge.net/p/sevenzip/discussion/45798/thread/e34b4a1d/#0c18
Sorry, but how do I split the archive into 2 volumes -- 1 vol of 32 bytes and other vol of remaining archive size. If I enter 32 in the split window, it seems it will create a lot of volumes of 32 bytes each (archive_size/32bytes=no. of volumes)
Use spaces to specify volume sizes in split window:
32 4G
I zipped a ~4.4G file for a.7z. After step 5, the bad.7z was 1.95 GB (2,100,392,180 bytes) much less that the original 3.57 GB (3,835,691,008 bytes). Is that due to the removal of the corrupted bytes?
Also, my bad.7z contained lots of folders and different types of files, eg. .jpg, .avi etc. Are there parsers that can parse different file types?
PS. At the end of step 5, for all files being extracted including bad.7z, the diagnostic reports, '<filename> is broken'. Is that expected?
1) Probably solid block size was about 2 GB.
Then it started another solid block. But recovered archive doesn't contain information about exact solid block range.
That information is stored at the end of archive (it's broken part in your case).
It's possible to detect exact solid block range. But now there are no programs that can do it. Maybe I'll develop something in future. It's not so simple. So keep your broken archive. Maybe it will be simpler to recover it in future.
2) I don't know any parsers now.
3) after step 5 you must have only one file (RAW).
And "is broken" message is expected.
Actually you must use headers from new (good) archive that contains onle one RAW file and the data from "bad" archive.
i. bad.7z at step 5 is 2G (something you relate to the solid block range)
ii. if I open the bad.7z in 7z archive, it actually reads 4 files of total size 14M
iii. I was able to extract these 4 files without the need of any parser
Does this observation tell you anything so that you can give instructions to get some more files without the need to find a parser program that can extract files based on identifiable signatures?
You are in wrong way.
There is no bad.7z in step 5.
a.7z must contain only one file. We use name "RAW" for that file. In step 5 you extract one "RAW" file from a.7z.001
You can use any BIG file as RAW file. For example, you can use AVI file. There are only two conditions:
1) RAW file must be larger than total size of original files that were used to create bad.7z
2) a.7z after compression must be larger than bad.7z
I found a program that uses FileOutputStream to create a file and insert random data into it to create a 4G file. Now I have one file 'RAW' at step 5.
At step 5, does RAW contain data in binary format? I mean do I have to search for parsers that can parse binary format files (jpeg and avi formats in my case)?
Last edit: Starter 2013-03-19
Yes.
Please write here about these parsers, if you can find some good parser program.
The bad.7z had jpg file and others. In my following update when I was following your instructions incorrectly, I was able to retrieve 4 of those jpg files (https://sourceforge.net/p/sevenzip/discussion/45798/thread/e34b4a1d/#6dbc). All of them start with the jpg hex notation of "FF D8 FF E1" and they end with 'FF D9". But the 'RAW' file at step 5 doesn't have even one occurrence of FF D8 FF E1.
1. Your comments would be of value here.
2. Is it possible that since out of a potential 3.57G bad.7z file, since only ~2G is being extracted, it's only partial data and hence cannot be parsed?