Wie identifiziere und ersetze ich beschädigte Dateien in einer beschädigten Ubuntu-ISO?


14

Dies ist also nicht gerade ein Problem bei der Ausführung von Ubuntu, sondern bei der Installation.

Jedes Mal, wenn ich versuche, die Ubuntu-ISO (von einer beliebigen Quelle) herunterzuladen, scheint sie beschädigt zu werden. Das heißt, die MD5-Summen sind niemals korrekt.

Die Ubuntu-ISO-Dateien werden mit einer Datei geliefert, in der alle ISO-Dateien und ihre jeweiligen MD5SUMs aufgelistet sind.

Was ich tun möchte, ist, diese Datei zu durchlaufen und sie mit ihren Dateien in der ISO zu vergleichen und herauszufinden, welche Dateien beschädigt sind, in der Hoffnung, dass ich die beschädigten Dateien aus einer der anderen ISO-Dateien extrahieren kann, um eine zu erstellen funktionierender Installer.

Aber ich weiß nicht, wie ich das machen soll, und natürlich muss ich das unter Windows 7 machen, um es noch schlimmer zu machen.

Weiß jemand, wie man das behebt?


Sollte Jigdo (der von Debian bevorzugte Weg) dazu nicht in der Lage sein? Der Hauptzweck besteht nun darin, Delta-Updates für Punkt-Releases auf ISOs über Aktualisierungspakete innerhalb der ISOs durchzuführen. über Debian ISOs und Jigdo
gertvdijk

@gertvdijk Nicht für Ubuntus Desktop-ISOs, da diese meist nur eine einzige Datei enthalten (siehe meine Antwort ). Aus diesem Grund sind den Desktop-ISOs keine .jigdoDateien auf den Download-Servern zugeordnet. Die alternative CD und Server - CD - ISOs tun haben .jigdoDateien. Die Desktop-ISOs verfügen über das Ubiquity-Installationsprogramm, bei dem das Live-CD-System auf die Festplatte geschrieben und anschließend Änderungen daran vorgenommen werden, damit es für die normale (installierte) Verwendung vorbereitet ist.
Eliah Kagan

@EliahKagan Das macht Sinn. In diesem Fall sollten keine PAR- Paritätsblockdateien vorhanden sein, um vollständige ISOs zu reparieren. Das ist viel effizienter, einfacher und universeller. "Parchive wurde ursprünglich geschrieben, um das Problem der zuverlässigen Übertragung von Dateien im Usenet zu lösen. [1] Heute wird es jedoch häufig zum Schutz jeglicher Art von Daten vor Datenkorruption, Bit-Rot und versehentlichem oder böswilligem Schaden verwendet."
gertvdijk

1
Warum wäre PAR besser als zsync? Gibt zsynces bemerkenswerte Vorteile, auch wenn PAR offiziell vom Ubuntu-Projekt unterstützt wurde (wie es ist)? Über jigdo: Dies gilt für alternative CDs und Server-CDs. Sie verwenden debian-installer, erstellen ein Bare-Bones-System, chrooten und installieren Pakete. Sie haben also alle .debDateien im Paketpool (der nur einige wenige Dateien auf Desktop-CDs enthält). Sie können leicht mit .jigdo(oder anderen Methoden) zusammengebaut werden. Möglicherweise möchten Sie eine jigdoAntwort für den Server / die Alternative veröffentlichen, in der erläutert wird, wie nur die beschädigten Dateien heruntergeladen werden.
Eliah Kagan

1
@EliahKagan Hätte erwähnen sollen, dass - PAR Dinge offline erledigen kann , z. Zsync benötigt effektiv eine vollständige Kopie davon (in diesem Fall remote). Aber ja, das Prinzip ist dasselbe. Übrigens, ich sehe, dass Zsync mit gzipEd-Archiven sehr gut umgehen kann , aber dass Intelligenz für SquashFS nutzlos ist, nehme ich an? Für Ubuntu-ISOs ist zsync in der Tat der richtige Weg.
Gertvdijk

Antworten:


34

