web-dev-qa-db-fra.com

Comment identifier et remplacer les fichiers cassés dans un ISO corrompu d'Ubuntu?

Donc, ce n’est pas vraiment un problème sous Ubuntu, mais plutôt avec son installation.

Chaque fois que j'essaie de télécharger l'image ISO d'Ubuntu (de n'importe quelle source), elle semble corrompue. C'est-à-dire que les sommes MD5 ne sont jamais correctes.

Les fichiers ISO d'Ubuntu sont fournis avec un fichier qui répertorie tous les fichiers de l'ISO et leurs MD5SUM respectifs.

Ce que je souhaite faire est de parcourir ce fichier en boucle et de les comparer à leurs fichiers dans l’ISO, et de déterminer quels fichiers sont corrompus, dans l’espoir que je puisse extraire les fichiers corrompus de l’un des autres fichiers ISO, pour créer un fichier. installateur de travail.

Mais, je ne sais pas comment faire cela, et bien sûr, pour faire empirer les choses, je dois le faire sous Windows 7.

Est-ce que quelqu'un sait comment réparer ceci?

14
Hailwood

En fait, je sais quel fichier est corrompu

Essayer de combiner des fichiers de plusieurs images ISO corrompues en une seule et bonne image ISO n’est pas une bonne solution à ce problème. Voici pourquoi.

Presque tout ​​les données de l'image ISO appartiennent à n seul fichier, _casper/filesystem.squashfs_.

Sur une image ISO de CD ou de DVD de bureau Ubuntu, c'est-à-dire. Sur une image CD de serveur ou une autre image de CD, l'histoire est différente.

Nautilus properties for filesystem.squashfs on an Ubuntu 12.10 i386 desktop CD

Je peux donc vous dire maintenant quel fichier est presque certainement corrompu sur chacune des images ISO que vous avez téléchargées: ce fichier, sur toutes. Quand quelque chose est corrompu dans une image ISO d'Ubuntu, les mauvais octets sont presque toujours quelque part à l'intérieur.

_filesystem.squashfs_ est lui-même une image disque; il est monté dans le cadre du démarrage du système sur le live CD. Vous pourriez potentiellement l'extraire de l'ISO, puis extraire son contenu, voir ce qui est corrompu et remplacer les fichiers corrompus. Bien que vous puissiez monter ou extraire un système de fichiers squashfs sous Windows, vous constaterez probablement que cela est une tâche non triviale. Et comme cette image est compressée, il n’ya aucune garantie que des dommages mineurs dans l’ISO contenant ne vont pas affecter plusieurs fichiers.

De plus, si vous avez essayé de télécharger l’image ISO plusieurs fois et qu’elle est toujours corrompue, vous pouvez être presque certain que ce n’est pas simplement mineur corruption. Vous devrez peut-être remplacer des centaines ou des milliers de fichiers si vous tentez de le faire de cette façon.

À la place, vous devez télécharger l'image ISO à l'aide d'une méthode plus fiable.

Idéalement, l’un d’eux (zsync) est semblable à ce que vous pensez, sauf qu’il ne téléchargera que les fichiers nécessaires des fichiers ISO, plutôt que les fichiers nécessaires qu’ils contiennent.

Assurez-vous de comparer le bon hachage MD5

La première chose à faire quand votre somme MD5 est fausse --surtout ​​si elle ne va pas après avoir téléchargé le fichier à nouveau - est de vous assurer que vous la comparez au hachage MD5 pour le bon fichier.

Je suppose que c'est

  • vous avez une image 12.04 LTS et vous utilisez un hachage MD5 pour une image 12.04.1 LTS
    (qui est pas le même fichier ), o
  • vous avez une image LTS 12.04.1 et vous utilisez un hachage MD5 pour une image LTS 12.04, o
  • vous avez une image 32 bits ("i386") et vous utilisez un hachage MD5 pour une image 64 bits, o
  • vous avez une image 64 bits ("AMD64") et vous utilisez un hachage MD5 pour une image 32 bits.

La liste des hachages MD5 pour chaque fichier est ici.

