bantalan tar dengan nol

10

Saat melakukan tar pada file yang dikompresi bz2 saya menghadapi kesalahan berikut,

tar: dump.sql: File menyusut 19573448400 byte; padding dengan nol

Adakah yang bisa menunjukkan apa yang menyebabkan masalah ini?

Terima kasih.

Iliyas Shirol
sumber

Jawaban:

8

Itu bukan kesalahan. Itu INFO.

Saya berani bertaruh Anda sedang mengompresi / mendekompresi gambar Mesin Virtual, atau file yang jarang dialokasikan.

Bzip2 telah mendeteksi bahwa sebagian besar file nol, dan mengompresnya sehingga mereka tidak ada di file terkompresi.

Ini adalah perbedaan antara ukuran aktual dan ukuran nyata dari file jarang.

Tom O'Connor
sumber
Saya menemukan utas yang sangat membantu menguatkan dan menjelaskan lebih lanjut: groups.google.com/d/msg/comp.os.linux.misc/RES9Kvw7kO4/…
Martin Eden
1
Jika itu bukan kesalahan, lalu mengapa itu menghasilkan kode keluar yang tidak nol?
Ben Collins
Dalam kasus saya, file .tar.bz2 sebenarnya berisi data yang rusak: itu berisi sekelompok byte NUL di lokasi yang ditunjukkan dalam pesan, di mana seharusnya berisi data yang tidak nol. Saya tidak tahu kenapa. Ketika saya mencoba membuat .tar.bz2 hanya dari file itu, itu berfungsi dengan benar.
200_sukses
1
Ini baru saja terjadi pada saya saat membuat arsip tar mentah (tidak dikompresi). Jelas tidak terkait bzip. Lagi pula, jangka panjang pengkodean bukanlah hal yang tidak biasa sehingga bukan sesuatu yang bzip akan repot melaporkan.
Wyatt8740
1

File yang dimaksud dipanggil dump.sql, jadi mungkin bukan file yang dikompresi bz2. - Bagaimanapun, masalahnya tidak ada hubungannya dengan bz2 atau jenis konten file.

Pesan itu berarti, bahwa stat()pada file melaporkan ukuran yang berbeda dari jumlah yang sebenarnya bisa dibaca dari file. Ini dapat terjadi, jika file diubah saat tarsedang bekerja.

Ini juga terjadi pada "file virtual" seperti yang ada di sistem file Linux / sys. Banyak dari mereka dilaporkan dengan ukuran 4096 Bytes (nilai arbitrer). Sekali read(), mereka hanya mengembalikan beberapa byte.

Robert Siemer
sumber