md5 obrazów iso

Tematy związane z oprogramowaniem, instalacją, konfiguracją
gr3g
Posty: 25
Rejestracja: 14 lutego 2007, 17:25

md5 obrazów iso

Post autor: gr3g »

Pobrałem z ftp.pl.debian.org obrazy najnowszej wersji Debiana Sarge:
debian-31r4-i386-binary-1.iso
debian-31r4-i386-binary-2.iso
Sprawdziłem sumy kontrolne z pomocą polecenia md5sum i zgadzały się z tymi umieszconymi na serwerze ftp,
Po wypaleniu pierwszego obrazu płyty za pomocą k3b w Debianie sparwdziłem sumę kontrolną md5 poleceniem:
md5sum /dev/cdrom i ... teraz już suma się nie zgadzała. Płyta wygladała na poprawnie wypaloną. Dało sie ją
odczytać. MIałem już takie sytuacje i dawało się z takich płyt zainstalować system.
Czy może sprawzdam sumę kontrolną wypalonej w niewłaściwy sposób?
Dzięki zz pomoc.
cult
Posty: 6
Rejestracja: 06 stycznia 2007, 19:29

Post autor: cult »

Kod: Zaznacz cały

cd /mnt/cdrom

Kod: Zaznacz cały

md5sum -c md5sum.txt
gr3g
Posty: 25
Rejestracja: 14 lutego 2007, 17:25

suma md5 cd..

Post autor: gr3g »

Dziękuję.

Kod: Zaznacz cały

md5sum -c md5sum.txt
to dobry pomysł, ale ciągle nie wiem dlaczego sprawdzenie skrótu md5 na obrazie iso wypadło inaczej niż sprawdzenie md5sum /dev/cdrom (po wypaleniu płyty). Czy obraz ISO to nie jest to samo co cała wypalona płytka?
Jeżeli ktoś zna odpowiedź to będę wdzięczny, potrzebne mi to tak z czystej technicznej ciekawości.
cult
Posty: 6
Rejestracja: 06 stycznia 2007, 19:29

Post autor: cult »

md5 jest unikalny dla każdego pliku. Nawet jeśli pliki mają taką samą wielkość, a inną zawartość to md5sum będą różne (sprawdzałem to na plikach tekstowych)
gr3g
Posty: 25
Rejestracja: 14 lutego 2007, 17:25

Post autor: gr3g »

Oczywiście wynik funkcji skrótu md5 w założeniu ma dawać unikalny wynik dla każdego pliku, więc zmiana chociaż jednego bajtu zmienia wynik polecenia md5sum. To jest dla mnie jasne. Chodzi mi o coś innego.
Poświęciłem jeszcze parę płytek na eksperymenty więc opiszę dokładnie o co mi chodzi, bo uważam, że temat jest ciekawy.

Pobrałem obraz debian-31r4-i386-binary-1.iso (obraz płyty DVD)
sprawdziłem jego skrót md5 i otrzymałem wynik:

Kod: Zaznacz cały

e04af8585f0e04cda7cbb1b0ba726bdd
- taka wartość była również umieszczona w pliku MD5SUM na serwerze ftp skąd pobrałem obraz.

Użyłem programu k3b aby wypalić obraz na płytę DVD. W oknie programu pojawił się wynik obliczenia funkcji md5sum:

Kod: Zaznacz cały

e04af8585f0e04cda7cbb1b0ba726bdd
Zaznaczyłem "weryfikację zapisu", po nagraniu weryfikacja przebiegła pomyślnie. Po nagraniu płyty wykonałem polecenie:

Kod: Zaznacz cały

md5sum /dev/cdrom
otrzymałem:

Kod: Zaznacz cały

242efd93b40ac90652dccf9d08864e8e
Po sprawdzeniu:

Kod: Zaznacz cały

cd /media/cdrom
md5sum md5sum.txt
Polecenie nie zwróciło błędów, więc wynika z tego, że pakiety są w porządku, ale...
Najciekawsze jest to, że kiedy zrzuciłem obraz z tej nagranej płyty poleceniem:

Kod: Zaznacz cały

dd if=/dev/cdrom if=debian-31r4-i386-binary-1.iso
suma kontrolna obrazu zrzuconego na dysk wynosiła:

Kod: Zaznacz cały

242efd93b40ac90652dccf9d08864e8e
a kiedy nagrałem ten obraz na nowy dysk DVD za pomocą k3b i sprawdziłem md5 poleceniem:

Kod: Zaznacz cały

md5sum /dev/cdrom
otrzymałem znowu:

Kod: Zaznacz cały

242efd93b40ac90652dccf9d08864e8e
Wygląda więc na to, że k3b przed wypaleniem obrazu płyty za pierwszym razem (obraz pobrany bezpośrednio z ftpa) trochę go zmodyfikował po swojemu. Potem za drugim razem już nic nie przerabiał.
Pytanie jest następujące:

Dlaczego i czy można tak wypalić obraz płyty DVD żeby nie modyfikować przy tym oryginalnego ISO?

