¿Cómo identificar y reemplazar archivos rotos en un Ubuntu ISO corrupto?

14

Entonces, esto no es exactamente un problema al ejecutar Ubuntu, sino más bien con la instalación.

Cada vez que trato de descargar el ISO de Ubuntu (de cualquier fuente) parece terminar corrupto. Es decir, las sumas MD5 nunca son correctas.

Los archivos ISO de Ubuntu vienen con un archivo que enumera todos los archivos en ISO y sus respectivos MD5SUM.

Lo que deseo hacer es recorrer este archivo y compararlo con sus archivos en la ISO, y determinar qué archivos están corruptos, con la esperanza de poder extraer los archivos corruptos de uno de los otros archivos iso, para crear un instalador de trabajo.

Pero no sé cómo hacer esto y, por supuesto, para empeorarlo, tengo que hacerlo desde Windows 7.

¿Alguien sabe cómo arreglar esto?

Granizo
fuente
¿No debería Jigdo (la forma preferida de Debian) ser capaz de hacer esto? Su objetivo principal ahora es hacer actualizaciones delta para lanzamientos puntuales en ISO a través de paquetes de actualización dentro de los ISO. sobre Debian ISOs y Jigdo
gertvdijk
@gertvdijk No es para las ISO de escritorio de Ubuntu, porque en su mayoría contienen solo un archivo (vea mi respuesta ). Es por eso que los ISO de escritorio no tienen .jigdoarchivos asociados en los servidores de descarga. Las alternativas de CD y el servidor de CD ISO hacen tener .jigdoarchivos. Los ISO de escritorio tienen el instalador Ubiquity, que funciona al escribir el sistema de CD en vivo en el disco y luego realizar cambios para que esté preparado para el uso normal (instalado).
Eliah Kagan
@EliahKagan Eso tiene sentido. De acuerdo, en ese caso, ¿no debería haber archivos de bloqueo de paridad PAR para reparar ISO completos? Eso es mucho más eficiente, mucho más fácil y más universal. "Parchive se escribió originalmente para resolver el problema de transferir archivos de manera confiable en Usenet, [1] pero ahora se usa comúnmente para proteger cualquier tipo de datos contra la corrupción de datos, la descomposición de bits y el daño accidental o malicioso".
gertvdijk
1
¿Por qué PAR sería mejor que zsync? Incluso si PAR fue respaldado oficialmente por el proyecto Ubuntu (como zsynces), ¿hay ventajas notables? Acerca de jigdo: es aplicable a los CD alternativos y de servidor. Utilizan debian-installer, crean un sistema básico, hacen chrooting e instalan paquetes. Por lo tanto, tienen todos los .debarchivos, ubicados en el grupo de paquetes (que contiene solo unos pocos archivos en CD de escritorio). Se pueden ensamblar fácilmente con .jigdo(u otros métodos). Es posible que desee publicar una jigdorespuesta basada en el servidor / alternativa sobre cómo descargar solo los archivos rotos.
Eliah Kagan
1
@EliahKagan Debería haber mencionado que: PAR puede hacer cosas sin conexión , por ejemplo, "necesita 3 bloques de paridad para reparar", alimentarlos, "está bien, arreglando cosas ... ¡listo!". Zsync efectivamente necesita una buena copia completa (remota en este caso). Pero sí, el principio es el mismo. Por cierto, veo que Zsync puede manejar gziparchivos ed muy bien, pero supongo que esa inteligencia es inútil en SquashFS. De todos modos, para Ubuntu ISOs, zsync es el camino a seguir, de hecho.
gertvdijk

Respuestas:

34

En realidad, sé qué archivo está dañado

Intentar combinar archivos de múltiples imágenes ISO corruptas en una sola imagen ISO buena no es un buen enfoque para este problema. Este es el por qué.

Casi todos los datos en la imagen ISO pertenece a un solo archivo, casper/filesystem.squashfs.

En una imagen ISO de CD o DVD de escritorio de Ubuntu, es decir. En una imagen de CD del servidor o una imagen de CD alternativa, es una historia diferente.

Propiedades de Nautilus para filesystem.squashfs en un CD de escritorio Ubuntu 12.10 i386

Entonces, puedo decirle ahora qué archivo es casi seguro que está dañado en cada uno de los ISO que descargó: ese archivo, en todos ellos. Cuando algo está dañado en un ISO de Ubuntu, los bytes incorrectos casi siempre están en algún lugar allí.

filesystem.squashfses en una imagen de disco; se monta como parte del arranque del sistema en el CD en vivo. Potencialmente, podría extraerlo de la ISO, luego extraer su contenido, ver qué está dañado y reemplazar los archivos dañados. Si bien puede montar o extraer un sistema de archivos squashfs en Windows, es probable que hacerlo sea una tarea no trivial. Y esta imagen está comprimida, por lo que no hay garantía de que una corrupción menor en el ISO que contiene no afecte a varios archivos.

