Vergleich von ISO -Bildern

Vergleich von ISO -Bildern
Um Computergeräte einzurichten und zu pflegen. Dies vereinfacht, dass unsere Systeme mit Hilfe einer vollständigen Zusammenstellung von Software, die tatsächlich zusammen passt, unter idealen Umständen auf dem neuesten Stand ist.

Stellen Sie sich vor, Sie haben einige dieser ISO -Bilder lokal gespeichert. Wie finden Sie heraus, dass die abgerufenen ISO -Bilder authentisch sind? In diesem Artikel zeigen wir Ihnen, wie Sie die Integrität und Authentizität eines zuvor heruntergeladenen ISO -Images überprüfen und wie Sie herausfinden, was die Unterschiede zwischen dem tatsächlichen Inhalt zweier ISO -Bilder sind. Dies hilft Ihnen, den Bauprozess für das ISO -Bild zu überprüfen und ermöglicht es Ihnen, zu erkennen.

Bildformate

Das Format von Festplattenbildern hat eine eigene Geschichte [11]. Der gemeinsame Standard ist ISO 9660 [12], der den Inhalt einer optischen Scheibe als Ganzes beschreibt. In der Verwendung ist die Dateierweiterung .ISO, um eine Bilddatei zu identifizieren (geklonte Kopie).

Das ursprüngliche ISO 9660 -Format verfügt über eine Reihe von Einschränkungen wie 8 Verzeichnisstufen sowie die Länge der Dateinamen. Diese Einschränkungen wurden durch die Einführung einer Reihe von Erweiterungen wie Rock Ridge [13] (Erhaltung von POSIX-Berechtigungen und längeren Namen), Joliet [14] (Speicherung von Unicode-Namen in UCS-2) und Apple ISO 9660-Erweiterungen reduziert. [15] die HFS -Unterstützung einführte.

Um weitere Informationen zu einer Bilddatei zu erhalten, verwenden Sie den Befehl "Datei", gefolgt vom Namen der Datendatei wie folgt:

.Listing 1: Anzeigen der Details für eine ISO -Datei

$ Datei *.ISO
Debian-10.1.0-AMD64-Netinst.ISO: DOS/MBR -Bootsektor;
Partition 2: id = 0xef, start-chs (0x3ff, 254,63), End-CHS (0x3ff, 254,63),
Startsektor 3808, 5664 Sektoren
Xubuntu-18.04.3-Desktop-AMD64.ISO: DOS/MBR -Bootsektor;
Partition 2: id = 0xef, start-chs (0x3ff, 254,63), End-CHS (0x3ff, 254,63),
Startector 11688, 4928 Sektoren $

Überprüfen Sie heruntergeladene ISO -Dateien

Vertrauenswürdige Softwareanbieter bieten Ihnen immer zwei Dinge zum Download an - das tatsächliche ISO -Image sowie die Angaben der Überprüfung des Bildes, um eine Integritätsprüfung für die heruntergeladene Datei durchzuführen. Letztere können Sie bestätigen, dass Ihre lokale Datei eine genaue Kopie der auf den Download -Servern vorhandenen Datei ist, und während des Downloads ist nichts schief gelaufen. Bei einem Fehler beim Download ist die lokale Datei beschädigt und kann während der Installation zufällige Probleme auslösen [16].

Außerdem wird das ISO -Bild gefährdet (wie es bei Linux Mint Anfang 2016 [17]) gefährdet ist. Sie können die Prüfsummen mit 'MD5SUM' (veraltet, nicht mehr empfohlen) und 'SHA256SUM' wie folgt berechnen:

.Listing 2: Berechnung der Prüfsumme für ISO -Dateien

$ md5sum *.ISO
B931EF8736C98704BCF519160B50FD83 DEBIAN-10.1.0-AMD64-Netinst.ISO
0C268A465D5F48A30E5B12676E9F1B36 XUBUNTU-18.04.3-Desktop-AMD64.ISO
$ SHA256SUM *.ISO
7915FDB77A0C2623B4481FC5F0A8052330DEFE1CDE1E0834FF233818DC6F301E DEBIAN-10.1.0-AMD64-Netinst.ISO
3c9e537ee1cf64088251e56B4CA1694944AD59126F298F24A78CD43AF152B5B3 Xubuntu-18.04.3-Desktop-AMD64.ISO
$

Sie können den Vergleich zwischen der bereitgestellten Prüfsummendatei und dem lokal gespeicherten ISO -Bild wie in Listing 3 angezeigt. Die Ausgabe von OK am Ende einer Linie signalisiert, dass beide Prüfsummen gleich sind.

.Listing 3: Vergleichen Sie bereitgestellte Prüfsummen

