Tek bir dosyaya hata düzeltme kodları (BCH, RS vb.) Eklemek mümkün müdür?


12

Bildiğim kadarıyla, WinRAR arşivleri ECC (hata düzeltme kodları) içerebilir, bu nedenle arşiv biraz hasar görürse, kendi kendine düzeltilebilir.

Mesela ben ilk kodlamak can archives.tariçin archives.tar.ecc, ve sonra benim sunucuya yükleyin. İstemci tarafından indirildikten sonra dosya biraz hasar görürse, kodu çözerek dosyayı tekrar indirmeden otomatik olarak düzeltilebilir archives.tar.ecc. Ağ bağlantısının kararsız olması harika bir fikir olacağını düşünüyorum.

Linux'ta çalışan ve ihtiyaçlarımı karşılayabilecek herhangi bir (açık kaynaklı) yazılım olup olmadığını merak ediyorum.

Herhangi bir öneri?


bir dereceye kadar, bu zaten gerçekleşir - her dosyanın başlık chksum alanı, boyut alanını eklemek için bu başlığın kurucu baytlarının toplamıdır. Birçoğu tardaha da ileri gider - GNU tar, üstbilgi meta verilerindeki seyrek dosya deliklerini kodlar ve herhangi bir POSIX paxuyumlu arşivleyici tarafından çıkarıldığında , dosyayı yeniden oluşturmak için gereken bilgileri veya GNU tarafından tarorijinal seyrek dosyaya dosyalar oluşturur. W / yardımcı programı için POSIX tarafından belirtildiği şekildepax tanımlanmış öncelikle kodlanmış başlık değişkenlerini kullanır -o.
mikeserv

Yanıtlar:


6

Aynı sorunu yaşadım ve par2 programı / standardı kurtarma ve doğrulama için ayrı dosyalar oluşturmayı içerdiğinden, diğer yanıtta sağlanan çözümlerin kabul edilebilir olmadığını gördüm. Sanırım orijinal asker gibi, hata düzeltme kodlarına sahip tek bir dosya istiyorum.

Paket yöneticisinde bulunan rsbep programını buldum ve gerekli kodu burada buldum: https://www.thanassis.space/rsbep.html

Bu, Reed-Solomon hata düzeltme kodlarına sahip bir dosya oluşturmanıza ve ardından orijinal dosyayı muhtemelen bozuk olan ECC sürümünden almanıza olanak tanır.


rsbep harika! Ama biraz farklı: tamamen donmuş bir işletim sistemi, içeride dosya ekleyebilirsiniz, ancak içeride ne olduğunu değiştiremezsiniz ve hareket etmek biraz daha zahmetlidir. Ancak FUSE ve açık kaynak kullanan gerçekten ilginç bir yaklaşım.
gaborous

1
@gaborous, bu doğru değil. rsbepSaydam olarak kullanılan bir FUSE fs uygulaması var , ancak bu yalnızca dosya bazında çalışan komut dosyalarının üstünde.
nyov

6

Reed-Solomon hata düzeltmesini kullanan PAR2 ile ilgileniyorsunuz. parchive ECC dosya biçimi belirtimidir, Linux için PyPar veya par2tbb isteyeceksiniz ve Windows'ta QuickPar adlı bir GUI kullanıyorsunuz .


1
PyPar ve par2tbb için bağlantılar bana kırık görünüyor. Burada
par2tbb

2
Bence PyPar hata düzeltme ile tamamen alakasız.
mbarkhau

2

Ecc dosyasının arşivden ayrı olmasını istiyorsanız, bit bozulmasına karşı yeni nesil PAR benzeri bir koruma sistemi sağlamayı amaçlayan bir açık kaynak Python projesi olan pyFileFixity'yi kullanabilirsiniz .

Eğer arşivde doğrudan dahil edilecek ecc korumasını istiyorsanız, opensource kullanabilirsiniz DAR ve ecc (yani kısmi bozuk arşiv çıkarma sağlar) hem katı olmayan oluşturmasına olanak sağlar nesil TAR, bir tür ( PAR2 kullanarak) ve katalog izolasyonunu (yani, dizin ağacı ve dosya sistemi meta verilerinin bir yedeğini) doğrudan .dar arşivlerine kaydedin.


0

Bir başka benzer 2018 projesi, iki ayrı araçta hem ayrı hem de gömülü dosya hatası düzeltmesi sağlıyor gibi görünen Redupe'dir :

İlk araç, redupe, gzip veya bzip2 gibi sıkıştırma araçlarından sonra modellenir, ancak ortadan kaldırmak yerine artıklık ekler.

Web sayfasındaki örnek (kısaca değişti) kullanım durumunuza benzer:

$ redupe home-backup.tar.gz
$ ls -l
-rw------- 1 rescrv 5625162218 home-backup.tar.gz
-rw-r--r-- 1 rescrv 6433996800 home-backup.tar.gz.rd

reundupe daha sonra dosyayı geri yüklemek ve muhtemelen küçük hataları düzeltmek için kullanılabilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.