Recuperar arquivo Gzip enorme e quebrado

0

Eu tenho um arquivo de 50.9 GB que é um backup da minha pasta pessoal no Ubuntu 12.04. Eu compactado este arquivo usando tar no Terminal da minha unidade sda (ext4) para sdb (ext4). O comando que usei foi

tar cvfz /media/2ndHDD/home.tar /home/<my_username>

Eu estava recebendo este erro após a compactação:

tar: Exiting with failure status due to previous errors .

Repeti a compactação três vezes, mas recebi o mesmo erro quando a compactação foi concluída. Como eu já estou exausto disso na terceira tentativa (especialmente que precisei de um dia inteiro), desconsiderei o erro e esperava que ele não afetasse a descompactação do arquivo.

Depois disso, eu instalei um novo sistema operacional que é o Ubuntu 14.04 para o meu drive sda. Após a instalação, tentei descompactar o arquivo que compactei há algum tempo usando este

tar xvf home.tar

mas estou recebendo este erro:

gzip: stdin: invalid compressed data--format violated
tar: Unexpected EOF in archive
tar: Unexpected EOF in archive
tar: Error is not recoverable: exiting now

Então eu tentei gzip o arquivo usando

gzip home.tar

e esperou quase 1 hora para terminar. E depois disso, eu o descomprimi novamente usando o gzip dessa vez.

tar -xvzf home.tar.gz

O processo não pode ser concluído e irá parar após 15 minutos, o que deixa a pasta 'home' criada incompleta dos arquivos que estou esperando. Repeti o processo várias vezes, mas não terminarei realmente.

Existe alguma maneira de recuperar esse enorme arquivo compactado? Eu já tentei o gzrecover ( link ), mas sempre falha. Também poderia ser possível que eu já tenha perdido meus arquivos quando tentei convertê-lo em gzip? Eu realmente me arrependo porque eu não copiei a pasta inicial descompactada. : (

UPDATE: Só agora, tentei convertê-lo de volta para o tar usando este comando

gzip -d home.tar.gz

e descomprimiu-o executando

tar xvf home.tar

agora estou recebendo este erro:

gzip: stdin: invalid compressed data--format violated
tar: Unexpected EOF in archive
tar: Unexpected EOF in archive
tar: Error is not recoverable: exiting now

E até mesmo listar os arquivos dentro do arquivo tar não terminará o processamento

tar -tvf home.tar

Eu ainda recebo o mesmo erro acima

ATUALIZAÇÃO (01/11/2015): Eu tentei executar strace gunzip home.tar.gz e depois de 15-20 minutos eu estava recebendo estes:

read(3, "10782p61122241?2.75sC0|D$PF$r2V"..., 32768) = 32768
write(4, "6Y142Nn563>25c3655 R21b'631F"..., 32768) = 32768
read(3, "[6\"\r54s13b\n747Ej0tF5B436E210"..., 32768) = 32768
write(4, "\n1g1\m142@\"%7\"Q+a^!86344\v4&i1a"..., 32768) = 32768
read(3, "2717(66?6AzC110${V10W9.71a2716o4"..., 32768) = 32768
write(4, "66sH024T56<?762o{477w70431757"..., 32768) = 32768
read(3, "66537}G5506243Z\52g42613G~03bP"..., 32768) = 32768
write(4, "6!1233672<50667uSkj>5$75q1^8Jk"..., 32768) = 32768
read(3, "~D232\"37m02%5S75166RB7727e'1#S43"..., 32768) = 26366
read(3, "", 6402)                       = 0
write(4, "0\"
tar xvf home.tar
59\"#M0I303T0N117\7(I4217!"..., 32768) = 32768 write(4, " 5640h5B02710)4\"pv32?\"0Sez7"..., 14402) = 14402 close(3) = 0 utimensat(4, NULL, {{1420884866, 686801693}, {1420818997, 36136000}}, 0) = 0 fchown32(4, 1000, 1000) = 0 fchmod(4, 0666) = 0 close(4) = 0 rt_sigprocmask(SIG_BLOCK, [HUP INT PIPE TERM XCPU XFSZ], [], 8) = 0 unlink("home.tar.gz") = 0 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 _llseek(0, 0, 0xbf8c86a0, SEEK_CUR) = -1 ESPIPE (Illegal seek) close(0) = 0 close(1) = 0 close(2) = 0 exit_group(0) = ? +++ exited with 0 +++

Com a saída acima, é possível que eu ainda possa recuperá-lo? Eu não sei por onde começar: (

    
por JoenasE 10.01.2015 / 13:10

1 resposta

3

Primeiro você criou um arquivo tar gzipado com:

tar cvfz /media/2ndHDD/home.tar /home/<my_username>

Você ignorou os erros e não rolou para ver o que eles eram (uma péssima ideia). Então você tentou descompactar o arquivo tar (mesmo sem a opção -z, deveria ter reconhecido que é um arquivo tar gzipado):

tar xvf home.tar

Ele não funcionou e você compactou o archive já compactado (com o mesmo algoritmo de compactação). Você pode explicar o processo de pensamento aqui?

gzip home.tar

Então você tentou descompactar um tarball gzipado que foi novamente compactado:

tar -xvzf home.tar.gz

Deixe-me perguntar - você sabe o que está tentando alcançar ou é que tudo está apenas tentando comandos aleatórios, "vamos ver o que acontece" sem prestar atenção ao que eles realmente fazem?

Eu recomendo strongmente planejar backups no futuro e prestar atenção aos erros que estavam lá, porque talvez os desenvolvedores de tar pensassem que eles eram importantes o suficiente (afinal, é um backup - geralmente muito importante) que eles deveriam ser repetidos em o fim do processo ...

Desta vez, eu tentaria primeiro ver qual é o formato atual do seu arquivo (ou o que resta dele). Use:

file <archive_file>

Se é realmente arquivo compactado com gzip e está lançando esses erros, temo que você esteja sem sorte.

UPDATE: Eu li que o arquivo atual que você tem é um arquivo gzip:

home.tar: gzip compressed data, from Unix, last modified: Fri Jan  9 22:07:25 2015.

Certifique-se de que, dependendo do tipo de dados compactados, eu estou supondo 4 vezes mais espaço livre na partição em que você está fazendo isso. Mova o home.tar para fora do diretório / home se ele já não estiver em outro lugar.

Execute o seguinte como último recurso para desempacotá-lo:

gunzip -c home.tar > home1.tar
file home1.tar

O comando Fist tentará descompactar o arquivo home.tar no home1.tar. O outro lhe dirá o que é home1.tar. Ainda poderia ser outro arquivo gzip.

Se file disser que são dados compactados, execute:

gunzip -c home1.tar > home2.tar

Certifique-se de prestar atenção aos nomes dos arquivos. Descubra o que o home2.tar é agora:

file home2.tar

Novamente, se os dados forem gzipados, execute gunzip novamente como acima, desta vez redirecionando para home3.tar. Execute file novamente.

Se diz:

homeX.tar: POSIX tar archive (GNU)

Tente listar seu conteúdo com:

tar taf homeX.tar

e se isso funcionar, tente descompactar o arquivo tar.

    
por Marcin Kaminski 10.01.2015 / 22:59