Eigentlich weiß ich, welche Datei beschädigt ist

Der Versuch, Dateien aus mehreren beschädigten ISO-Images zu einem einzigen guten ISO-Image zu kombinieren, ist keine gute Lösung für dieses Problem. Hier ist der Grund.

Fast alle Daten im ISO-Image gehören zu nur einer Datei casper/filesystem.squashfs.

Auf einer Ubuntu-Desktop-CD oder -DVD, also einem ISO-Image. Bei einem Server-CD-Image oder einem alternativen CD-Image ist dies eine andere Geschichte.

Nautilus-Eigenschaften für filesystem.squashfs auf einer Ubuntu 12.10 i386-Desktop-CD

Daher kann ich Ihnen jetzt sagen, welche Datei auf jeder der von Ihnen heruntergeladenen ISO-Dateien mit ziemlicher Sicherheit beschädigt ist: diese Datei auf allen. Wenn in einer Ubuntu-ISO etwas beschädigt ist, befinden sich die fehlerhaften Bytes fast immer irgendwo dort.

filesystem.squashfsist selbst ein Disk-Image; Es wird beim Booten des Systems auf der Live-CD eingebunden. Sie können es möglicherweise aus der ISO extrahieren, dann den Inhalt extrahieren, überprüfen, was beschädigt ist, und die beschädigten Dateien ersetzen. Während Sie ein Squashfs-Dateisystem unter Windows mounten oder extrahieren können, ist dies wahrscheinlich keine einfache Aufgabe. Da dieses Image komprimiert ist, gibt es keine Garantie dafür, dass geringfügige Beschädigungen in der enthaltenen ISO nicht mehrere Dateien betreffen.

Wenn Sie das ISO-Image mehrmals heruntergeladen haben und es immer beschädigt ist, können Sie sicher sein, dass es sich nicht nur um eine geringfügige Beschädigung handelt. Möglicherweise müssen Sie Hunderte oder Tausende von Dateien ersetzen, wenn Sie dies auf diese Weise versuchen.

Stattdessen sollten Sie das ISO-Image mit einer zuverlässigeren Methode herunterladen.

Praktischerweise zsyncähnelt eines von ihnen ( ) dem, was Sie denken, mit der Ausnahme, dass nur die erforderlichen Teile der ISO-Dateien und nicht nur die darin enthaltenen erforderlichen Dateien heruntergeladen werden.

Stellen Sie sicher, dass Sie mit dem richtigen MD5-Hash verglichen werden

Wenn Ihre MD5-Summe falsch ist, müssen Sie zunächst sicherstellen, dass Sie sie mit dem MD5-Hash für die richtige Datei vergleichen. Dies gilt insbesondere, wenn Sie die Datei erneut heruntergeladen haben.

Ich vermute, dass

  • Sie haben ein 12.04 LTS-Image und verwenden einen MD5-Hash für ein 12.04.1 LTS-Image
    (das nicht dieselbe Datei ist ), oder
  • Sie haben ein 12.04.1 LTS-Image und Sie verwenden einen MD5-Hash für ein 12.04 LTS-Image oder
  • Sie haben ein 32-Bit-Image ("i386") und verwenden einen MD5-Hash für ein 64-Bit-Image oder
  • Sie haben ein 64-Bit-Image ("amd64") und verwenden einen MD5-Hash für ein 32-Bit-Image.

Die Liste der MD5-Hashes für jede Datei finden Sie hier.

Im Allgemeinen, wenn Ihr MD5-Hash falsch ist, aber für mehr als einen Download derselbe ist, normalerweise

  • Sie vergleichen mit dem falschen Hash, oder
  • werden die Datei auf dem Server beschädigt (also wenn das Aussehen der Fall, Download von einem anderen Spiegel zu sein, und, wenn Sie bereit sind, einen Fehler meldet gegen ubuntu-Website-Inhalte so dass das Problem behoben wird), oder
  • Sie verwenden einen Proxy oder ein VPN, der bzw. das Webinhalt zwischenspeichert und eine beschädigte Kopie zwischengespeichert hat (das Herunterladen von einem anderen Spiegel sollte dies ebenfalls beheben), oder
  • du ist Download über FTP und auf ein Problem mit dem Server oder mit Ihrem FTP - Client verursacht die Datei im Textmodus zu übertragen , anstatt Binär - Modus (dies wird verderben, und in der Regel beschädigt es die gleiche Art und Weise jedes Mal), oder
  • Ihre Verbindung wird absichtlich von einem böswilligen Dritten abgefangen und geändert, der Ihnen absichtlich die falsche Datei zuführt (dies ist jedoch in der Regel sehr unwahrscheinlich).