$ SHA256SUM -Schneck SHA256SUM.txt xubuntu-18.04.3-Desktop-AMD64.ISO: OK
$

Vergleich von zwei lokal gespeicherten ISO -Dateien

Es kann passieren, dass Sie zwei ISO -Dateien heruntergeladen haben, und Sie möchten herausfinden, ob sie völlig gleich sind. Der Befehl 'sha256sum' ist wieder nützlich, und wir empfehlen Ihnen, diese Überprüfung in einem Shell -Skript zu verkörpern. In Listing 4 sehen Sie ein gemäß Bash -Skript, das die vier Befehle 'sha256sum', 'cut', 'uniq' und 'wc' kombiniert, um die erste Spalte für alle Ausgabestellen zu trennen, falls sie identisch sind und zählen Sie die Anzahl der verbleibenden Zeilen. Wenn die beiden (oder mehr) ISO -Dateien gleich sind, sind die Prüfsummen identisch, nur eine einzige Zeile bleibt verbleiben, und das Bash -Skript gibt die Meldung „Die Dateien sind gleich“ aus. Schließlich:

.Auflistung 4: Vergleiche Prüfsummen von ISO -Dateien mithilfe von 'SHA256SUM' automatisch

#!/Bin/Bash
if ['SHA256SUM *.ISO | cut -d "-f1 | uniq | wc -l 'EQ 1]
Dann
echo "Die Dateien sind gleich"
anders
echo "Die Dateien sind nicht identisch"
fi

Wenn das Skript zurückgibt, dass die beiden Dateien unterschiedlich sind, interessieren Sie sich möglicherweise für die genaue Position der Ungleichheit. Ein Vergleich der Byte-Order kann mit dem Befehl 'CMP' durchgeführt werden, der das erste Byte ausgibt, der sich zwischen den Dateien unterscheidet:

.Listing 5: Siehe die Unterschiede zwischen zwei oder mehr Dateien mit 'CMP'

$ cmp *.ISO
Debian-10.1.0-AMD64-Netinst.ISO Xubuntu-18.04.3-Desktop-AMD64.ISO differenz: Byte 433, Zeile 4
$

Vergleich des tatsächlichen Inhalts

Bisher haben wir einen Byte -Order -Vergleich durchgeführt, und jetzt werden wir uns genauer ansehen - auf den tatsächlichen Inhalt der ISO -Dateien, die miteinander verglichen werden sollen. Zu diesem Zeitpunkt kommen eine Reihe von Tools ins Spiel, um einzelne Dateien, ganze Verzeichnisstrukturen sowie komprimierte Archive und ISO -Bilder zu vergleichen.
Der Befehl 'diff' hilft beim Vergleich eines Verzeichnisses mit den beiden Schalter '-r' (kurz für '-recursive') und '-q' (kurz für '-brief'), gefolgt von den beiden Verzeichnissen, die miteinander verglichen werden sollen. Wie in ... gesehen

Auflistung 6, Differo -Berichte, welche Dateien im Verzeichnis eindeutig sind, und wenn sich eine Datei mit demselben Namen geändert hat.

.Listing 6: Vergleich von zwei Verzeichnissen mit 'Diff'

$ diff -qr t1/ t2/
Nur in T1/: Blabla.Conf.
Die Dateien T1/NSSwitch.Conf und T2/NSSwitch.Conf sind anders.
Nur in T2/: PWD.Conf.
$

Um zwei ISO -Bilder zu vergleichen, montieren Sie einfach die beiden Bilddateien, um Verzeichnisse zu trennen, und gehen Sie von dort aus.
Eine farbenfrohere Ausgabe der Befehlszeile wird von den Tools 'Colordiff' [1,2] und 'ICDIFF' [18,19] bereitgestellt. Abbildung 1 zeigt die Ausgabe von 'ICDIFF', in dem die Unterschiede zwischen den beiden Dateien von 'NSSwitch.conf 'werden entweder in grün oder rot hervorgehoben.

Abbildung 1: Vergleich von zwei Verzeichnissen mit 'ICDIFF'

Grafische Werkzeuge für einen Vergleich von Verzeichnissen umfassen 'FLDIFF' [5], 'xxdiff' [6] und 'Dirdiff' [7]. 'xxdiff' wurde von 'Fldiff' inspiriert, und deshalb sehen sie ziemlich ähnlich aus. Einträge mit ähnlichem Inhalt sind mit einem weißen oder grauen Hintergrund und Einträgen, die sich unterscheiden. Einträge mit einem hellgelben oder grünen Hintergrund sind einzigartig für ein Verzeichnis.

Abbildung 2: Vergleich von zwei Verzeichnissen mit 'FLDIFF'

'xxdiff' zeigt die Dateiunterschiede in einem separaten Fenster an, indem Sie auf einen Eintrag klicken (siehe Abbildung 3).