Además, si ha intentado descargar la imagen ISO varias veces y siempre está corrupta, puede estar bastante seguro de que no se trata solo de una corrupción menor . Es posible que tenga que reemplazar cientos o miles de archivos si intenta hacerlo de esta manera.

En su lugar, debe descargar la imagen ISO utilizando un método más confiable.

Convenientemente, uno de ellos ( zsync) es similar a lo que está pensando, excepto que descargará solo las piezas necesarias de los archivos ISO, en lugar de solo los archivos necesarios contenidos en él.

Asegúrese de comparar con el hash MD5 correcto

Lo primero que debe hacer cuando la suma de su MD5 está mal, especialmente si está mal después de descargar el archivo nuevamente, es asegurarse de compararlo con el hash MD5 para obtener el archivo correcto.

Mi conjetura es que

  • tiene una imagen 12.04 LTS y está utilizando un hash MD5 para una imagen 12.04.1 LTS
    (que no es el mismo archivo ), o
  • tiene una imagen 12.04.1 LTS y está usando un hash MD5 para una imagen 12.04 LTS, o
  • tiene una imagen de 32 bits ("i386") y está utilizando un hash MD5 para una imagen de 64 bits, o
  • tiene una imagen de 64 bits ("amd64") y está utilizando un hash MD5 para una imagen de 32 bits.

La lista de hash MD5 para cada archivo está aquí.

En general, si su hash MD5 está mal pero es el mismo para más de una descarga, generalmente

  • estás comparando con el hash incorrecto, o
  • el archivo está dañado en el servidor (así que si ese es el caso, descárguelo desde un espejo diferente y, si lo desea, informe un error en ubuntu-website-content para que el problema se solucione), o
  • está utilizando un proxy o VPN que almacena en caché el contenido web, y de alguna manera ha almacenado en caché una copia corrupta (la descarga desde otro espejo también debería solucionarlo), o
  • está descargando a través de FTP y un problema con el servidor o con su cliente FTP está causando que el archivo se transfiera en modo de texto en lugar de en modo binario (esto lo corromperá, y generalmente lo corrompe de la misma manera cada vez), o
  • su conexión está siendo interceptada y alterada deliberadamente por un tercero malintencionado que deliberadamente le está proporcionando el archivo incorrecto (sin embargo, esto es bastante poco probable).

Puede seleccionar manualmente un espejo de descarga (diferente) en la parte inferior de esta página .

Si su imagen ISO está realmente dañada, aquí hay algunas formas de obtener un buen archivo.

zsync

zsync(vea también aquí ) es una utilidad que puede convertir un archivo parcialmente correcto en un archivo totalmente correcto descargando solo las partes de las que no tiene las versiones correctas. Su aplicación principal es para descargar imágenes ligeramente actualizadas, como las de una compilación nocturna a otra.

La forma en que zsyncfunciona es esta: alguien que ofrece el archivo (como el proyecto Ubuntu) crea un .zsyncarchivo que contiene muchas sumas de verificación, que corresponden a muchas partes pequeñas del archivo, en lugar de solo una suma de verificación para todo el archivo. Empiezas con nada, desde nada hasta todo el archivo.

Sin nada, se descarga todo el archivo. Con parte del archivo (es decir, un archivo con el mismo nombre que tiene un tamaño diferente o el mismo tamaño con cualquier número de diferencias binarias), determina qué partes deben descargarse y solo descarga esas partes. Con todo el archivo, no descarga nada.

Para conexiones de Internet muy poco confiables , zsyncno es mucho mejor que un navegador web para descargar un archivo completo desde cero, a menos que esté dispuesto a ejecutarlo dos o más veces, en cuyo caso, las ejecuciones posteriores corregirán los problemas en ejecuciones anteriores . Para todas las conexiones de Internet, excepto la tasa de error más alta, ejecutar zsync dos veces u, ocasionalmente, tres veces en un archivo debería ser suficiente.

Pero no tiene que preocuparse tanto por correr zsyncvarias veces. Dado que usted, presumiblemente, tiene la mayor parte del archivo, eso no debería ser un problema. Y, como siempre, si zsyncle da algo dañado, siempre puede zsyncvolver a ejecutarlo para solucionarlo.

Obteniendo zsyncpara Windows

zsyncTradicionalmente se ejecuta en un sistema tipo Unix (que realmente no incluye Windows). Sin embargo, recientemente se ha creado un puerto nativo de Windowszsync , por lo que probablemente pueda usarlo.

