CD / DVD'nin md5 toplamını hesaplama


18

CD'ye yazdığım bir ISO dosyam var. Şimdi CD'nin doğru oluşturulup oluşturulmadığını nasıl kontrol edebilirim? ISO dosyasında hesapladığım karma toplamı ile kontrol etmek için kullanabileceğim karma toplamı hesaplayan bir komut istiyorum. İdeal olarak komut:

  • ISO dosyasından bağımsız olarak çalışın: yani, diskteki her dosya için karma toplamı listesini tutmak veya blok sayısını hatırlamak istemiyorum
  • Nispeten kısa olun: tek satırlık bir komut harika, iki satır uzunluğundaki bir komutlar zinciri iyi, bir sayfaya yayılan bir komut dosyası değil
  • Oldukça verimli olun: örneğin, ddbir dosyaya geri dönen ve daha sonra dosya md5sumüzerinde çalışan disk kabul edilemez

Eğer hepsini tatmin edemeyen bir cevap yoksa ben de en yakın maçı takdir edeceğim. Bana neden bu kadar basit olmadığını söyleseniz daha iyi olur.

Yanıtlar:


18

Temel sorun, başlangıçta ISO ile ilgili aynı bilgilerin md5sum'unu almak istiyoruz. ISO'yu bir CD'ye yazdığınızda, diskin sonunda büyük olasılıkla md5sum değerini değiştiren boş alan vardır. Böylece, en kısa yol:

md5sum /dev/cdrom

çalışmıyor . Ne işe yarar (ve çevrimiçi belgelerde yaygındır ), yalnızca aygıttaki baytların tam sayısını okumak ve ardından md5sum. Bayt sayısını biliyorsanız aşağıdaki gibi bir şey yapabilirsiniz:

dd if=/dev/cdrom bs=1 count=xxxxxxxx | md5sum

burada 'xxxxx' iso'nun bayt cinsinden boyutudur.

Elinizdeki bayt sayısını bilmiyorsanız, ancak diskinizde hala iso varsa, aşağıdaki gibi bir şey yaparak ( buradan alınır ) ls kullanarak bunları alabilirsiniz :

dd if=/dev/cdrom | head -c `stat --format=%s file.iso` | md5sum

Çalışması gereken çok sayıda tek satırlık yapı var. Her durumda dddiskteki baytları okumak için kullandığımıza dikkat edin , ancak bunları bir dosyaya bağlamıyoruz, onları doğrudan md5sum'a teslim ediyoruz.

Olası hız iyileştirmeleri daha büyük blok boyutu (kullanmak için bazı hesaplamalar yaparak yapılabilir bs=içinde ddkomuta).


Sen kolaylaştırabilirsiniz dd if=/dev/cdrom |için </dev/cdrom. ddCihazlar hakkında büyülü bir şey yok ve cihazları engelliyor, sadece komik bir sözdizimine sahip bir akış manipülasyon komutu.
Gilles 'SO- kötü olmayı bırak

Bu arada, (phunehehe) MD5 sağlama toplamı ile birlikte iso boyutuna sahip olmalısınız. Bu, kısmen kırılan MD5 için özellikle önemlidir, ancak hangi sağlama toplamını kullanırsanız kullanın, hem güvenlik hem de kullanılabilirlik için iyi bir fikirdir.
Gilles 'SO- kötü olmayı bırak

@Gilles: Aslında kullanarak ddsahip bsdüz giriş yönlendirme karşı cihaz önbellek boyutunun veri transferi hızlanma olabilir.
alex

@Gilles: "Kısmen kırılmış MD5" ile ne demek istiyorsun? Ve neden dosya boyutunu tutmalıyım, bir sorun varsa sağlama toplamı hemen söylesin?
phunehehe

@phunehehe: MD5'te bilinen kriptografik zayıflıklar vardır (belirli bir dosya için nasıl çarpışma oluşturulacağı (genel olarak bilinmemektedir, ancak gelebilir). Dosya boyutunu bilmek size biraz daha fazla güven verir (daha fazla olmasa da). Ayrıca, kesilmiş indirmeler gibi sık rastlanan yanlışlıkla yapılan hatalar için size anında geri bildirim sağlar.
Gilles 'SO- kötü olmayı bırak'

2

Bu görev için bir program var. Buna - denir checkisomd5. Ubuntu'da komutla kurulabilir:

sudo apt-get install isomd5sum

Nasıl kullanıyorsun? checkisomd5 /dev/sr0bana verir: Medya denetimi tamamlandı, sonuç: NA. Sağlama toplamı bilgisi yok, medya doğrulanamıyor.
Torsten

Sağlama toplamı "implantisomd5" aracıyla iso görüntüsüne gömülmelidir. İso diske yazılmadan önce yapılması gerekir. Yardımcı program "checkisomd5" e dahildir.
Денис Проскурин

1

Diskteki görüntünün boyutu 2048'e bölünebilirse, çok yaygın gibi görünen tam sayı, o zaman aşağıdaki gibi doğru bir MD5 toplamı alabilirsiniz sr0- hangi kullanılarak bulunur, lshw -C disk- ve nerede bulunabilir "sayım", görüntü boyutunun 2048'e bölünmesiyle elde edilen temettüdür.

dd if=/dev/sr0 bs=2048 count=356352 |md5sum

Çoğu CD, sektör başına 2.048 bayt kullanıcı verisine sahip "Mod 1" parçalarını kullanmaktadır . ("Mod 2" sektör başına 2.336 bayt kullanıcı verisi depolar, ancak Mod 1 tarafından sunulan daha gelişmiş hata algılama ve düzeltme özelliklerinden yoksundur ve Mod 2'nin hatalara tolerans gösterilemeyen veriler için daha az kullanışlı olmasına neden olur.)
CVn
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.