Como identificar e substituir arquivos quebrados em um Ubuntu ISO corrompido?

14

Portanto, isso não é exatamente um problema com o Ubuntu, mas sim com a instalação dele.

Toda vez que eu tento baixar o Ubuntu ISO (de qualquer fonte), parece acabar corrompido. Ou seja, as somas MD5 nunca estão corretas.

Os arquivos ISO do Ubuntu vêm com um arquivo que lista todos os arquivos no ISO e seus respectivos MD5SUMs.

O que eu quero fazer é fazer um loop sobre este arquivo, e compará-los com seus arquivos no ISO, e descobrir quais arquivos estão corrompidos, na esperança de que eu possa extrair os arquivos corrompidos de um dos outros arquivos iso, para criar um instalador de trabalho.

Mas, eu não sei como fazer isso e, claro, para piorar, eu tenho que fazer isso no Windows 7.

Alguém sabe como consertar isso?

    
por Hailwood 11.01.2013 / 05:03

2 respostas

34

Na verdade, eu sei qual arquivo está corrompido

Tentar combinar arquivos de várias imagens ISO corrompidas em uma única e boa imagem ISO não é uma boa abordagem para esse problema. Aqui está o porquê.

Quase todos os dados da imagem ISO pertencem ao apenas um arquivo, casper/filesystem.squashfs .

Em uma imagem ISO do CD ou DVD de desktop do Ubuntu, isso é. Em uma imagem de CD de servidor ou imagem de CD alternativa, é uma história diferente.

Então eu posso dizer agora que arquivo é quase certamente corrompido em cada ISO que você baixou: aquele arquivo, em todos eles. Quando algo está corrompido em um ISO do Ubuntu, os bytes inválidos estão quase sempre em algum lugar lá.

filesystem.squashfs é em si uma imagem de disco; Ele é montado como parte da inicialização do sistema no live CD. Você poderia extraí-lo da ISO, extrair o conteúdo, ver o que está corrompido e substituir os arquivos corrompidos. Embora você possa montar ou extrair um sistema de arquivos squashfs no Windows, você provavelmente acharia isso uma tarefa não trivial. E essa imagem é compactada, por isso não há garantia de que pequenas distorções no ISO contido não afetem vários arquivos.

Além disso, se você tentou baixar a imagem ISO várias vezes e ela está sempre corrompida, você pode ter certeza de que não é apenas uma corrupção menor . Você pode ter que substituir centenas ou milhares de arquivos se você tentou fazer desta forma.

Em vez disso, você deve baixar a imagem ISO usando um método mais confiável.

Convenientemente, um deles ( zsync ) é semelhante ao que você está pensando, exceto que ele baixará apenas as partes necessárias dos arquivos ISO, ao invés de apenas os arquivos necessários contidos nele.

Verifique se está comparando com o hash MD5 correto

A primeira coisa a fazer quando a sua soma MD5 está errada - especialmente se estiver errado depois de baixar o arquivo novamente - é ter certeza de que você está comparando com o MD5 hash para o arquivo correto.

Meu palpite é que

  • você tem uma imagem 12.04 LTS e está usando um hash MD5 para uma imagem 12.04.1 LTS
    (que é não é o mesmo arquivo ), < em> ou
  • você tem uma imagem 12.04.1 LTS e está usando um hash MD5 para uma imagem 12.04 LTS, ou
  • você tem uma imagem de 32 bits ("i386") e está usando um hash MD5 para uma imagem de 64 bits, ou
  • você tem uma imagem de 64 bits ("amd64") e está usando um hash MD5 para uma imagem de 32 bits.

A lista de hashes MD5 para cada arquivo está aqui.

Em geral, se o seu hash MD5 estiver errado, mas o mesmo para mais de um download, geralmente

  • você está comparando com o hash errado, ou
  • o arquivo está corrompido no servidor (portanto, se esse for o caso, faça o download de um espelho diferente e, se desejar, relate um bug contra o ubuntu-website-content para que o problema seja corrigido), < em> ou
  • você está usando um proxy ou VPN que armazena em cache o conteúdo da web e, de alguma forma, armazenou em cache uma cópia corrompida (o download de outro espelho também deve corrigir isso), ou
  • você está baixando via FTP e um problema com o servidor ou com o seu cliente FTP está fazendo com que o arquivo seja transferido no modo texto em vez do modo binário (isso corromperá e geralmente o corromperá da mesma maneira a cada vez), ou
  • sua conexão está sendo deliberadamente interceptada e alterada por um terceiro mal-intencionado que está deliberadamente alimentando o arquivo errado (isso geralmente é bastante improvável, no entanto).

