Come identificare e sostituire i file rotti in un ISO Ubuntu corrotto?


14

Quindi, questo non è esattamente un problema con Ubuntu, ma piuttosto con l'installazione.

Ogni volta che provo a scaricare Ubuntu ISO (da qualsiasi fonte) sembra corrotto. Cioè, le somme MD5 non sono mai corrette.

I file ISO di Ubuntu vengono forniti con un file che elenca tutti i file nell'ISO e i rispettivi MD5SUM.

Quello che desidero fare è scorrere su questo file e confrontarli con i loro file nell'ISO, e capire quali file sono corrotti, nella speranza di poter estrarre i file corrotti da uno degli altri file ISO, per creare un programma di installazione funzionante.

Ma non so come farlo e, naturalmente, per peggiorare le cose, devo farlo da Windows 7.

Qualcuno sa come risolvere questo problema?


Jigdo (il modo preferito di Debian) non dovrebbe essere in grado di farlo? Il suo scopo principale ora è fare aggiornamenti delta per rilasci puntuali su ISO tramite l'aggiornamento di pacchetti all'interno degli ISO. su ISO Debian e Jigdo
gertvdijk l'

@gertvdijk Non per gli ISO desktop di Ubuntu, perché contengono principalmente un solo file (vedi la mia risposta ). Ecco perché gli ISO desktop non hanno .jigdofile associati sui server di download. Le alterne CD e server di CD ISO di fare avere .jigdoi file. Gli ISO desktop hanno il programma di installazione Ubiquity, che funziona scrivendo il sistema di CD live sul disco e quindi apportando modifiche in modo che sia pronto per il normale utilizzo (installato).
Eliah Kagan,

@EliahKagan Ha senso. Va bene, in quel caso, non dovrebbero esserci file di blocchi di parità PAR per correggere ISO completi? È molto più efficiente, molto più semplice e più universale. "Parchive è stato originariamente scritto per risolvere il problema del trasferimento affidabile di file su Usenet, [1], ma ora è comunemente usato per proteggere qualsiasi tipo di dati dalla corruzione dei dati, dalla decomposizione dei bit e da danni accidentali o dannosi."
gertvdijk,

1
Perché PAR sarebbe meglio di zsync? Anche se i PAR sono stati supportati ufficialmente dal progetto Ubuntu (come zsyncè), ci sono notevoli vantaggi? Informazioni su jigdo: è applicabile ai CD alternativi e del server. Usano debian-installer, creando un sistema di ossa nude, eseguendo il chroot e installando pacchetti. Quindi hanno tutti i .debfile, situati nel pool di pacchetti (che contiene solo pochi file sui CD desktop). Possono essere facilmente assemblati con .jigdo(o altri metodi). Potresti voler pubblicare una jigdorisposta basata su server / alternativa su come scaricare solo i file danneggiati.
Eliah Kagan,

1
@EliahKagan Avrei dovuto dirlo: - PAR può fare cose offline , ad esempio "hai bisogno di 3 blocchi di parità per riparare", dar loro da mangiare "okay, sistemare roba ... fatto!". Zsync ha effettivamente bisogno di una buona copia completa (remota in questo caso). Ma sì, il principio è lo stesso. A proposito, vedo che Zsync è in grado di gestire gzipmolto bene gli archivi ed, ma che l'intelligenza è inutile su SquashFS, suppongo? Ad ogni modo, per ISO di Ubuntu zsync è la strada da percorrere, anzi.
gertvdijk,

Risposte:


34

In realtà, so quale file è danneggiato

Cercare di combinare file da più immagini ISO corrotte in una singola, buona immagine ISO non è un buon approccio a questo problema. Ecco perché.

Quasi tutti i dati nell'immagine ISO appartiene ad un solo file casper/filesystem.squashfs.

Cioè su un'immagine desktop CD o DVD di Ubuntu ISO. Sull'immagine CD di un server o su un'immagine CD alternativa, è una storia diversa.

Proprietà Nautilus per filesystem.squashfs su un CD desktop Ubuntu 12.10 i386

Quindi ora posso dirti quale file è quasi certamente corrotto su ciascuna delle ISO che hai scaricato: quel file, su tutte. Quando qualcosa è corrotto in un ISO di Ubuntu, i byte cattivi sono quasi sempre da qualche parte lì dentro.

filesystem.squashfsè essa stessa un'immagine del disco; è montato come parte dell'avvio del sistema sul CD live. Potresti potenzialmente estrarlo dall'ISO, quindi estrarre il suo contenuto, vedere cosa è danneggiato e sostituire i file danneggiati. Sebbene sia possibile montare o estrarre un file system squashfs su Windows, è probabile che si tratti di un'attività non banale. E questa immagine è compressa, quindi non vi è alcuna garanzia che una piccola corruzione nell'ISO contenente non influenzi più file.