Sie können unten auf dieser Seite manuell einen (anderen) Download-Spiegel auswählen .

Wenn Ihr ISO-Image wirklich beschädigt ist, haben Sie folgende Möglichkeiten, eine gute Datei zu erhalten.

zsync

zsync(siehe auch hier ) ist ein Dienstprogramm, das aus einer teilweise korrekten Datei eine vollständig korrekte Datei machen kann Datei machen können, indem Sie nur die Teile herunterladen, von denen Sie nicht die richtigen Versionen haben. Die Hauptanwendung ist das Herunterladen von leicht aktualisierten Bildern, z. B. von einem nächtlichen Build zum nächsten.

Das zsyncfunktioniert folgendermaßen: Jemand, der die Datei anbietet (wie das Ubuntu-Projekt), erstellt eine .zsyncDatei, die viele Prüfsummen enthält - Prüfsummen, die vielen kleinen Teilen der Datei entsprechen, und nicht nur eine Prüfsumme für die gesamte Datei. Sie beginnen mit nichts bis zur gesamten Datei.

Mit nichts wird die gesamte Datei heruntergeladen. Mit einem Teil der Datei (d. H. Einer Datei mit demselben Namen, die eine andere Größe oder dieselbe Größe mit einer beliebigen Anzahl von binären Unterschieden aufweist) wird ermittelt, welche Teile heruntergeladen werden müssen, und diese Teile werden nur heruntergeladen. Mit der gesamten Datei wird nichts heruntergeladen.

Für sehr unzuverlässig Internet - Verbindungen , zsyncist nicht viel besser als ein Web - Browser für eine ganze Datei von Grund auf neu herunterzuladen, es sei denn , Sie sind bereit , es zwei oder mehrere Male ausgeführt werden , wobei in diesem Fall später läuft die Probleme in früheren Läufen korrigieren . Für alle Internetverbindungen mit Ausnahme der Internetverbindungen mit der höchsten Fehlerrate sollte es ausreichen, zsync zweimal oder gelegentlich dreimal für eine Datei auszuführen.

Aber Sie müssen sich nicht annähernd so viele Gedanken darüber machen, wie Sie zsyncmehrere Male laufen müssen . Da Sie vermutlich bereits den größten Teil der Datei haben, sollte dies kein Problem sein. Und wie immer, wenn zsyncdir etwas verderbt, kannst du immer laufenzsync erneut , um es zu beheben.

Immer zsyncfür Windows

zsyncLäuft traditionell auf Unix-ähnlichen Systemen (die Windows nicht wirklich enthalten). Kürzlich wurde jedoch ein nativer Windows-Port von zsyncerstellt , sodass Sie diesen wahrscheinlich verwenden können.

zsyncist ein Befehlszeilenprogramm, daher führen Sie es in Windows über die Eingabeaufforderung aus. (Eine Möglichkeit, die Eingabeaufforderung zu öffnen, besteht darin, cmd.exein das Textfeld im Startmenü zu tippen und zu drücken Enter. Oder in Windows XP und früheren Versionen Start> Ausführen> cmd.exe.)

Ein anderer Weg: Immer zsyncfür Cygwin

