como extrair o arquivo .z de um antigo QNX em Centos

2

z arquivos de um antigo sistema QNX que precisa ser descompactado em Centos preferidos.

Esses arquivos são compactados com o método do pacote QNX e não há nenhuma Máquina Virtual (VMWARE) disponível para carregar o QNX e descompactar esses arquivos.

Eu tentei todos os programas de extração disponíveis, mas ninguém é capaz de desempacotá-los. Arquivo nome do arquivo fornece dados como resultado Eu tentei o seguinte:

  • gunzip
  • descompactar
  • tar
  • winrar
  • 7z
  • descompacte

Saída em 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

Depois de instalar o congelamento / derreter:

[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

A única pesquisa valiosa que encontrei é o seguinte fórum do OpenQNX .

----- UPDATE --------

Eu adicionei o arquivo aqui para que você possa ver / verificar que tipo de arquivo é .

Ainda não encontrei uma resposta para a minha pergunta, por isso não sei porque as respostas são votadas ...

Para complicar ainda mais o sistema usado provavelmente dividir os arquivos em vários arquivos, aqui está uma saída: -

-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

Como você pode ver, não é uma divisão clara no tamanho do arquivo.

    
por Tahir Malik 10.03.2014 / 18:05

4 respostas

3

O exemplo vinculado é um fluxo zlib. Você pode usar o pigz (uma implementação paralela do gzip) para descompactar os arquivos .z . Por exemplo,

pigz -dz *.z

Se você quiser combinar o PMRINnn resultante, você pode usar cat, onde o caractere curinga irá ordená-los pelo nome:

cat PMRIN?? > PMRIN
    
por 14.03.2014 / 06:44
5

Você deve primeiro tentar o comando

file yourfilename.z

e ver o que é identificado como, que deve ser uma indicação de que programa.

Se file disser que isso é compress'd data 16 bits , você pode usar

gzip -d < yourfilename.z > yourfilename

para descomprimi-lo (além do programa uncompress .

    
por 10.03.2014 / 18:16
3

Execute o seguinte script perl no diretório que contém o arquivo (por exemplo, o que você vinculou ao seu arquivo 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 ;

Saída do 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&it;
01:c3031a6ffb4e0d09f88043b6692b956c&pt;
01:c3031a6ffb4e0d09f88043b6692b956c&nl;
01:c3031a6ffb4e0d09f88043b6692b956c&ru;
01:c3031a6ffb4e0d09f88043b6692b956c&none;

Veja também este outro Perguntas e respostas sobre alternativas para descompactar dados brutos do zlib.

    
por 14.03.2014 / 04:16
1

O que o file(1) lhe diz?

A página da Wikipédia parece implicar um formato obsoleto (simples codificação Huffman) tratado pelo pacote no Unix. Minha pesquisa (não exaustiva) não fornece indicações para o formato ou código-fonte. Talvez a The Unix Heritage Society tenha algum código antigo por aí.

Mas fazer C pré-histórico compilar pode ser um exercício interessante. A menos que você esteja fazendo tudo isso apenas pelo valor de entretenimento, obter qualquer máquina recente (ish) e rodar o QNX em uma máquina virtual vai doer muito menos.

    
por 10.03.2014 / 18:37

Tags