Abbildung 3: Vergleich von zwei Verzeichnissen mit 'XXDIFF'

Der nächste Kandidat ist 'Dirdiff'. Es baut über der Funktionalität von 'xxdiff' auf und kann bis zu fünf Verzeichnisse vergleichen. Dateien, die in beiden Verzeichnissen existieren, sind mit einem x markiert. Interessanterweise entspricht das Farbschema, das für das Ausgangsfenster verwendet wird, das gleiche wie "ICDIFF" (siehe Abbildung 4).

Abbildung 4: Vergleich von zwei Verzeichnissen mit 'Dirdiff'

Der Vergleich von komprimierten Archiven und ganzen ISO -Bildern ist der nächste Schritt. Während der Befehl "Adiff" aus dem "Atool" -Paket [10] Ihnen möglicherweise bereits bekannt ist, werden wir uns stattdessen den Befehl "Diffoskop" ansehen, stattdessen [8,9], stattdessen, stattdessen, stattdessen. Es beschreibt sich selbst als „ein Tool, um auf den Grund zu kommen, was Dateien oder Verzeichnisse unterschiedlich macht. Es entpackt rekursiv Archive vieler Arten und verwandelt verschiedene binäre Formate in mehr lesbare Formen, um sie zu vergleichen. “. Der Ursprung des Tools ist das reproduzierbare Bauprojekt [19,20], bei dem es sich um eine Reihe von Softwareentwicklungspraktiken handelt, die einen unabhängig voneinander überprüfbaren Pfad von der Quelle zu Binärcode schaffen. Unter anderem unterstützt es die folgenden Dateiformate:

* Android apk -Dateien und Startbilder
* Berkeley DB -Datenbankdateien
* CORBOOT CBFS -Dateisystembilder
* Debian .bauen und .ändert Dateien
* Debian -Quellpakete (.DSC)
* Elf -Binärdateien
* Git -Repositories
* ISO 9660 CD -Bilder
* MacOS -Binärdateien
* OpenSsh Public Keys
* OpenWRT -Paketarchive (.ipk)
* PGP signierte/verschlüsselte Nachrichten
* PDF- und PostScript -Dokumente
* RPM -Archive Schnittlauch

Abbildung 5 zeigt den Ausgang von 'Diffoskop' beim Vergleich von zwei verschiedenen Versionen von Debian -Paketen - Sie werden genau die vorgenommenen Änderungen sehen. Dies enthält sowohl Dateinamen als auch Inhalt.

Abbildung 5: Vergleich von zwei Debian -Paketen mit 'Diffoskop' (Auszug)

Listing 7 zeigt den Ausgang von 'Diffoskop' beim Vergleich von zwei ISO -Bildern mit einer Größe von 1.Jeweils 9g. In diesem Fall gehören die beiden ISO -Bilder zur Linux Mint Release 19.2 Während eine Bilddatei von einem französischen Server und der andere von einem österreichischen Server abgerufen wurde (daher die Buchstaben 'FR' und 'at'). Innerhalb von Sekunden gibt 'Diffoscope' fest, dass die beiden Dateien völlig identisch sind.

.Listing 7: Vergleich von zwei ISO -Bildern mit 'Diffoskop'

$ Diffoscope LinuxMint-19.2-XFCE-64bit.fr.ISO Linuxmint-19.2-XFCE-64bit.bei.ISO
| ################################################################################################################# zu erhalten ### | 100% Zeit: 0:00:00
$

Um hinter die Kulissen zu schauen, nennen Sie "Diffoskop" mit den beiden Optionen "-Debug" und "-text-" für mehr ausführliche Ausgabe am Terminal. Auf diese Weise können Sie lernen, was das Tool tut. Listing 8 zeigt die gemäß Ausgabe.

.Listing 8: Hinter den Kulissen von 'Diffoscope'

