imbottitura in catrame con zeri


10

Quando eseguo un tar su un file compresso bz2 sto riscontrando il seguente errore,

tar: dump.sql: file ridotto di 19573448400 byte; imbottitura con zeri

Qualcuno può indicare cosa potrebbe causare questo problema?

Grazie.

Risposte:


8

Non è un errore. Sono INFO.

Sono disposto a scommettere che stai comprimendo / decomprimendo un'immagine della macchina virtuale, o altrimenti un file scarsamente allocato.

Bzip2 ha rilevato che il file è principalmente azzerato e lo ha compresso in modo che non siano presenti nel file compresso.

Questa è la differenza tra dimensione effettiva e dimensione apparente dei file sparsi.


Ho trovato una discussione che corrobora e spiega ulteriormente: groups.google.com/d/msg/comp.os.linux.misc/RES9Kvw7kO4/…
Martin Eden

1
Se non è un errore, perché produce un codice di uscita diverso da zero?
Ben Collins,

Nel mio caso, il file .tar.bz2 conteneva effettivamente dati danneggiati: conteneva un mucchio di byte NUL nella posizione indicata nel messaggio, dove doveva contenere dati diversi da zero. Non ho idea del perché. Quando ho provato a creare un altro .tar.bz2 di quel solo file, ha funzionato correttamente.
200_successo

1
Questo mi è appena successo durante la creazione di un archivio tar non compresso. Sicuramente non correlato a bzip. E comunque, la codifica della lunghezza della corsa non è esattamente inusuale, quindi non è qualcosa che bzip potrebbe disturbare nel riferire.
Wyatt8740

1

È stato chiamato il file in questione dump.sql, quindi probabilmente non è un file compresso bz2. - In ogni caso, il problema non ha nulla a che fare con bz2 o il tipo di contenuto del file.

Il messaggio indica che a stat()sul file ha riportato una dimensione diversa rispetto alla quantità che potrebbe effettivamente essere letta dal file. Ciò può accadere se il file è stato modificato mentre tarfunzionava.

Questo succede anche su "file virtuali" come quelli sul filesystem Linux / sys. Molti di questi sono segnalati con 4096 byte di dimensione (un valore arbitrario). Una voltaread() restituiscono solo un paio di byte.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.