望ましいCentosで解凍する必要がある古いQNXシステムからのzファイル。
これらのファイルはQNXパック方式でパックされており、QNXをロードしてこれらのファイルをアンパックするために使用できる仮想マシン(VMWARE)はありません。
利用可能なすべての抽出プログラムを試しましたが、誰もこれらを解凍できません。ファイルファイル名は、私が以下を試した結果としてデータを提供します:
Centosでの出力:
-rwxr--r-- 1 root root 896 Mar 11 05:15 PMITN01.z
[root@green update]# zcat PMITN01.z
zcat: PMITN01.z: not in gzip format
[root@green update]# gunzip PMITN01.z
gunzip: PMITN01.z: not in gzip format
[root@green update]# uncompress -v PMITN01.z
PMITN01.z - no .Z suffix
[root@green update]# tar -zxvf PMITN01.z
gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error exit delayed from previous errors
[root@green update]# cat PMITN01.z | cpio -imdv
cpio: premature end of archive
[root@green update]# file PMITN01.z
PMITN01.z: data
フリーズ/メルトをインストールした後:
[root@green update]# cp PMITN01.z PMITN01.z.F
[root@green update]# melt PMITN01
PMITN01.F: No such file or directory
[root@green update]# melt PMITN01.z
PMITN01.z.F: not in frozen format
私が見つけた唯一の貴重な検索は次のとおりです OpenQNXフォーラム 。
- - -更新 - - - -
ファイルを追加しました ここ ファイルの種類を確認/確認できます。
質問に対する答えがまだ見つからないので、なぜ答えが賛成されるのかわかりません。
より複雑にするために、使用されるシステムはおそらくファイルを複数のファイルに分割します。これはll-hal出力です。
-rwxrw-r-- 1 root root 357 Feb 7 2012 PMIPN.z
-rwxrw-r-- 1 root root 362 Feb 7 2012 PMIRN01.z
-rwxrw-r-- 1 root root 695 Feb 7 2012 PMIRN02.z
-rwxrw-r-- 1 root root 995 Feb 7 2012 PMIRN03.z
-rwxrw-r-- 1 root root 363 Feb 7 2012 PMIRN04.z
-rwxrw-r-- 1 root root 3.2K Feb 7 2012 PMIRN05.z
-rwxrw-r-- 1 root root 363 Feb 7 2012 PMIRN06.z
-rwxrw-r-- 1 root root 363 Feb 7 2012 PMIRN07.z
-rwxrw-r-- 1 root root 362 Feb 7 2012 PMIRN08.z
-rwxrw-r-- 1 root root 851 Feb 7 2012 PMIRN09.z
-rwxrw-r-- 1 root root 1022 Feb 7 2012 PMIRN10.z
-rwxrw-r-- 1 root root 361 Feb 7 2012 PMIRN11.z
-rwxrw-r-- 1 root root 695 Feb 7 2012 PMIRN12.z
-rwxrw-r-- 1 root root 15K Feb 7 2012 PMIRN13.z
-rwxrw-r-- 1 root root 16K Feb 7 2012 PMIRN14.z
-rwxrw-r-- 1 root root 1.6K Feb 7 2012 PMIRN15.z
-rwxrw-r-- 1 root root 638 Feb 7 2012 PMIRN16.z
-rwxrw-r-- 1 root root 1.9K Feb 7 2012 PMIRN17.z
-rwxrw-r-- 1 root root 13K Feb 7 2012 PMIRN18.z
-rwxrw-r-- 1 root root 363 Feb 7 2012 PMIRN19.z
-rwxrw-r-- 1 root root 578 Feb 7 2012 PMIRN20.z
-rwxrw-r-- 1 root root 362 Feb 7 2012 PMIRN21.z
-rwxrw-r-- 1 root root 1.6K Feb 7 2012 PMIRN22.z
-rwxrw-r-- 1 root root 361 Feb 7 2012 PMIRN23.z
-rwxrw-r-- 1 root root 361 Feb 7 2012 PMIRN24.z
-rwxrw-r-- 1 root root 688 Feb 7 2012 PMIRN25.z
-rwxrw-r-- 1 root root 362 Feb 7 2012 PMIRN26.z
-rwxrw-r-- 1 root root 650 Feb 7 2012 PMIRN27.z
-rwxrw-r-- 1 root root 801 Feb 7 2012 PMIRN28.z
-rwxrw-r-- 1 root root 3.0K Feb 7 2012 PMIRN29.z
-rwxrw-r-- 1 root root 361 Feb 7 2012 PMIRN30.z
-rwxrw-r-- 1 root root 354 Feb 7 2012 PMIRN31.z
-rwxrw-r-- 1 root root 569 Feb 7 2012 PMIRN32.z
-rwxrw-r-- 1 root root 361 Feb 7 2012 PMIRN33.z
-rwxrw-r-- 1 root root 362 Feb 7 2012 PMIRN34.z
-rwxrw-r-- 1 root root 362 Feb 7 2012 PMIRN35.z
-rwxrw-r-- 1 root root 7.8K Feb 7 2012 PMIRN36.z
-rwxrw-r-- 1 root root 875 Feb 7 2012 PMIRN37.z
-rwxrw-r-- 1 root root 4.6K Feb 7 2012 PMIRN38.z
-rwxrw-r-- 1 root root 3.2K Feb 7 2012 PMIRN39.z
-rwxrw-r-- 1 root root 362 Feb 7 2012 PMIRN40.z
-rwxrw-r-- 1 root root 362 Feb 7 2012 PMIRN41.z
-rwxrw-r-- 1 root root 7.4K Feb 7 2012 PMIRN42.z
-rwxrw-r-- 1 root root 362 Feb 7 2012 PMIRN43.z
ご覧のとおり、ファイルサイズの明確な分割ではありません。
リンクされた例はzlibストリームです。 pigz (gzipの並列実装)を使用して、.z
ファイルを解凍できます。例えば。
pigz -dz *.z
結果のPMRINnn
を組み合わせる場合は、catを使用できます。ここで、ワイルドカードはそれらを名前で並べ替えます。
cat PMRIN?? > PMRIN
最初にコマンドを試す必要があります
file yourfilename.z
そしてそれが何として識別されているかを見てください、それはどのプログラムを示しているはずです。
file
がこれがcompress'd data 16 bits
であると言った場合、使用できます
gzip -d < yourfilename.z > yourfilename
(uncompress
プログラムに加えて)それを解凍します。
次の Perlスクリプト をファイルを含むディレクトリ(たとえば、Qでリンクしたもの、media.ini.z)で実行します。
#!/usr/bin/Perl -w
use strict;
use Compress::Zlib;
my ($tempFilename2, $tempFilename1, $gz, $buffer, $gzerrno);
$tempFilename1 = "mediainf.ini.z";
$tempFilename2 = "mediainf.ini";
open (GZIPFILE, "$tempFilename1")
|| warn "Can't open Zip input file: $tempFilename1: $!";
binmode GZIPFILE;
open (DATAFILE, ">>$tempFilename2")
|| warn "Can't open uncompressed data file: $tempFilename2: $!";
binmode DATAFILE;
my $x = inflateInit()
or die "Cannot create a inflation stream\n" ;
my $input = '' ;
my ($output, $status) ;
while (read(GZIPFILE, $input, 4096))
{
($output, $status) = $x->inflate(\$input) ;
print DATAFILE $output
if $status == Z_OK or $status == Z_STREAM_END ;
last if $status != Z_OK ;
}
die "inflation failed\n"
unless $status == Z_STREAM_END ;
Mediainf.iniの出力:
00:01=outinf_md5&lang_cd;
00:02=db_area_name&db_fname&part&dir&decomp_sz&file_op&ftype&data_type_id&area_id;
01:c3031a6ffb4e0d09f88043b6692b956c&en;
01:c3031a6ffb4e0d09f88043b6692b956c&fr;
01:c3031a6ffb4e0d09f88043b6692b956c&de;
01:c3031a6ffb4e0d09f88043b6692b956c&es;
01:c3031a6ffb4e0d09f88043b6692b956c⁢
01:c3031a6ffb4e0d09f88043b6692b956c&pt;
01:c3031a6ffb4e0d09f88043b6692b956c&nl;
01:c3031a6ffb4e0d09f88043b6692b956c&ru;
01:c3031a6ffb4e0d09f88043b6692b956c&none;
生のzlibデータを解凍する代替方法については、この他の Q&A も参照してください。
file(1)
は何を教えてくれますか?
ウィキペディアのページ は、Unixの pack コマンドによって処理される廃止された形式(単純なハフマン符号化)を暗示しているようです。私の(完全な検索ではありませんが)フォーマットやソースコードへのポインタはありません。おそらく nix Heritage Society にはいくつかの古代のコードがあります。
しかし、先史時代のCをコンパイルすることは、興味深い演習になる可能性があります。これらすべてを純粋に娯楽的価値のために行っているのでない限り、最近の(っぽい)マシンを入手して仮想マシンでQNXを実行しても、害ははるかに少なくなります。