Wenn Sie Probleme mit dem Windows-Port von haben zsync, können Sie immer die Cygwin-Version verwenden. Cygwin bietet eine Unix-ähnliche Umgebung für Windows. Kompilierte ausführbare Dateien können nicht ausgeführt werden (zum Beispiel können Sie sie nicht zsyncaus dem Ubuntu-Paket verwenden), sondern es werden spezielle Versionen von Programmen verwendet, die aus dem Quellcode kompiliert wurden. (Es ist weitaus einfacher, ein Programm zu kompilieren, das für Unix-ähnliche Betriebssysteme in Cygwin geschrieben wurde, als es so zu kompilieren, dass es nativ unter Windows funktioniert.)

  1. Zuerst bekommen Cygwin des Installateurs ( setup.exe) von hier (oder verwenden Sie diesen Link ).
  2. Führen Sie es aus, klicken Sie im ersten Bildschirm auf Weiter , wählen Sie dann Aus dem Internet installieren und klicken Sie erneut auf Weiter .
  3. Platzieren Sie auf den nächsten beiden Bildschirmen Cygwin und das lokale Paketverzeichnis, wo immer Sie möchten (die Standardeinstellungen sind normalerweise gut).
  4. Wählen Sie Ihren Internetverbindungstyp aus ( Direktverbindung ist normalerweise gut), und setup.exeladen Sie eine Liste mit Spiegeln herunter.
  5. Wählen Sie einen Spiegel aus, und es wird eine Liste der verfügbaren Pakete heruntergeladen. Sie werden wahrscheinlich gewarnt, dass sich diese Version von der vorherigen unterscheidet. Dies ist kein Problem, es sei denn, Sie haben eine frühere Version von Cygwin auf demselben Computer verwendet.

    Setup-Warnmeldung darüber, wie Sie diese bestimmte Version von Cygwin zum ersten Mal installiert haben.  Wenn Sie Cygwin noch nicht verwendet haben, kann dies ignoriert werden.  Wie es heißt: "Wenn Sie Cygwin zum ersten Mal auf diesem System installiert haben, können Sie diese Meldung ignorieren."

  6. Nun können Sie auswählen, welche Pakete installiert werden sollen. Es gibt ein Textfeld zum Suchen von Paketen nach Namen. Geben Sie zsyncdort (aber nicht drücken Enter--wenn Sie tun, es ist wie Klicken auf Next ). Ein Eintrag für Net wird angezeigt. Erweitern Sie es, indem Sie +auf die Schaltfläche links daneben klicken. Darunter wird Skip angezeigt. Das heißt, wenn Sie nichts ändern, setup.exewird nicht installiert zsync.

    Velma Dinkley installiert zsync in Cygwin, während sie ihren Blog in "Siren's Song" aktualisiert.

  7. Also einmal klicken, wo es heißt Überspringen . Jetzt wird die neueste stabile Version von zsyncfür Cygwin installiert .

    Bildbeschreibung hier eingeben

  8. Klicken Sie erneut auf Weiter , um die Installation abzuschließen. Die Cygwin-Umgebung und zsyncwerden heruntergeladen und installiert. (Wenn Sie aufgefordert werden, Pakete zu installieren, die als Abhängigkeiten erforderlich sind, fahren Sie fort.)

Sobald es installiert ist, öffnen Sie die Cygwin-Shell. Du kannst zsyncvon dort weglaufen.

Verweise

Bitte beachten Sie, dass , während Sie auf der Post können Cygwin - Mailingliste für Probleme mit Cygwin (nach der Lektüre , dass und die Materialien , die es Ihnen zu lesen erzählt), sie verständlicherweise nicht nicht unterstützen inoffizielle Anweisungen. cygwinhat eine recht gute Dokumentation, so dass sie wie andere Projekte mit einer guten zentralisierten Dokumentation (wie OpenBSD) erwarten, dass Leute, die um Hilfe bitten, die Dokumentation gelesen haben und damit arbeiten (oder zumindest sehr vertraut sind).

(Wenn Sie Probleme mit meinen Anweisungen haben, ist der beste Ort, um danach zu fragen, wahrscheinlich hier .)

zsync auf Ubuntu