$ diffoscope - -debug --Text -Linuxmint -19.2-XFCE-64bit.fr.ISO
Linuxmint-19.2-XFCE-64bit.bei.ISO
2019-10-03 13:45:51 D: Diffoskop.Haupt: Diffoskop Start 78
2019-10-03 13:45:51 D: Diffoskop.Gebietsschema: Normalisieren von Gebietsschema, Zeitzone usw.
2019-10-03 11:45:51 D: Diffoskop.Haupt: Startvergleich
2019-10-03 11:45:51 D: Diffoskop.Fortschritt: Registrierung < diffoscope.progress.ProgressBar object at 0x7f4b26310588> Als Fortschrittsbeobachter
2019-10-03 11:45:52 D: Diffoskop.Komparatoren: geladen 50 Komparatorklassen64bit.fr.ISO ETA:-::::--
2019-10-03 11:45:52 D: Diffoskop.Komparatoren.Utils.Spezialisiert: Unbekannte Datei. Magic sagt: DOS/MBR -Bootsektor; Partition 2: id = 0xef, start-chs (0x3ff, 254,63), End-CHS (0x3ff, 254,63), Startector 652, 4672 Sektoren
2019-10-03 11:45:52 D: Diffoskop.Komparatoren.Utils.Spezialisiert: Unbekannte Datei. Magic sagt: DOS/MBR -Bootsektor; Partition 2: id = 0xef, start-chs (0x3ff, 254,63), End-CHS (0x3ff, 254,63), Startector 652, 4672 Sektoren
2019-10-03 11:45:52 D: Diffoskop.Komparatoren.Utils.Vergleichen Sie: LinuxMint-19 vergleichen.2-XFCE-64bit.fr.ISO (Dateisystemfile) und Linuxmint-19.2-XFCE-64bit.bei.ISO (Dateisystemfile)
2019-10-03 11:45:52 D: Diffoskop.Komparatoren.Utils.Datei: Binär.Has_Same_Content: < Linuxmint-19.2-XFCE-64bit.fr.iso> < Linuxmint-19.2-XFCE-64bit.bei.iso>
2019-10-03 11:45:53 D: Diffoskop.Komparatoren.Utils.vergleichen: Has_Same_Content_as gab True zurück; Weitere Vergleiche überspringen
| ################################################################################################################# zu erhalten ### | 100% Zeit: 0:00:01
2019-10-03 11:45:53 D: Diffoskop.TEMPFILES: Reinigung von 0 Temperaturdateien
2019-10-03 11:45:53 D: Diffoskop.TEMPFILES: Reinigung 0 Temporäre Verzeichnisse
$

Nun, so weit, so gut. Die nächsten Tests wurden auf Bildern aus verschiedenen Veröffentlichungen und mit verschiedenen Dateigrößen durchgeführt. Alle von ihnen führten zu einem internen Fehler, der auf den Befehl "Diff" zurückgeht. Es sieht so aus, als ob es eine Dateigrößengrenze von etwa 50 m gibt. Deshalb habe ich jeweils zwei kleinere Bilder von jeweils 10 m gebaut und es für einen Vergleich an 'Diffoskop "übergeben. Abbildung 6 zeigt das Ergebnis. Die Ausgabe ist eine Baumstruktur, die die Datei 'nsswitch enthält.conf 'mit den hervorgehobenen Unterschieden.

Abbildung 6: Vergleich von zwei ISO -Bildern mit 'Diffoskop'

Außerdem kann eine HTML -Version der Ausgabe bereitgestellt werden. Abbildung 7 zeigt die Ausgabe als HTML -Datei in einem Webbrowser. Es ist über den Schalter erreichbar

'-html Ausgabe.html '.

Abbildung 7: Vergleich von zwei ISO -Bildern mit 'Diffoskop' (HTML -Ausgang)

Wenn Sie den Ausgangsstil nicht mögen oder ihn mit der Unternehmensidentität Ihres Unternehmens anpassen möchten, können Sie die Ausgabe mit Ihrer eigenen CSS-Datei mit dem Switch '-CSS-Stil anpassen.CSS ', der den Stil aus der referenzierten CSS -Datei lädt.

Abschluss

Das Finden von Unterschieden zwischen zwei Verzeichnissen oder sogar ganzer ISO -Bildern ist etwas schwierig. Die oben gezeigten Tools helfen Ihnen dabei, diese Aufgabe zu meistern. Also glückliches Hacken!

Danke
Der Autor möchte Axel Beckert für seine Hilfe bei der Vorbereitung des Artikels danken.

Links und Referenzen

* [1] Colordiff
* [2] Colordiff, Debian -Paket,
* [3] Diffutile
* [4] Diffutils, Debian -Paket,
* [5] Fldiff
* [6] xxdiff
* [7] Dirdiff
* [8] Diffoskop
* [9] Diffoskop, Debian -Paket
* [10] Atool, Debian -Paket
* [11] https: // www.Winiso.com/articles/Common-Image-Datei-Formats.HTML (derzeit offline)
* [12] ISO 9660, Wikipedia
* [13] Rock Ridge, Wikipedia
* [14] Joliet, Wikipedia
* [15] Apple ISO 9660 Erweiterungen, Wikipedia
* [16] So überprüfen Sie ISO -Bilder, Linux Mint
* [17] Vorsicht vor gehackten ISOs, wenn Sie Linux Mint am 20. Februar heruntergeladen haben!
* [18] ICDIFF
* [19] ICDIFF, Debian -Paket
* [20] Das reproduzierbare Bauprojekt
* [21] Das reproduzierbare Bauprojekt, Debian Wiki