Dziękuję za każdą odpowiedź, może ktoś ma podobne doświadczenia, ja szukam rozwiązania dalej.
velmafia
Member
Posty: 1820
Rejestracja: 01 września 2006, 00:56
Lokalizacja: Las

Post autor: velmafia »

gr3g, przy nagrywaniu płyty masz parę opcji, takich jak: kodowanie znaków w nazwach na płycie, format zapisu, itp co IHMO wpływa na zawartość płytki, ale nie na pliki na niej zawarte.

Może też być tak że sprawdzając sumę md5 w ten sposób:

Kod: Zaznacz cały

md5sum /dev/cdrom
może też być brane pod uwagę dowiązanie od urządzenia, bo przecież /dev/cdrom jest dowiązaniem symbolicznym do urządzenia blokowego.

Ciekawy przypadek i pytanie, ale ja nie znam odpowiedzi, mogę jedynie "gdybać" ;)


aloha
gr3g
Posty: 25
Rejestracja: 14 lutego 2007, 17:25

Post autor: gr3g »

Pewnie jest to sprawa opcji nagrywania, sęk w tym, że w k3b właściwie nic sensownego nie da się ustawić, ja tam nie widzę żadnych opcji, które mogłyby tu mieć znaczenie. Ponieważ k3b jest właściwie nakładką na programy działające z linii poleceń to pewnie używając komend zamiast nakładki graficznej można więcej. Niestety nie udało mi się wypalić płyty DVD za pomocą poleceń w konsoli. Próba nagrania płyty za pomocą cdrecord zwróciła błąd:

Kod: Zaznacz cały

$ cdrecord dev=/dev/hda debian-31r4-i386-binary-1.iso
cdrecord: No write mode specified.
cdrecord: Asuming -tao mode.
cdrecord: Future versions of cdrecord may have different drive dependent defaults.
cdrecord: Continuing in 5 seconds...
Cdrecord-Clone 2.01.01a01 (i686-pc-linux-gnu) Copyright (C) 1995-2004 Jörg SchillingNOTE: this version of cdrecord is an inofficial (modified) release of cdrecord
      and thus may have bugs that are not present in the original version.
      Please send bug reports and support requests to <cdrtools@packages.debian.org>.
      The original author should not be bothered with problems of this version.

cdrecord: Warning: Running on Linux-2.6.12-1-386
cdrecord: There are unsettled issues with Linux-2.5 and newer.
cdrecord: If you have unexpected problems, please try Linux-2.4 or Solaris.
cdrecord: Operation not permitted. WARNING: Cannot set RR-scheduler
cdrecord: Permission denied. WARNING: Cannot set priority using setpriority().
cdrecord: WARNING: This causes a high risk for buffer underruns.
scsidev: '/dev/hda'
devname: '/dev/hda'
scsibus: -2 target: -2 lun: -2
Warning: Open by 'devname' is unintentional and not supported.
Linux sg driver version: 3.5.27
Using libscg version 'schily-0.8'.
Device type    : Removable CD-ROM
Version        : 0
Response Format: 2
Capabilities   :
Vendor_info    : 'HL-DT-ST'
Identifikation : 'DVDRAM GSA-4163B'
Revision       : 'A106'
Device seems to be: Generic mmc2 DVD-R/DVD-RW.
cdrecord: Found DVD+ media but DVD+R/DVD+RW support code is missing.
cdrecord: If you need DVD+R/DVD+RW support, ask the Author for cdrecord-ProDVD.
cdrecord: Free test versions and free keys for personal use are at [url]ftp://ftp.berlios.de/pub/cdrecord/ProDVD/[/url]
cdrecord: Sorry, no CD/DVD-Recorder or unsupported CD/DVD-Recorder found on this target.
cdrecord: This version of cdrecord does not include DVD-R/DVD-RW support code.
cdrecord: See /usr/share/doc/cdrecord/README.DVD.Debian for details on DVD support.
Using generic SCSI-3/mmc   CD-ROM driver (mmc_cd).
Driver flags   : MMC-3 SWABAUDIO BURNFREE
Supported modes: TAO PACKET SAO SAO/R96P SAO/R96R RAW/R16 RAW/R96P RAW/R96R
cdrecord: Unspecified command not implemented for this drive.
cdrecord: Data will not fit on any disk.
cdrecord: Cannot write more than remaining DVD capacity.
Zrozumiałem, że płyty DVD+R nie nagram, więc włożyłem płytę DVD-R i znów otrzymałem podobny komunikat:

Kod: Zaznacz cały

 cdrecord dev=/dev/hda debian-31r4-i386-binary-1.iso
cdrecord: No write mode specified.
cdrecord: Asuming -tao mode.
cdrecord: Future versions of cdrecord may have different drive dependent defaults.
cdrecord: Continuing in 5 seconds...
Cdrecord-Clone 2.01.01a01 (i686-pc-linux-gnu) Copyright (C) 1995-2004 Jörg SchillingNOTE: this version of cdrecord is an inofficial (modified) release of cdrecord
      and thus may have bugs that are not present in the original version.
      Please send bug reports and support requests to <cdrtools@packages.debian.org>.
      The original author should not be bothered with problems of this version.