zsynces un programa de línea de comandos, por lo que en Windows lo ejecuta en el símbolo del sistema. (Una forma de abrir el símbolo del sistema es escribir cmd.exeen el cuadro de texto en el menú Inicio y presionar Enter. O, en Windows XP y versiones anteriores, Inicio> Ejecutar> cmd.exe).

Otra forma: conseguir zsyncCygwin

Si tiene algún problema con el puerto de Windows zsync, siempre puede usar la versión Cygwin. Cygwin proporciona un entorno similar a Unix para Windows. No permite que se ejecuten ejecutables compilados (por ejemplo, no se puede usar zsyncdesde el paquete Ubuntu), pero usa versiones especiales de programas compilados para él desde la fuente. (Es mucho más fácil compilar un programa escrito para sistemas operativos tipo Unix en Cygwin que compilarlo para que funcione de forma nativa en Windows).

  1. Primero, obtenga el instalador de Cygwin ( setup.exe) desde aquí (o use este enlace directo ).
  2. Ejecútelo, haga clic en Siguiente en la primera pantalla, luego seleccione Instalar desde Internet y haga clic en Siguiente nuevamente.
  3. En las siguientes dos pantallas, coloque Cygwin y el directorio del paquete local donde desee (los valores predeterminados suelen ser buenos).
  4. Seleccione su tipo de conexión a Internet ( la conexión directa suele ser buena) y setup.exedescargará una lista de espejos.
  5. Elija cualquier espejo y descargará una lista de paquetes disponibles. Probablemente se le advertirá acerca de cómo esta versión es diferente de la anterior. Eso no es un problema, a menos que haya estado utilizando una versión anterior de Cygwin en la misma máquina.

    Mensaje de alerta de configuración sobre cómo es la primera vez que instala esta versión particular de Cygwin.  Si no ha usado Cygwin antes, esto puede ignorarse.  Como dice: "Si es la primera vez que instala Cygwin en este sistema, puede ignorar este mensaje".

  6. Ahora puede seleccionar qué paquetes instalar. Hay un cuadro de texto para buscar paquetes por nombre. Escriba zsyncallí (pero no presione Enter; si lo hace, es como hacer clic en Siguiente ). Aparecerá una entrada para Net . Expanda haciendo clic en +a la izquierda y verá Saltar debajo de él. Esto significa que si usted no cambia nada, setup.exeva a no instalar zsync.

    Velma Dinkley instala zsync en Cygwin mientras actualiza su blog en "Siren's Song".

  7. Haga clic una vez, donde dice Saltar . Ahora instalará la última versión estable disponible de zsyncCygwin.

    ingrese la descripción de la imagen aquí

  8. Haga clic en Siguiente nuevamente para finalizar la instalación. El entorno Cygwin y zsyncse descargarán e instalarán. (Si se le pide que instale paquetes que son necesarios como dependencias, continúe y hágalo).

Una vez que esté instalado, abra el shell Cygwin. Puedes correr zsyncdesde allí.

Referencias

Tenga en cuenta que si bien puede publicar en la lista de correo de Cygwin por problemas con Cygwin (después de leer eso y los materiales que le indica que lea), es comprensible que no admitan instrucciones no oficiales. cygwintiene bastante buena documentación, por lo que al igual que otros proyectos con buena documentación centralizada (como OpenBSD), esperan que las personas que soliciten ayuda hayan leído la documentación y estén trabajando (o al menos estén muy familiarizados con ella).

(Por lo tanto, si tiene problemas con mis instrucciones, el mejor lugar para preguntar sobre ellas es probablemente aquí ).

zsync en Ubuntu

Esto no se aplica en su caso específico, pero para las personas que desean usar zsyncen Ubuntu, simplemente instalen zsyncInstalar zsync . Esto se puede hacer en el Centro de software o ejecutándolo en una ventana de Terminal ( Ctrl+ Alt+ T):

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

Ahora puedes ejecutarlo desde la Terminal.

Relacionado: ¿Cómo actualizo un ISO con zsync?

Utilizando zsyncpara arreglar sus imágenes ISO corruptas

En el símbolo del sistema, vaya al directorio que contiene su archivo ISO dañado. (Puede usar cdpara cambiar el directorio, igual que Ubuntu. Use dirpara enumerar el contenido de un directorio). Asegúrese de que el archivo que tiene tenga el mismo nombre de archivo que cuando lo obtuvo.

Ahora ejecute zsyncuna de estas formas, dependiendo de la imagen ISO de Ubuntu que sea:

  • 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 (antes del lanzamiento del punto 12.04.1), 32 bits:

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

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

Una vez que ejecute uno de esos comandos, zsyncautomáticamente parcheará su ISO a la versión correcta, y estará listo.