Inoltre, se hai provato a scaricare l'immagine ISO più volte ed è sempre corrotto, puoi essere abbastanza sicuro che non sia solo una piccola corruzione. Potrebbe essere necessario sostituire centinaia o migliaia di file se si è tentato di farlo in questo modo.

Invece, dovresti scaricare l'immagine ISO usando un metodo più affidabile.

Convenientemente, uno di questi ( zsync) è simile a quello che stai pensando, tranne per il fatto che scaricherà solo i pezzi necessari dei file ISO, anziché solo i file necessari contenuti al suo interno.

Assicurati di fare un confronto con l'Hash MD5 giusto

La prima cosa da fare quando la somma di MD5 è errata, specialmente se è sbagliata dopo aver scaricato di nuovo il file, è assicurarsi di confrontarla con l'hash MD5 per il file corretto.

La mia ipotesi è quella

  • hai un'immagine LTS 12.04 e stai usando un hash MD5 per un'immagine LTS 12.04.1
    (che non è lo stesso file ), oppure
  • hai un'immagine LTS 12.04.1 e stai usando un hash MD5 per un'immagine LTS 12.04, oppure
  • hai un'immagine a 32 bit ("i386") e stai usando un hash MD5 per un'immagine a 64 bit, oppure
  • hai un'immagine a 64 bit ("amd64") e stai usando un hash MD5 per un'immagine a 32 bit.

L'elenco degli hash MD5 per ciascun file è qui.

In generale, se l'hash MD5 è sbagliato ma lo stesso per più di un download, di solito

  • stai confrontando con l'hash sbagliato, o
  • il file è corrotto sul server (quindi, se questo sembra essere il caso, scaricare da un altro mirror e, se lo si desidera, segnalare un bug sul contenuto del sito Web Ubuntu in modo che il problema venga risolto), oppure
  • stai utilizzando un proxy o una VPN che memorizza nella cache i contenuti Web e ha in qualche modo memorizzato nella cache una copia danneggiata (il download da un altro mirror dovrebbe risolvere anche quello), oppure
  • stai scaricando tramite FTP e un problema con il server o con il tuo client FTP sta causando il trasferimento del file in modalità testo anziché in modalità binaria (questo lo corromperà e di solito lo stesso lo stesso modo ogni volta), oppure
  • la tua connessione viene deliberatamente intercettata e alterata da una terza parte malintenzionata che ti sta deliberatamente alimentando il file sbagliato (questo di solito è abbastanza improbabile).

È possibile selezionare manualmente un (diverso) mirror per il download nella parte inferiore di questa pagina .

Se la tua immagine ISO è davvero corrotta, ecco alcuni modi per ottenere un buon file.

zsync

zsync(vedi anche qui ) è un'utilità che può trasformare un file parzialmente corretto in un file totalmente corretto scaricando solo le parti di cui non hai le versioni giuste. La sua applicazione principale è per il download di immagini leggermente aggiornate, come quelle da una build notturna all'altra.

Il modo in cui zsyncfunziona è questo: qualcuno che offre il file (come il progetto Ubuntu) crea un .zsyncfile che contiene molti checksum: checksum corrispondenti a molte piccole parti del file, piuttosto che un solo checksum per l'intero file. Si inizia ovunque dal nulla all'intero file.

Con nulla, l'intero file viene scaricato. Con una parte del file (ovvero un file con lo stesso nome di dimensioni diverse o della stessa dimensione con un numero qualsiasi di differenze binarie), scopre quali parti devono essere scaricate e le scarica. Con l'intero file, non scarica nulla.

Per connessioni Internet molto inaffidabili , zsyncnon è molto meglio di un browser Web per scaricare un intero file da zero, a meno che tu non sia disposto a eseguirlo due o più volte, nel qual caso, le esecuzioni successive correggeranno i problemi nelle esecuzioni precedenti . Per tutte le connessioni Internet ad eccezione del tasso di errore più elevato, eseguire zsync due volte o, occasionalmente, tre volte su un file dovrebbe essere sufficiente.

Ma non devi preoccuparti quasi di correre zsyncpiù volte. Dato che hai già - presumibilmente - la maggior parte del file, quindi non dovrebbe essere un problema. E come sempre se zsyncti dà qualcosa di corrotto, puoi sempre eseguire di zsyncnuovo per risolverlo.

Ottenere zsyncper Windows

zsyncviene eseguito tradizionalmente su un sistema simile a Unix (che in realtà non include Windows). Tuttavia, recentemente è stata creata una porta nativa di Windowszsync , quindi probabilmente puoi usarla.

zsyncè un programma da riga di comando, quindi in Windows lo esegui nel Prompt dei comandi. (Un modo per aprire il prompt dei comandi è digitare cmd.exenella casella di testo nel menu Start e premere Enter. Oppure, in Windows XP e precedenti, Start> Esegui> cmd.exe.)

