Mam fizycznie wypaloną płytę CD i jej oryginalny obraz ISO. Nie podano referencyjnych plików sum kontrolnych dla zawartości płyty CD. Jak sprawdzić, czy rzeczywista płyta CD jest poprawna (odpowiada oryginalnemu obrazowi) i czy jest w pełni czytelna?
10
md5sum
się i porównać, jeśli nie chcesz uruchamiać dysku CD / DVD.Odpowiedzi:
Najpierw zgrywasz dysk CD do pliku tymczasowego:
Następnie należy sprawdzić, czy
copy.iso
iorig.iso
mają tę samą wielkość, na przykład:Jeśli rozmiar jest identyczny, łatwo:
Zauważyłem jednak, że w niektórych przypadkach rozmiar może się nieznacznie różnić, ponieważ w kopii lub oryginalnym obrazie występują zera końcowe. Na przykład jeśli
copy.iso
jest mniejszy niżorig.iso
:Oczywiście powinieneś również sprawdzić, czy końcowe bajty to tylko zera:
Pierwszy wiersz, z wyjątkiem przesunięcia, powinien składać się wyłącznie z zer. Druga linia powinna być gwiazdką. Gwiazdką jest unikanie pokazywania kolejnych identycznych linii.
źródło
head -c $(stat -c %s /path/to/master.iso) /dev/sr0 | sha1sum
aby uniknąć konieczności tworzenia obrazu spalonej płyty CD.Jeśli nadal masz ISO, możesz porównać je bajt po bajcie, używając
cmp
. Jest to dość proste polecenie i wychodzi z pierwszej znalezionej różnicy, więc jest znacznie szybsze niż tworzenie sumy kontrolnej, jeśli rzeczywiście wystąpił błąd na początku.Możliwe wyniki sukcesu:
&& echo OK
do polecenia, jeśli brak danych wprowadza w błąd.cmp: EOF on cdrom.iso
: jest identyczny, ale cdrom ma więcej bajtów niż twój plik ISO. Wynika to zwykle z zerowania wypełnienia na końcu cdrom. Ponieważ w praktyce nie ma to znaczenia, nadal jest sukcesem.Możliwe skutki niepowodzenia:
cmp: EOF on /dev/cdrom
: z jakiegoś powodu dane na CDROM są niekompletne. Być może twoje ISO było zbyt duże, aby zmieścić się na prawdziwej płycie CD./dev/cdrom cdrom.iso differ: byte 18296321, line 71780
: istnieje nieoczekiwana różnica między CDROM a obrazem ISO.źródło
Jeśli plik ISO jest taki sam, jak używany do nagrania płyty CD, oto moje dwie ulubione:
Porównuje nagrany obraz z plikiem obrazu. Jeśli czujesz się bardziej masochistyczny, możesz spróbować czegoś takiego:
i porównaj podpisy. Ten jest bardziej przydatny, jeśli już gdzieś masz sumę SHA1. Oba polecenia odczytują nośnik do końca.
Jeśli chcesz to zrobić tak, jak sugeruje @ Marki555, najpierw musisz zainstalować zarówno napęd optyczny, jak i obraz. Oto kompletny skrypt: (możesz oczywiście zrezygnować z
sudo
rootowania - ogólnie zły pomysł)źródło
cmp [-l]
lepiej nadaje się do plików binarnych. Diff działa najlepiej na tekście.Możesz sprawdzić, czy płyta CD jest w pełni czytelna, używając
dd
(na przykładdd if=/dev/cdrom of=/dev/null
). Ale nie można go bezpośrednio porównać z obrazem ISO. Każde oprogramowanie utworzy nieco inny plik ISO (być może niektóre inne nagłówki lub wypełnienie), chociaż wszystkie te różne obrazy ISO zapewnią tę samą zawartość CD (struktura katalogu, atrybuty pliku i zawartość pliku).Możesz więc zamontować tylko CD, zamontować obraz ISO i porównać go na poziomie systemu plików za pomocą jakiegoś narzędzia do porównywania katalogów (przepraszam, nie użyłem go jeszcze na Linuksie).
źródło
diff -r
porównuje rekursywnie zawartość katalogu.Brasero może to zrobić: Narzędzia -> Sprawdź integralność ...
źródło