Utilizando zsyncpara otros archivos

La sintaxis general es que ejecuta zsyncseguido de una URL completa para el .zsyncarchivo en el servidor que tiene el mismo nombre que el archivo que tiene una versión y desea descargar (excepto con .zsyncal final del curso).

En caso de que alguien quiera hacer esto para cualquier otra versión de Ubuntu (u otros archivos ISO para la misma versión, como la versión optimizada para arrancar correctamente en Mac o la versión para dispositivos móviles basados ​​en ARM), esta es la regla sobre dónde .zsyncse encuentran los archivos :

  • Las imágenes ISO que contienen los instaladores actualmente compatibles, incluidas las ISO para la última versión puntual de las versiones LTS y todas las ISO para las versiones LTS actualmente compatibles, se encuentran en:

    http://releases.ubuntu.com/

  • Las imágenes ISO para las versiones de fin de vida útil (que no debe usar de todos modos) o las versiones puntuales anteriores de las versiones LTS compatibles se encuentran en:

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

Simplemente haga clic en el enlace de su versión y desplácese hacia abajo para ver la lista completa de archivos (o busque la página .zsync). Luego copie la URL y péguela en el zsynccomando.

Uso en "Actualización"

También puede usar zsyncpara "actualizar" un ISO a otro. Probablemente tendrá que volver a descargar la mayor parte del archivo si está actualizando una versión de Ubuntu a otra. Pero si está actualizando lanzamientos puntuales (como 12.04 LTS a 12.04.1 LTS), no tiene que descargar tanto. Esta es una excelente manera de obtener un nuevo lanzamiento puntual de manera rápida y eficiente.

Simplemente cambie el nombre del archivo anterior para que tenga el mismo nombre que el nuevo archivo, luego ejecútelo zsynccomo se indica arriba.

BitTorrent

Cuando su conexión a Internet tiene una alta tasa de error, BitTorrent es a menudo una de las mejores formas de descargar archivos de manera confiable. Los archivos se dividen en muchas piezas pequeñas, y cada pieza se descarga y se comprueba para ver si es real. (Las piezas individuales se pueden descargar desde diferentes computadoras, que es lo que le permite a BitTorrent evitar cargar en un servidor central y alcanzar velocidades a menudo más rápidas que las posibles con descargas basadas en la web).

Aquí se pueden obtener torrents para Ubuntu 12.10 y Ubuntu 12.04.1.

Necesitará un "cliente" de BitTorrent para descargarlo. Si aún no tiene uno que prefiera, para Windows le recomiendo BitTornado .

Después de descargar, le recomiendo sembrar algunos si puede, para retribuir a la comunidad. (Con BitTorrent de personas como usted). Sin embargo, no tiene que hacerlo de inmediato: puede volver a su programa de BitTorrent y comenzar más tarde. Incluso puede salir mientras la descarga está sin terminar y reanudarla en cualquier momento.

Usando BitTorrent para arreglar el archivo que tienes

Advertencia: esta subsección no está tan bien investigada como el resto de la respuesta. No he probado el uso de BitTorrent para reparar archivos corruptos recientemente, o en Windows, o con BitTornado. Espero que esto funcione para usted, pero no puedo estar seguro.

Si bien BitTorrent no se usa tan comúnmente para este propósito zsync, el protocolo BitTorrent en sí mismo es tan capaz de hacerlo.

Algunos programas de BitTorrent harán esto, otros se negarán o descargarán el archivo completo desde cero, a menos que el archivo con el que comienza sea exactamente del mismo tamaño. (Convenientemente, una descarga corrupta a menudo tiene el mismo tamaño que el archivo correcto).

Coloque la imagen ISO anterior en la misma carpeta que el .torrentarchivo. Asegúrese de que su programa BitTorrent descargue el torrent allí. Verificará si su archivo actual es bueno. Cuando ve que algunas partes están mal, puede volver a descargarlas.

Para algunos programas BitTorrent, debe importar el archivo como un torrent en progreso, o abrirlo para su inicialización, para hacer esto.

Eliah Kagan
fuente
15
Esta es una respuesta bastante épica.
Nanne
@Nanne ¡Gracias! Por cierto, si conoce más detalles de los que proporcioné sobre el uso de BitTorrent para reparar archivos preexistentes, edítelo para proporcionar una mejor información al respecto (si lo desea).
Eliah Kagan el
Wow ... ¡Esto es aproximadamente 10 veces la respuesta que esperaba! ¡Gracias! ¡Intentaremos esto y aceptaremos o actualizaremos la pregunta con más detalles!
Hailwood
-1

Puede usar ISO Master si desea agregar y eliminar archivos a ISO. Está disponible tanto para Windows como para Linux.

Mukund
fuente