Un altro modo: ottenere zsyncCygwin

In caso di problemi con la porta di Windows di zsync, è sempre possibile utilizzare la versione di Cygwin. Cygwin fornisce un ambiente simile a Unix per Windows. Non consente l'esecuzione di eseguibili compilati (ad esempio, non è possibile utilizzare zsyncdal pacchetto Ubuntu), ma utilizza versioni speciali di programmi compilati per esso dal sorgente. (È molto più semplice compilare un programma scritto per sistemi operativi simili a Unix in Cygwin, piuttosto che compilarlo in modo che funzioni in modo nativo su Windows.)

  1. Per prima cosa, scarica il programma di installazione di Cygwin ( setup.exe) da qui (o usa questo link diretto ).
  2. Eseguilo, fai clic su Avanti nella prima schermata, quindi seleziona Installa da Internet e fai di nuovo clic su Avanti .
  3. Nelle due schermate successive, inserisci Cygwin e la directory del pacchetto locale dove preferisci (le impostazioni predefinite sono generalmente valide).
  4. Seleziona il tipo di connessione Internet (la connessione diretta è generalmente valida) e setup.exescaricherà un elenco di mirror.
  5. Scegli qualsiasi mirror e scaricherà un elenco di pacchetti disponibili. Probabilmente verrai avvisato di come questa versione è diversa dalla precedente. Questo non è un problema, a meno che tu non abbia utilizzato una versione precedente di Cygwin sulla stessa macchina.

    Messaggio di avviso di installazione su come è la prima volta che si installa questa particolare versione di Cygwin.  Se non hai mai usato Cygwin prima, questo può essere ignorato.  Come dice "Se questa è la prima volta che installi Cygwin su questo sistema, puoi ignorare questo messaggio".

  6. Ora puoi selezionare quali pacchetti installare. C'è una casella di testo per cercare i pacchetti per nome. Digita zsynclì (ma non premere - Enterse lo fai, è come fare clic su Avanti ). Apparirà una voce per Net . Espandilo facendo clic su +a sinistra e vedrai Skip sotto di esso. Ciò significa che se non si modifica nulla, nonsetup.exe verrà installato .zsync

    Velma Dinkley installa zsync in Cygwin mentre aggiorna il suo blog in "Siren's Song".

  7. Quindi fai clic una volta, dove dice Salta . Ora installerà l'ultima versione stabile disponibile di zsyncper Cygwin.

    inserisci qui la descrizione dell'immagine

  8. Fare di nuovo clic su Avanti per terminare l'installazione. L'ambiente Cygwin e zsyncverrà scaricato e installato. (Se ti viene chiesto di installare i pacchetti richiesti come dipendenze, vai avanti e fallo.)

Una volta installato, apri la shell Cygwin. Puoi correre zsyncda lì.

Riferimenti

Si noti che sebbene sia possibile pubblicare sulla mailing list di Cygwin per problemi con Cygwin (dopo averlo letto e i materiali che si dice di leggere), comprensibilmente non supportano istruzioni non ufficiali. cygwinha una documentazione abbastanza buona, quindi come altri progetti con una buona documentazione centralizzata (come OpenBSD), si aspettano che le persone che chiedono aiuto abbiano letto la documentazione e stiano lavorando (o almeno conoscendola).

(Pertanto, se hai problemi con le mie istruzioni, il posto migliore per chiederle è probabilmente qui .)

zsync su Ubuntu

Questo non si applica nel tuo caso specifico, ma per le persone che vogliono usare zsyncsu Ubuntu, installa zsyncInstalla zsync . Questo può essere fatto nel Software Center o eseguendolo in una finestra Terminale ( Ctrl+ Alt+ T):

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

Ora puoi eseguirlo dal Terminale.

Correlati: Come posso aggiornare un ISO con zsync?

Utilizzo zsyncper correggere le immagini ISO danneggiate

Nel Prompt dei comandi, vai alla directory che contiene il tuo file ISO danneggiato. (Puoi usare cdper cambiare directory, come per Ubuntu. Usa dirper elencare il contenuto di una directory.) Assicurati che il file che hai abbia lo stesso nome di file di quando l'hai ottenuto.

Ora esegui zsyncuno di questi modi, a seconda dell'immagine ISO di Ubuntu che è:

  • 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 (prima del rilascio del punto 12.04.1), 32 bit:

    zsync http://old-releases.ubuntu.com/releases/precise/ubuntu-12.04-desktop-i386.iso.zsync
    
  • 12.04 LTS (prima del rilascio del punto 12.04.1), 64 bit:

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

Una volta eseguito uno di questi comandi, zsynceseguirà automaticamente la patch ISO fino alla versione corretta e sei a posto.

