Apakah gzip menambahkan pemeriksaan integritas / crc ke .tar?

12

Saya menjalankan perintah:

tar -cf myArchive.tar myDirectory/
gzip myArchive.tar

kemudian saya menyalin file ke banyak media yang tidak dapat diandalkan, dan kemudian saya membukanya menggunakan:

tar -xzf myArchive.tar.gz

Fakta bahwa saya mengompresi tar-ball, akankah dengan cara apa pun menjamin integritas, atau setidaknya CRC dari konten yang belum dibongkar?

Aksel Willgert
sumber

Jawaban:

15

tarsendiri tidak menuliskan checksum untuk perbandingan nanti. Jika Anda gzipyang tararsip Anda dapat memiliki fungsi itu.

tarmenggunakan compress. Jika Anda menggunakan -Zbendera saat membuat arsip tarakan menggunakan compressprogram saat membaca atau menulis arsip. Dari halaman gzipmanual:

Format kompres standar tidak dirancang untuk memungkinkan pemeriksaan konsistensi.

Tapi, Anda bisa menggunakan -zparameter. Kemudian tarmembaca dan menulis arsip melalui gzip. Dan gzipmenulis sebuah checksum CRC. Untuk menampilkan checksum itu gunakan perintah itu:

$ gzip -lv archive.tar.gz
method  crc     date  time           compressed        uncompressed  ratio uncompressed_name
defla 3f641c33 Sep 25 14:01               24270              122880  80.3% archive.tar

Dari halaman gzipmanual:

Saat menggunakan dua format pertama ( gzip atau zip dimaksudkan ), gunzip memeriksa 32 bit CRC.

kekacauan
sumber
5

Ya, format file gzip berisi checksum CRC-32 yang dapat digunakan untuk mendeteksi jika arsip telah rusak.

Tentu saja, sementara checksum memungkinkan gzip memberi tahu Anda bahwa arsip rusak, itu sebenarnya tidak melakukan apa pun untuk membantu Anda memulihkan data di dalam arsip. Dengan demikian, sebagian besar berguna untuk hal-hal seperti memeriksa bahwa arsip yang baru Anda unduh dari web benar-benar telah diunduh dengan benar.

Jika Anda benar-benar khawatir tentang penyimpanan atau pengiriman arsip Anda melalui media yang tidak dapat diandalkan, Anda mungkin ingin mempertimbangkan untuk menggunakan format arsip seperti par yang sebenarnya menyediakan koreksi kesalahan selain deteksi kesalahan. Tentu saja, sisi bawah dari format tersebut adalah redundansi yang diperlukan untuk koreksi kesalahan tentu saja meningkatkan ukuran file.

Ilmari Karonen
sumber
4

tartidak memiliki pemeriksaan integritas. Contoh:

$ echo JJJJJJJJJJJJJJJJJJ > b
$ tar cvf a.tar b
$ sed -i s/JJJJJJJJJJJJJJJJJJ/tttttttttttttttttt/g a.tar
$ tar xvf a.tar
$ cat b

tttttttttttttttttt

Lihat, konten a.tararsip berubah, sehingga file bmemiliki konten yang sama sekali berbeda, tetapi tar tidak memperhatikan ini. Ini berlaku untuk semua tar, termasuk tar-1.28 (terbaru) dengan kedua format tar --format=gnu --format=posix. The paxperintah (alternatif tar reader) pax -r < a.tarjuga tidak melihat perubahan arsip.

pengguna115641
sumber
2
OP tampaknya menyadari (atau setidaknya tersangka) yang tar(setidaknya tanpa satu -zopsi) tidak melakukan pengecekan integritas. Juga, jawaban yang diterima menyatakan ini. Pertanyaannya adalah: apakah gzip(atau penggunaan -zopsi) menambah pemeriksaan integritas?
G-Man Mengatakan 'Reinstate Monica'
G-Man yang benar, Ini bisa menjadi jawaban yang oke jika itu juga termasuk bagian gzip dan menunjukkan bahwa gzip mendeteksi bahwa konten telah berubah.
Aksel Willgert
2

Jika tar menemukan kesalahan saat membongkar, itu akan mencetak pesan dan keluar dengan nilai keluar yang tidak nol. Perilaku ini independen dari algoritma kompresi yang digunakan setelah file tar dibuat.

Jika Anda ingin memverifikasi bahwa file telah berhasil dikirim ke tujuan melalui tautan yang tidak dapat diandalkan, kemudian buat jumlah md5 file sebelum mengirim dan verifikasi jumlah md5 setelah penerimaan.

Jan
sumber
jika saya hanya tertarik pada integritas konten yang sudah dibongkar. MD5 pada tar tidak menambahkan apa-apa ekstra dibandingkan dengan cek tar tidak selama membongkar?
Aksel Willgert
Integritas konten di dalam arsip tar diurus dengan tarsendirinya. Anda bisa menambahkan lapisan tambahan jika diperlukan: Jika integritas file tar diverifikasi, maka konten di dalam arsip tar juga OK. Tapi semua itu harus diurus oleh protokol yang digunakan untuk mentransfer data di tempat pertama.
Jan
-1

Paket PKZip (win / dos) dilengkapi dengan program yang disebut PKZipFix yang dapat memulihkan file dari arsip yang rusak. Saya telah menggunakan utilitas ini di masa lalu, ia dapat memulihkan file dari arsip yang rusak sedang yang tidak akan didekompresi.

pengguna87282
sumber