En général, si votre hachage MD5 est incorrect mais identique pour plusieurs téléchargements, généralement

  • vous comparez le mauvais hachage, o
  • le fichier est corrompu sur le serveur (donc si cela semble être le cas, téléchargez-le depuis un autre miroir et, si vous le souhaitez, signalez un bogue contre le contenu du site Web ubuntu afin que le problème soit résolu), o
  • vous utilisez un proxy ou un VPN qui met en cache le contenu Web, et une copie corrompue est en quelque sorte mise en cache (le téléchargement à partir d'un autre miroir devrait également résoudre ce problème), o
  • vous téléchargez via FTP et un problème avec le serveur ou votre client FTP provoque le transfert du fichier en mode texte plutôt qu'en mode binaire (cela le corrompra et le corrompra généralement de la même manière à chaque fois), o
  • votre connexion est délibérément interceptée et modifiée par un tiers malveillant qui vous alimente délibérément avec le mauvais fichier (toutefois, cela est généralement assez improbable).

Vous pouvez sélectionner manuellement un miroir de téléchargement (différent) au bas de cette page .

Si votre image ISO est vraiment corrompue, voici quelques méthodes pour obtenir un bon fichier.

zsync

zsync (voir aussi ici ) est un utilitaire permettant de transformer un fichier partiellement correct ​​en un fichier totalement correct ​​par télécharger uniquement les parties dont vous ne possédez pas les bonnes versions. Son application principale permet de télécharger des images légèrement mises à jour, comme celles d'une version nocturne à une autre.

La façon dont fonctionne zsync est la suivante: Quelqu'un offrant le fichier (comme le projet Ubuntu) crée un fichier _.zsync_ qui contient de nombreuses sommes de contrôle - des sommes de contrôle correspondant à de nombreuses petites parties du fichier, plutôt qu’une seule somme de contrôle pour le fichier entier. . Vous commencez avec n'importe où, de rien au fichier entier.

Avec rien, le fichier entier est téléchargé. Avec une partie du fichier (c’est-à-dire un fichier du même nom de taille différente ou avec un nombre quelconque de différences binaires), il détermine quelles parties doivent être téléchargées et ne télécharge que ces parties. Avec le fichier entier, il ne télécharge rien.

Pour connexions Internet très peu fiables, zsync n'est pas mieux qu'un navigateur Web pour télécharger un fichier entier à partir de zéro, à moins que vous ne vouliez l'exécuter deux fois ou plus, auquel cas , les exécutions ultérieures corrigent les problèmes des exécutions antérieures. Pour toutes les connexions Internet, sauf le taux d'erreur le plus élevé, exécuter zsync deux fois ou, à l'occasion, trois fois sur un fichier devrait suffire.

Mais vous n’avez pas à vous soucier autant d’exécuter zsync plusieurs fois. Étant donné que vous avez déjà - vraisemblablement - la majeure partie du fichier, cela ne devrait pas poser de problème. Et comme toujours, si zsync vous donne quelque chose de corrompu, vous pouvez toujours exécuter à nouveau zsync pour le réparer.

Obtenir zsync pour Windows

zsync fonctionne traditionnellement sur un système de type Unix (qui n'inclut pas vraiment Windows). Cependant, récemment n port Windows natif de zsync a été créé , vous pouvez donc probablement l'utiliser.

zsync est un programme en ligne de commande. Sous Windows, vous l'exécutez à l'invite de commande. (L’une des façons d’ouvrir l’invite de commande consiste à taper _cmd.exe_ dans la zone de texte du menu Démarrer et à appuyer sur Enter. Ou, dans Windows XP et les versions antérieures, cliquez sur Démarrer> Exécuter> _cmd.exe_.)

Une autre façon: obtenir zsync pour Cygwin

Si vous rencontrez des problèmes avec le port Windows de zsync, vous pouvez toujours utiliser la version Cygwin. Cygwin fournit un environnement de type Unix pour Windows. Cela ne permet pas aux exécutables compilés d'être exécutés (par exemple, vous ne pouvez pas utiliser zsync du paquet Ubuntu), mais utilisez des versions spéciales des programmes compilés à partir de la source. (Il est beaucoup plus facile de compiler un programme écrit pour des systèmes d'exploitation de type Unix dans Cygwin que de le compiler pour qu'il fonctionne de manière native sous Windows.)

  1. Tout d'abord, obtenez le programme d'installation de Cygwin (_setup.exe_) à partir d'ici (ou utilisez ce lien direct ).
  2. Exécutez-le, cliquez sur Suivant sur le premier écran, puis sélectionnez Installer à partir d'Internet ​​et cliquez sur Suivant à nouveau.
  3. Sur les deux écrans suivants, placez Cygwin et le répertoire de paquets local où vous les aimez (les valeurs par défaut sont généralement bonnes).
  4. Sélectionnez votre type de connexion Internet (Connexion directe est généralement bon), et _setup.exe_ téléchargera une liste de miroirs.
  5. Choisissez n'importe quel miroir et il téléchargera une liste des paquets disponibles. Vous serez probablement averti de la différence entre cette version et la précédente. Ce n'est pas un problème, à moins que vous n'utilisiez une version précédente de Cygwin sur le même ordinateur.

    Setup Alert message about how how this is the first time you've installed this particular version of Cygwin. If you haven't used Cygwin before, this can be ignored. As it says, "If this is the first time you've installed Cygwin on this system then you can ignore this message."

  6. Vous pouvez maintenant sélectionner les paquets à installer. Il existe une zone de texte pour rechercher des paquets par nom. Tapez zsync ici (mais ne pas appuyer sur Enter--si vous le faites, c'est comme cliquer Next). Une entrée pour Net ​​apparaîtra. Développez-le en cliquant sur le + à gauche de celui-ci et vous verrez Skip apparaître en dessous. Cela signifie que si vous ne changez rien, _setup.exe_ va pas installer zsync.

    Velma Dinkley installs zsync in Cygwin while updating her blog in "Siren's Song."

  7. Alors cliquez une fois, là où il est écrit Skip. Il va maintenant installer la dernière version stable disponible de zsync pour Cygwin.

    enter image description here

  8. Cliquez à nouveau sur Next ​​pour terminer l'installation. L'environnement Cygwin et zsync seront téléchargés et installés. (Si vous êtes invité à installer les paquetages requis en tant que dépendances, allez-y, faites-le.)

Une fois installé, ouvrez le shell Cygwin. Vous pouvez exécuter zsync à partir de là.

Références

Veuillez noter que même si vous pouvez poster sur la liste de diffusion Cygwin pour des problèmes avec Cygwin (après avoir lu cela et le matériel qu’elle vous dit de lire), ils le font naturellement not ​​support officieux instructions. cygwin possède une assez bonne documentation. Par conséquent, à l'instar d'autres projets dotés d'une bonne documentation centralisée (telle qu'OpenBSD), ils s'attendent à ce que les personnes qui demandent de l'aide aient lu la documentation et l'utilisent (ou du moins très bien).

(Par conséquent, si vous avez des problèmes avec mes instructions, le meilleur endroit pour poser des questions à leur sujet est probablement ici.)

zsync sur Ubuntu

Cela ne s'applique pas à votre cas particulier, mais pour ceux qui veulent utiliser zsync sur Ubuntu, installez simplement zsync Install zsync . Cela peut être fait dans le Centre logiciel ou en l’exécutant dans une fenêtre de terminal (Ctrl+Alt+T):

_Sudo apt-get update && Sudo apt-get install zsync
_

Maintenant, vous pouvez l'exécuter depuis le terminal.

Connexes: Comment mettre à jour une image ISO avec zsync?

Utilisation de zsync pour réparer vos images ISO corrompues

Dans l'invite de commande, accédez au répertoire qui contient votre fichier ISO corrompu. (Vous pouvez utiliser cd pour changer de répertoire, comme pour Ubuntu. Utilisez dir pour répertorier le contenu d'un répertoire.) Assurez-vous que le fichier que vous avez porte le même nom de fichier que lorsque vous l'avez obtenu.

Exécutez maintenant zsync de l’une des manières suivantes, en fonction de l’image ISO Ubuntu:

  • 12.10, 32 bits:

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

    _zsync http://releases.ubuntu.com/quantal/ubuntu-12.10-desktop-AMD64.iso.zsync
    _
  • 12.04.1 LTS, 32 bits:

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

    _zsync http://releases.ubuntu.com/12.04.1/ubuntu-12.04.1-desktop-AMD64.iso.zsync
    _
  • 12.04 LTS (avant la libération du point 12.04.1), 32 bits:

    _zsync http://old-releases.ubuntu.com/releases/precise/ubuntu-12.04-desktop-i386.iso.zsync
    _
  • 12.04 LTS (avant la libération du point 12.04.1), 64 bits:

    _zsync http://old-releases.ubuntu.com/releases/precise/ubuntu-12.04-desktop-AMD64.iso.zsync
    _

ne fois que vous avez exécuté l'une de ces commandes, zsync corrigera automatiquement votre ISO jusqu'à la version correcte, et vous pourrez continuer.

Utilisation de zsync pour d'autres fichiers

La syntaxe générale est que vous exécutez zsync suivi d'une URL complète pour le fichier _.zsync_ sur le serveur portant le même nom que le fichier dont vous avez une version et que vous souhaitez télécharger (sauf avec _.zsync_ à la fin du cours).

Au cas où quelqu'un voudrait le faire pour d'autres versions d'Ubuntu (ou d'autres fichiers ISO pour la même version, comme la version optimisée pour démarrer correctement sur les Mac ou la version pour les appareils mobiles basés sur ARM), voici la règle à suivre pour le _.zsync_ les fichiers sont situés:

  • Les images ISO contenant les programmes d'installation actuellement pris en charge, y compris les ISO pour la dernière version ponctuelle des versions LTS et toutes les ISO pour les versions LTS actuellement prises en charge, se trouvent dans:

    http://releases.ubuntu.com/

  • Les images ISO des versions de fin de vie (à ne pas utiliser de toute façon) ou des versions ponctuelles précédentes des versions LTS prises en charge se trouvent dans:

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