cdrecord: Warning: Running on Linux-2.6.12-1-386
cdrecord: There are unsettled issues with Linux-2.5 and newer.
cdrecord: If you have unexpected problems, please try Linux-2.4 or Solaris.
cdrecord: Operation not permitted. WARNING: Cannot set RR-scheduler
cdrecord: Permission denied. WARNING: Cannot set priority using setpriority().
cdrecord: WARNING: This causes a high risk for buffer underruns.
scsidev: '/dev/hda'
devname: '/dev/hda'
scsibus: -2 target: -2 lun: -2
Warning: Open by 'devname' is unintentional and not supported.
Linux sg driver version: 3.5.27
Using libscg version 'schily-0.8'.
Device type    : Removable CD-ROM
Version        : 0
Response Format: 2
Capabilities   :
Vendor_info    : 'HL-DT-ST'
Identifikation : 'DVDRAM GSA-4163B'
Revision       : 'A106'
Device seems to be: Generic mmc2 DVD-R/DVD-RW.
cdrecord: Found DVD media but DVD-R/DVD-RW support code is missing.
cdrecord: If you need DVD-R/DVD-RW support, ask the Author for cdrecord-ProDVD.
cdrecord: Free test versions and free keys for personal use are at [url]ftp://ftp.berlios.de/pub/cdrecord/ProDVD/[/url]
cdrecord: This version of cdrecord does not include DVD-R/DVD-RW support code.
cdrecord: See /usr/share/doc/cdrecord/README.DVD.Debian for details on DVD support.
Using generic SCSI-3/mmc   CD/DVD driver (checks media) (mmc_cd_dvd).
Driver flags   : MMC-3 SWABAUDIO BURNFREE
Supported modes: TAO PACKET SAO SAO/R96P SAO/R96R RAW/R16 RAW/R96P RAW/R96R
cdrecord: Unspecified command not implemented for this drive.
cdrecord: Data will not fit on any disk.
cdrecord: Cannot write more than remaining DVD capacity.
Próbowałem znaleźć w sieci cdrecord-ProDVD ale okazało się, że to oprogramowanie komercyjne i wersji demonstracyjnej 4,5 GB nagrać się nie da. Ciekawe, że k3b używając tego co mam w systemie nagrało płytę, tylko nie do końca tak jakbym chciał (opisywany problem md5).

Przy okazji pojawia się drugie ważne dla mnie pytanie: Jak wypalić ten obraz ISO płyty DVD za pomocą wiersza poleceń?

Jeżeli chodzi o to, że /dev/cdrom to dowiązanie symboliczne to na pewno nie ma to znaczenia jak użyję /dev/hda (bo tu mam napęd DVDRW) to jest to samo. Poza tym po zrzuceniu obrazu na dysk z tej płytki DVD wypalonej przez k3b (co dokładnie opisałem w poprzednim poście) i ponownym nagraniu z tego "zrzutu" już sumy md5 są identyczne. Czyli k3b coś zmienia tylko za pierwszym razem.
Dzisiaj zrobiłem jeszcze jeden test i wypaliłem obraz iso płyty cd. Tutaj obraz na dysku, z którego była nagrywana płyta ma identyczną sumę md5 jak ta uzyskana po wykonaniu polecenia:

Kod: Zaznacz cały

md5sum /dev/cdrom
na wypalonej płycie.

Myślę, że może da się ten nieszczęsny obraz ISO płyty DVD wypalić jakoś przy pomocy wiersza poleceń i tak ustawić opcje, żeby nic nie było modyfikowane w oryginalnym obrazie ISO. Niestety nie wiem jak to zrobić, mam nadzieję, że ktoś zna odpowiedź?
chyl-o
Junior Member
Posty: 621
Rejestracja: 24 maja 2006, 21:06
Lokalizacja: Lublin

Post autor: chyl-o »

Kod: Zaznacz cały

cdrecord -v -dao driveropts=burnfree dev=/dev/hda obraz.iso
albo

Kod: Zaznacz cały

cdrecord -v gracetime=2 dev=/dev/hda speed=10 -tao -dummy driveropts=burnfree -eject -overburn -data /tmp/image.iso
Problem z sumami md5 może być spowodowany próbą nagrania dużej ilości danych/rozmiarem bloków na dvd co wymusza pewne niedokładne zaokrąglenie rozmiaru iso.
gr3g
Posty: 25
Rejestracja: 14 lutego 2007, 17:25

Post autor: gr3g »

Dzięki za odpowiedzi, ale niestety w moim systemie te komendy nie działają, zainstaluję Etch, może to pomoże :-)
chyl-o
Junior Member
Posty: 621
Rejestracja: 24 maja 2006, 21:06
Lokalizacja: Lublin

Post autor: chyl-o »

a cdrdao masz?
ODPOWIEDZ