Utilizzo zsyncper altri file

La sintassi generale è che si esegue zsyncseguito da un URL completo per il .zsyncfile sul server che ha lo stesso nome del file di cui si dispone una versione e si desidera scaricare (tranne con .zsyncalla fine del corso).

Nel caso in cui qualcuno voglia farlo per qualsiasi altra versione di Ubuntu (o altri file ISO per la stessa versione, come la versione ottimizzata per l'avvio corretto su Mac o la versione per dispositivi mobili basati su ARM) ecco la regola per dove .zsyncsi trovano i file :

  • Le immagini ISO contenenti gli installatori attualmente supportati, inclusi gli ISO per l'ultima versione dei rilasci LTS e tutti gli ISO per i rilasci LTS attualmente supportati, si trovano in:

    http://releases.ubuntu.com/

  • Le immagini ISO per le versioni di fine vita (che non dovresti usare comunque) o le versioni di punti precedenti delle versioni LTS supportate si trovano in:

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

Basta fare clic sul collegamento per la versione e scorrere verso il basso per visualizzare l'elenco completo dei file (o cercare la pagina .zsync). Quindi copia l'URL e incollalo nel zsynccomando.

Utilizzare in "Aggiornamento"

Puoi anche usare zsyncper "aggiornare" un ISO a un altro. Probabilmente dovrà scaricare di nuovo la maggior parte del file se si esegue l'aggiornamento da una versione di Ubuntu a un'altra. Ma se stai aggiornando le versioni dei punti (come 12.04 LTS a 12.04.1 LTS), non è necessario scaricare altrettanto. Questo è un modo eccellente per ottenere un nuovo rilascio di punti in modo rapido ed efficiente.

Rinomina il vecchio file in modo che abbia lo stesso nome del nuovo file, quindi esegui zsynccome sopra.

BitTorrent

Quando la tua connessione Internet ha un alto tasso di errore, BitTorrent è spesso uno dei modi migliori per scaricare file in modo affidabile. I file sono divisi in molti piccoli pezzi e ogni pezzo viene scaricato e controllato per vedere se è la cosa reale. (I singoli pezzi possono essere scaricati da diversi computer, il che è ciò che consente a BitTorrent di evitare di caricare un server centrale e di raggiungere velocità spesso più veloci di quelle possibili con i download basati sul Web.)

I torrent per Ubuntu 12.10 e Ubuntu 12.04.1 possono essere ottenuti qui.

Avrai bisogno di un "client" BitTorrent per scaricarlo. Se non ne hai già uno che preferisci, per Windows ti consiglio BitTornado .

Dopo aver scaricato, ti consiglio di seminarne alcuni, se puoi, per restituirli alla community. (Con BitTorrent da parte di persone come te.) Non è necessario farlo subito, ma puoi tornare al tuo programma BitTorrent e seme in seguito. Puoi anche chiuderlo mentre il download è incompleto e riprenderlo in qualsiasi momento.

Usare BitTorrent per correggere il file che hai

Avvertenza: questa sottosezione non è ben studiata come il resto della risposta. Non ho testato l'uso di BitTorrent per riparare file danneggiati di recente, su Windows o con BitTornado. Mi aspetto che questo funzioni per te, ma non posso esserne sicuro.

Mentre BitTorrent non è così comunemente usato per questo scopo come zsync, il protocollo BitTorrent stesso è altrettanto capace di esso.

Alcuni programmi BitTorrent lo faranno - altri si rifiuteranno o scaricheranno l'intero file da zero - a meno che il file con cui inizi non abbia esattamente le stesse dimensioni. (Convenientemente, un download danneggiato spesso ha le stesse dimensioni del file corretto.)

Inserisci la vecchia immagine ISO nella stessa cartella del .torrentfile. Assicurati che il tuo programma BitTorrent scarichi il torrent lì. Verificherà se il file corrente è valido. Quando vede alcune parti sbagliate, può scaricarle nuovamente.

Per alcuni programmi BitTorrent, è necessario importare il file come torrent in corso o aprirlo per il seeding, per fare ciò.


15
Questa è una risposta piuttosto epica.
Nanne,

@Nanne Grazie! A proposito, se ti capita di conoscere più dettagli di quelli che ho fornito sull'utilizzo di BitTorrent per riparare file preesistenti, modifica questo per fornire migliori informazioni a riguardo (se lo desideri).
Eliah Kagan,

Caspita ... Ora sono circa 10 volte la risposta che mi aspettavo! Grazie! Ci proverò e accetterai o aggiorneremo la domanda con qualche dettaglio in più!
Hailwood,

-1

È possibile utilizzare ISO Master se si desidera aggiungere e rimuovere file all'ISO. È disponibile per Windows e Linux.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.