Cliquez simplement sur le lien correspondant à votre version et faites défiler la liste pour voir la liste complète des fichiers (ou recherchez la page pour _.zsync_). Copiez ensuite l'URL et collez-le dans la commande zsync.

Utiliser dans "Mise à niveau"

Vous pouvez également utiliser zsync pour "mettre à niveau" un ISO à un autre. Il vous faudra probablement retélécharger la plus grande partie du fichier si vous effectuez une mise à niveau d’une version Ubuntu à une autre. Toutefois, si vous mettez à niveau des versions ponctuelles (telles que 12.04 LTS vers 12.04.1 LTS), le téléchargement n’est pas aussi important. C'est un excellent moyen d'obtenir un nouveau point rapidement et efficacement.

Il suffit de renommer l’ancien fichier pour qu’il porte le même nom que le nouveau fichier, puis exécutez zsync comme ci-dessus.

BitTorrent

Lorsque votre connexion Internet présente un taux d’erreur élevé, BitTorrent est souvent l’un des meilleurs moyens de télécharger des fichiers de manière fiable. Les fichiers sont divisés en plusieurs petits morceaux, et chaque morceau est téléchargé et vérifié pour voir si c'est la vraie chose. (Les éléments individuels peuvent être téléchargés à partir de différents ordinateurs. C’est ce qui permet à BitTorrent d’éviter de charger un serveur central et d’atteindre des vitesses souvent plus rapides que celles possibles avec les téléchargements Web.)