Dies gilt nicht in Ihrem speziellen Fall, aber für Leute, die zsyncunter Ubuntu arbeiten möchten , installieren SieInstallieren Sie zsync einfach zsync . Dies kann im Software Center oder durch Ausführen in einem Terminalfenster ( Ctrl+ Alt+ T) erfolgen:

sudo apt-get update && sudo apt-get install zsync

Jetzt können Sie es vom Terminal ausführen.

Verwandte Themen : Wie aktualisiere ich eine ISO mit zsync?

Verwenden Sie, zsyncum Ihre beschädigten ISO-Images zu reparieren

Wechseln Sie in der Eingabeaufforderung zu dem Verzeichnis, das Ihre beschädigte ISO-Datei enthält. (Mit können Sie das cdVerzeichnis wechseln, genau wie mit Ubuntu. Mit können Sie dirden Inhalt eines Verzeichnisses auflisten.) Vergewissern Sie sich, dass die Datei denselben Dateinamen hat wie zum Zeitpunkt des Abrufs.

Führen Sie nun zsyncje nach Ubuntu-ISO-Image eine der folgenden Methoden aus:

  • 12.10, 32-Bit:

    zsync http://releases.ubuntu.com/quantal/ubuntu-12.10-desktop-i386.iso.zsync
    
  • 12.10, 64-Bit:

    zsync http://releases.ubuntu.com/quantal/ubuntu-12.10-desktop-amd64.iso.zsync
    
  • 12.04.1 LTS, 32-Bit:

    zsync http://releases.ubuntu.com/12.04.1/ubuntu-12.04.1-desktop-i386.iso.zsync
    
  • 12.04.1 LTS, 64-Bit:

    zsync http://releases.ubuntu.com/12.04.1/ubuntu-12.04.1-desktop-amd64.iso.zsync
    
  • 12.04 LTS (vor dem Release von 12.04.1), 32-Bit:

    zsync http://old-releases.ubuntu.com/releases/precise/ubuntu-12.04-desktop-i386.iso.zsync
    
  • 12.04 LTS (vor dem Release von 12.04.1), 64-Bit:

    zsync http://old-releases.ubuntu.com/releases/precise/ubuntu-12.04-desktop-amd64.iso.zsync
    

Sobald Sie einen dieser Befehle ausführen, zsyncwird Ihre ISO automatisch auf die richtige Version aktualisiert, und Sie können loslegen.

Verwenden zsyncfür andere Dateien

Die allgemeine Syntax lautet, dass Sie zsynceine vollständige URL für die .zsyncDatei auf dem Server ausführen , die denselben Namen hat wie die Datei, von der Sie eine Version haben und die Sie herunterladen möchten (außer .zsyncam Ende des Kurses).

Falls dies für andere Ubuntu-Releases (oder andere ISO-Dateien für dasselbe Release, z. B. die für das ordnungsgemäße Booten auf Macs optimierte Version oder die Version für ARM-basierte Mobilgeräte) gewünscht wird, gilt die Regel für den .zsyncSpeicherort der Dateien :

  • ISO-Images mit derzeit unterstützten Installationsprogrammen, einschließlich ISOs für die neueste Punktversion von LTS-Versionen und aller ISOs für derzeit unterstützte LTS-Versionen, befinden sich in:

    http://releases.ubuntu.com/

  • ISO-Images für End-of-Life-Releases (die Sie sowieso nicht verwenden sollten) oder frühere Point-of-Life-Releases von unterstützten LTS-Releases befinden sich in:

    http://old-releases.ubuntu.com/releases/

Klicken Sie einfach auf den Link für Ihre Version und scrollen Sie nach unten, um die vollständige Dateiliste anzuzeigen (oder suchen Sie auf der Seite nach .zsync). Kopieren Sie dann die URL und fügen Sie sie in den zsyncBefehl ein.

Verwenden Sie in "Upgrade"

Sie können auch verwenden zsync, um ein ISO auf ein anderes zu "upgraden". Wahrscheinlich muss ein Großteil der Datei erneut heruntergeladen werden, wenn Sie ein Upgrade von einer Ubuntu-Version auf eine andere durchführen. Wenn Sie jedoch Punktversionen (wie 12.04 LTS auf 12.04.1 LTS) aktualisieren, muss nicht so viel heruntergeladen werden. Dies ist eine hervorragende Möglichkeit, schnell und effizient eine neue Punktveröffentlichung zu erhalten.

