(tar: / dev / nst0: Não é possível ler: Não é possível alocar memória) com tar, pv e unidade de fita

1

Estou tentando usar pv (pipeviewer) junto com tar para fazer backups em fita para ver o progresso e o eta da seguinte forma:

du -s /home/myuser
115630916   /home/myuser
tar -cf - /home/myuser/ | pv -s 115630916 > /dev/nst0

O que funciona bem, ele grava em fita com sucesso. Mas quando eu tento testar o arquivo tar:

mt -f /dev/nst0 rewind
tar -tvf /dev/nst0

Eu recebo os seguintes erros:

tar: /dev/nst0: Cannot read: Cannot allocate memory
tar: At beginning of tape, quitting now
tar: Error is not recoverable: exiting

Eu pesquisei e houve sugestões de usar --blocking-factor=128 ao criar meu backup e restauração. Eu ainda recebo o mesmo erro.

Também vale a pena notar que, se eu usar apenas o tar, tudo funciona 100%, incluindo a restauração, então talvez pv esteja quebrando isso?

    
por Andrew 17.01.2012 / 09:43

2 respostas

3

Resolvido, pv estava criando um bloco / tamanho de buffer diferente ...

Na página pv man :

  

O tamanho do buffer padrão é o tamanho do bloco do arquivo de entrada   sistema de arquivos multiplicado por 32 (512kb max), ou 400kb se o tamanho do bloco   não pode ser determinado.

Na página tar man :

  

tamanho do bloco de Nx512 bytes (padrão N = 20)

Portanto, forneça o tamanho correto do buffer para pv as (20 x 512 = 10240)

tar -cf - /home/myuser/ | pv -B 10240 -s 142524k > /dev/nst0

Agora, se você testar o arquivo com tar -tvf /dev/nst0 , ele deverá funcionar.

    
por Andrew 18.01.2012 / 09:35
0

Eu tive um erro muito semelhante, mas não estava usando pv ou qualquer outra coisa em um pipe entre tar e o dispositivo de fita.

O bit do fator de bloqueio é a chave, no entanto. Eu li que para melhores resultados, você deve usar um tamanho de bloco maior do que o padrão, então eu tinha usado o fator de bloqueio 512 na linha de comando tar:

tar -b 512 -cf /dev/tape files

Infelizmente, o tar não descobre automaticamente o fator de bloqueio e você também precisa especificá-lo na restauração.

tar -b 512 -xpf /dev/tape
    
por Dan Pritts 09.02.2016 / 17:14