Vous pouvez obtenir Torrents pour Ubuntu 12.10 et Ubuntu 12.04.1 ici.

Vous aurez besoin d'un "client" BitTorrent pour le télécharger. Si vous n'en avez pas déjà un que vous préférez, pour Windows, je recommande BitTornado .

Une fois que vous avez téléchargé, je vous recommande d’en ensemencer quelques-uns, si vous le pouvez, pour redonner à la communauté. (Avec BitTorrent, ce sont des personnes comme vous.) Cependant, vous n’avez pas à le faire tout de suite: vous pouvez revenir à votre programme BitTorrent et le semer plus tard. Vous pouvez même le quitter lorsque le téléchargement est inachevé et le reprendre à tout moment.

Utiliser BitTorrent pour réparer le fichier que vous avez

Attention: cette sous-section n’est pas aussi documentée que le reste de la réponse. Je n'ai pas testé l'utilisation de BitTorrent pour réparer les fichiers corrompus récemment, ni sous Windows, ni avec BitTornado. J'espère que cela fonctionnera pour vous, mais je ne peux pas en être sûr.

Bien que BitTorrent ne soit pas aussi couramment utilisé à cette fin que zsync, le protocole BitTorrent lui-même en est tout aussi capable.

Certains programmes BitTorrent procéderont de la sorte - d’autres refuseront ou téléchargeront l’ensemble du fichier - à moins que le fichier avec lequel vous commencez n’ait exactement la même taille. (De manière pratique, un téléchargement corrompu souvent ​​a la même taille que le fichier correct.)

Placez l'ancienne image ISO dans le même dossier que le fichier _.torrent_. Assurez-vous que votre programme BitTorrent télécharge le torrent à cet endroit. Il vérifiera si votre fichier actuel est bon. Quand il voit que certaines parties sont fausses, il peut les télécharger à nouveau.

Pour certains programmes BitTorrent, vous devez importer le fichier en tant que torrent en cours ou l'ouvrir pour le réensemencer.

34
Eliah Kagan