заполнение гудрона нулями


10

При выполнении tar для сжатого файла bz2 я обнаружил следующую ошибку:

tar: dump.sql: файл сократился на 19573448400 байт; заполнение нулями

Кто-нибудь может указать, что может быть причиной этой проблемы?

Спасибо.

Ответы:


8

Это не ошибка. Это ИНФО.

Готов поспорить, что вы сжимаете / распаковываете образ виртуальной машины или иным образом распределенный файл.

Bzip2 обнаружил, что файл в основном равен нулю, и сжал его, чтобы его не оказалось в сжатом файле.

Это разница между фактическим размером и видимым размером разреженных файлов.



1
Если это не ошибка, то почему он генерирует ненулевой код выхода?
Бен Коллинз

В моем случае файл .tar.bz2 фактически содержал поврежденные данные: он содержал группу байтов NUL в месте, указанном в сообщении, где он должен был содержать ненулевые данные. Понятия не имею почему. Когда я попытался создать еще один .tar.bz2 только для этого файла, он работал правильно.
200_success

1
Это случилось со мной при создании архива с необработанным tar (не сжатым). Определенно не связано с bzip. И в любом случае, кодировка длины прогона не совсем необычна, поэтому bzip не будет беспокоиться об этом.
Wyatt8740

1

Файл, о котором идет речь, был назван dump.sql, поэтому, вероятно, не сжатый файл bz2. - В любом случае проблема не имеет ничего общего с bz2 или типом содержимого файла.

Сообщение означает, что stat()в файле указан размер, отличный от того, который фактически может быть считан из файла. Это может произойти, если файл был изменен во время tarработы.

Это также происходит с «виртуальными файлами», такими как файлы в файловой системе Linux / sys. Многие из них имеют размер 4096 байт (произвольное значение). Однажды read()они возвращают только пару байтов.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.