Você pode selecionar manualmente um download zsync (veja também aqui é um utilitário que pode transformar um arquivo parcialmente correto em um arquivo totalmente correto baixando apenas as partes das quais você não tem as versões corretas. Sua principal aplicação é para baixar imagens ligeiramente atualizadas, como as de uma construção noturna para outra.

A maneira como zsync funciona é esta: Alguém oferecendo o arquivo (como o projeto Ubuntu) cria um arquivo .zsync que contém muitas somas de verificação - somas de verificação correspondentes a muitas partes pequenas do arquivo, em vez de apenas uma soma de verificação para o arquivo inteiro. Você começa com algo do nada para o arquivo inteiro.

Com nada, o arquivo inteiro é baixado.Com parte do arquivo (ou seja, um arquivo com o mesmo nome que é um tamanho diferente ou do mesmo tamanho com qualquer número de diferenças binárias), ele descobre quais partes precisam ser baixadas e apenas faz o download dessas partes. Com o arquivo inteiro, ele não faz o download de nada.

Para conexões não confiáveis da Internet , zsync não é muito melhor do que um navegador para baixar um arquivo inteiro do zero, a menos que você esteja disposto a executá-lo duas ou mais vezes , nesse caso, execuções posteriores corrigirão os problemas em execuções anteriores . Para todas as conexões de Internet com exceção da taxa de erro mais alta, a execução do zsync duas vezes ou, ocasionalmente, três vezes em um arquivo deve ser suficiente.

Mas você não precisa se preocupar tanto com a execução de zsync várias vezes. Já que você - presumivelmente - já tem a maior parte do arquivo, então isso não deveria ser um problema. E como sempre, se zsync der alguma coisa corrompida, você sempre poderá executar zsync novamente para corrigi-lo.

Obtendo zsync para Windows

zsync é executado tradicionalmente no sistema Unix-like (que realmente não inclui o Windows). No entanto, recentemente foi criada uma porta nativa do Windows de zsync , então você provavelmente pode usar isso.

zsync é um programa de linha de comando, portanto, no Windows, você o executa no Prompt de Comando. (Uma maneira de abrir o prompt de comando é digitar cmd.exe na caixa de texto no menu Iniciar e pressionar Enter . Ou, no Windows XP e anteriores, clique em Iniciar & gt; Executar & gt; cmd.exe .)

Outra maneira: obter zsync para o Cygwin

Se você tiver algum problema com a porta do Windows de zsync , você sempre pode usar a versão do Cygwin. O Cygwin fornece um ambiente semelhante ao Unix para o Windows. Ele não permite que executáveis compilados sejam executados (por exemplo, você não pode usar zsync do pacote Ubuntu), mas usa versões especiais de programas compilados para ele a partir da origem. (É muito mais fácil compilar um programa escrito para sistemas operacionais do tipo Unix no Cygwin do que compilá-lo para que funcione de maneira nativa no Windows.)

  1. Primeiro, obtenha o instalador do Cygwin ( setup.exe ) aqui (ou use este link direto ).
  2. Execute-o, clique em Próximo na primeira tela, selecione Instalar da Internet e clique em Próximo novamente.
  3. Nas próximas duas telas, coloque o Cygwin e o diretório do pacote local onde quiser (os padrões geralmente são bons).
  4. Selecione seu tipo de conexão com a Internet (a Conexão Direta geralmente é boa), e setup.exe baixará uma lista de espelhos.
  5. Escolha qualquer espelho e ele baixará uma lista de pacotes disponíveis. Você provavelmente será avisado sobre como esta versão é diferente da anterior. Isso não é um problema, a menos que você esteja usando uma versão anterior do Cygwin na mesma máquina.

  6. Agora você pode selecionar quais pacotes instalar. Existe uma caixa de texto para pesquisar pacotes pelo nome. Digite zsync lá (mas não pressione Enter - se fizer isso, é como clicar em Próximo ). Uma entrada para Net aparecerá. Expanda-o clicando no + à esquerda dele e você verá que Skip aparece abaixo dele. Isso significa que, se você não alterar nada, setup.exe não instalará zsync .

  7. Então, clique uma vez, onde diz Ignorar . Agora ele instalará a última versão estável disponível de zsync para o Cygwin.

  8. Clique em Próximo novamente para concluir a instalação. O ambiente do Cygwin e zsync serão baixados e instalados. (Se você for solicitado a instalar pacotes que são necessários como dependências, vá em frente e faça isso.)

Uma vez instalado, abra o shell do Cygwin. Você pode executar zsync de lá.

  

Referências

     

Por favor, note que enquanto você pode postar na lista de discussão do Cygwin   para problemas com Cygwin (depois de ler isso e os materiais que   diz-lhe para ler), eles compreensivelmente não não suportam não oficiais   instruções. cygwin tem uma boa documentação, assim como outros   projetos com boa documentação centralizada (como o OpenBSD), eles   esperar que as pessoas que pedem ajuda tenham lido a documentação   e estão trabalhando (ou pelo menos muito familiarizados com isso).

     

(Portanto, se você tiver problemas com minhas instruções, o melhor lugar   perguntar sobre eles provavelmente está aqui .

zsync no Ubuntu

Isso não se aplica ao seu caso específico, mas para pessoas que queiram usar zsync no Ubuntu, basta instalar zsync . Isso pode ser feito no Centro de Software ou executando-o em uma janela do Terminal ( Ctrl + Alt + T ):

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

Agora você pode executá-lo no Terminal.

Relacionados: Como faço para atualizar um ISO com zsync?

Usando zsync para corrigir suas imagens ISO corrompidas

No prompt de comando, vá para o diretório que contém o arquivo ISO corrompido. (Você pode usar cd para alterar o diretório, da mesma forma que o Ubuntu. Use dir para listar o conteúdo de um diretório.) Verifique se o arquivo que você tem tem o mesmo nome de arquivo de quando você o obteve.

Agora execute zsync de uma destas formas, dependendo da imagem ISO do 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 (antes do lançamento do ponto 12.04.1), 32 bits:

    zsync http://old-releases.ubuntu.com/releases/precise/ubuntu-12.04-desktop-i386.iso.zsync
    
  • 12.04 LTS (antes do lançamento do ponto 12.04.1), 64 bits:

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

Depois de executar um desses comandos, zsync corrigirá automaticamente o seu ISO para a versão correta, e você estará pronto.

Usando zsync para outros arquivos

A sintaxe geral é que você executa zsync seguido por um URL completo para o arquivo .zsync no servidor que tem o mesmo nome do arquivo do qual você tem uma versão e deseja fazer o download (exceto com .zsync no final do curso).

Caso alguém queira fazer isso para quaisquer outras versões do Ubuntu (ou outros arquivos ISO para a mesma versão, como a versão otimizada para inicializar corretamente em Macs ou a versão para dispositivos móveis baseados em ARM) aqui está a regra para onde .zsync arquivos estão localizados:

  • Imagens ISO contendo instaladores suportados atualmente, incluindo ISO para o último lançamento de versões LTS e todos os ISOs para versões LTS atualmente suportadas, estão localizados em:

    http://releases.ubuntu.com/

  • Imagens ISO para versões de final de vida (que você não deve usar de qualquer maneira) ou lançamentos anteriores de versões LTS suportadas estão localizadas em:

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

Basta clicar no link da sua versão e rolar para baixo para ver a lista completa de arquivos (ou pesquise a página por .zsync ). Em seguida, copie o URL e cole-o no comando zsync .

Use em "Atualizando"

Você também pode usar zsync para "atualizar" um ISO para outro. Ele provavelmente terá que baixar novamente a maior parte do arquivo se você estiver atualizando de uma versão do Ubuntu para outra. Mas se você estiver atualizando os lançamentos pontuais (como o 12.04 LTS para o 12.04.1 LTS), ele não precisa baixar tanto. Esta é uma excelente maneira de obter um novo lançamento pontual com rapidez e eficiência.

Basta renomear o arquivo antigo para que ele tenha o mesmo nome do novo arquivo e, em seguida, execute zsync como acima.

BitTorrent

Quando sua conexão com a Internet tem uma alta taxa de erros, BitTorrent é geralmente uma das melhores maneiras de fazer o download de arquivos de forma confiável . Os arquivos são divididos em vários pedaços pequenos, e cada peça é baixada e verificada para ver se é a coisa real. (As peças individuais podem ser baixadas de diferentes computadores, que é o que permite que o BitTorrent evite colocar carga em um servidor central e atingir velocidades frequentemente mais rápidas do que as possíveis com downloads baseados na web.)

Torrents para Ubuntu 12.10 e Ubuntu 12.04.1 podem ser obtidos aqui.

Você precisará de um "cliente" BitTorrent para baixá-lo. Se você ainda não tem um que você prefere, para o Windows eu recomendo BitTornado .

Depois de fazer o download, recomendo adicionar alguns se puder, para retribuir à comunidade. (Com o BitTorrent de pessoas como você.) Você não precisa fazer isso imediatamente - você pode voltar para o seu programa BitTorrent e gerá-lo mais tarde. Você pode até mesmo desistir enquanto o download estiver inacabado e reiniciá-lo a qualquer momento.

Usando o BitTorrent para corrigir o arquivo que você tem

Aviso: Esta subseção não é tão bem pesquisada quanto o restante da resposta. Eu não testei o uso do BitTorrent para corrigir arquivos corrompidos recentemente, ou no Windows, ou com o BitTornado. Espero que isso funcione para você, mas não posso ter certeza.

Embora o BitTorrent não seja tão comumente usado para essa finalidade como zsync , o próprio protocolo BitTorrent é capaz disso.

Alguns programas BitTorrent fazem isso - outros recusam, ou baixam o arquivo inteiro do zero - a menos que o arquivo com o qual você começou é exatamente do mesmo tamanho. (Convenientemente, um download corrompido frequentemente tem o mesmo tamanho do arquivo correto.)

Coloque a imagem ISO antiga na mesma pasta que o arquivo .torrent . Certifique-se de que seu programa BitTorrent baixe o torrent lá. Ele irá verificar se o seu arquivo atual é bom. Quando ele vê que algumas partes estão erradas, ele pode baixá-las novamente.

Para alguns programas BitTorrent, você deve importar o arquivo como um torrent em andamento, ou abri-lo para propagação, para fazer isso.

    
por Eliah Kagan 11.01.2013 / 09:17
-1

Você pode usar ISO Master se quiser adicionar e remover arquivos para o ISO. Está disponível para Windows e Linux.

    
por Mukund 11.01.2013 / 07:06