Benennen Sie einfach die alte Datei um, sodass sie denselben Namen wie die neue Datei hat, und führen Sie sie dann zsyncwie oben beschrieben aus.

BitTorrent

Wenn Ihre Internetverbindung eine hohe Fehlerrate aufweist, ist BitTorrent oft eine der besten Möglichkeiten, um Dateien zuverlässig herunterzuladen. Dateien werden in viele kleine Teile aufgeteilt, und jedes Teil wird heruntergeladen und überprüft, um festzustellen, ob es sich um das Original handelt. (Die einzelnen Stücke können von verschiedenen Computern heruntergeladen werden, wodurch BitTorrent die Belastung eines zentralen Servers vermeidet und häufig schnellere Geschwindigkeiten als bei webbasierten Downloads erreicht.)

Torrents für Ubuntu 12.10 und Ubuntu 12.04.1 sind hier erhältlich.

Zum Herunterladen benötigen Sie einen BitTorrent-Client. Wenn Sie noch keine haben, die Sie bevorzugen, empfehle ich BitTornado für Windows .

Nach dem Herunterladen empfehle ich, einige zu säen, wenn Sie können, um sie der Community zurückzugeben. (Mit BitTorrent von Leuten wie Ihnen.) Sie müssen es jedoch nicht sofort tun - Sie können zu Ihrem BitTorrent-Programm zurückkehren und es später neu erstellen. Sie können es sogar beenden, während der Download noch nicht abgeschlossen ist, und es jederzeit fortsetzen.

Verwenden von BitTorrent, um die vorhandene Datei zu reparieren

Warnung: Dieser Unterabschnitt ist nicht so gut recherchiert wie der Rest der Antwort. Ich habe die Verwendung von BitTorrent zur Behebung beschädigter Dateien in letzter Zeit, unter Windows oder mit BitTornado nicht getestet. Ich gehe davon aus, dass dies für Sie funktionieren würde, aber ich kann nicht sicher sein.

Während BitTorrent für diesen Zweck nicht so häufig verwendet wird wie zsyncdas BitTorrent-Protokoll selbst, ist es genauso fähig.

Einige BitTorrent-Programme tun dies - andere lehnen es ab oder laden die gesamte Datei von Grund auf herunter - es sei denn, die Datei, mit der Sie beginnen, hat exakt dieselbe Größe. (Bequemerweise hat ein beschädigter Download häufig die gleiche Größe wie die richtige Datei.)

Legen Sie das alte ISO-Image in denselben Ordner wie die .torrentDatei. Stellen Sie sicher, dass Ihr BitTorrent-Programm den Torrent dort herunterlädt. Es wird geprüft, ob Ihre aktuelle Datei in Ordnung ist. Wenn festgestellt wird, dass einige Teile falsch sind, können sie erneut heruntergeladen werden.

Bei einigen BitTorrent-Programmen müssen Sie die Datei als laufenden Torrent importieren oder zum Seeding öffnen, um dies zu tun.


15
Dies ist eine ziemlich epische Antwort.
Nanne

@Nanne Danke! Übrigens, wenn Sie mehr Details wissen, als ich über die Verwendung von BitTorrent zur Reparatur bereits vorhandener Dateien angegeben habe, bearbeiten Sie diese bitte, um bessere Informationen darüber zu erhalten (falls Sie dies wünschen).
Eliah Kagan

Wow ... Das ist ungefähr das 10-fache der Antwort, die ich erwartet hatte! Vielen Dank! Probieren Sie es aus und akzeptieren oder aktualisieren Sie die Frage mit weiteren Details!
Hailwood

-1

Sie können ISO Master verwenden, wenn Sie Dateien zur ISO hinzufügen und daraus entfernen möchten. Es ist sowohl für Windows als auch für Linux verfügbar.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.