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

14

Portanto, este não é exatamente um problema ao executar o Ubuntu, mas com a instalação.

Toda vez que tento baixar o ISO do Ubuntu (de qualquer fonte), parece que ele acaba 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 na ISO e seus respectivos MD5SUMs.

O que eu desejo fazer é fazer um loop sobre esse arquivo e compará-los com seus arquivos na 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 não sei como fazer isso e, é claro, para piorar, tenho que fazer isso no Windows 7.

Alguém sabe como consertar isso?

Hailwood
fonte
O Jigdo (a maneira preferida do Debian) não deveria ser capaz de fazer isso? Seu principal objetivo agora é fazer atualizações delta para lançamentos de pontos nos ISOs, através da atualização de pacotes dentro dos ISOs. sobre ISOs Debian e Jigdo
gertvdijk
@gertvdijk Não é para ISOs de desktop do Ubuntu, porque eles contêm apenas um único arquivo (veja minha resposta ). É por isso que as ISOs da área de trabalho não têm .jigdoarquivos associados nos servidores de download. As alternativas de CD e servidor de CD ISO fazer têm .jigdoarquivos. Os ISOs da área de trabalho possuem o instalador da Ubiquity, que funciona gravando o sistema de CD ao vivo e fazendo alterações nele, para que esteja preparado para o uso normal (instalado).
Eliah Kagan
@EliahKagan Isso faz sentido. Ok, nesse caso, não deveria haver arquivos de bloco de paridade PAR para corrigir ISOs completos? Isso é muito mais eficiente, muito mais fácil e mais universal. "O Parchive foi originalmente escrito para resolver o problema de transferência confiável de arquivos na Usenet, [1] mas agora é comumente usado para proteger qualquer tipo de dados contra corrupção de dados, podridão de bits e danos acidentais ou maliciosos".
precisa saber é
1
Por que o PAR seria melhor que zsync? Mesmo se o PAR fosse oficialmente suportado pelo projeto Ubuntu (como zsyncé), existem vantagens notáveis? Sobre o jigdo: É aplicável aos CDs alternativos e do servidor. Eles usam debian-installer, criando um sistema bare bones, inserindo e instalando pacotes em pacotes. Portanto, eles têm todos os .debarquivos, localizados no pool de pacotes (que contém apenas alguns arquivos nos CDs da área de trabalho). Eles podem ser facilmente montados com .jigdo(ou outros métodos). Você pode postar umjigdo resposta baseada em servidor / alternativa sobre como baixar apenas os arquivos quebrados.
Eliah Kagan
1
@EliahKagan Deveria ter mencionado isso - o PAR pode fazer coisas offline , por exemplo, "você precisa de 3 blocos de paridade para consertar", alimente-os, "tudo bem, consertando coisas ... pronto!". O Zsync precisa efetivamente de uma boa cópia completa (neste caso remota). Mas sim, o princípio é o mesmo. BTW, vejo que o Zsync pode lidar com gziparquivos muito bem, mas essa inteligência é inútil no SquashFS, presumo? De qualquer forma, para os ISOs do Ubuntu, o zsync é o caminho a percorrer.
#

Respostas:

34

Na verdade, eu sei qual arquivo está corrompido

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

Quase todos os dados na imagem ISO pertencem a apenas um arquivo casper/filesystem.squashfs.

Em uma imagem ISO de CD ou DVD da área de trabalho do Ubuntu, é isso. Em uma imagem de CD do servidor ou em uma imagem de CD alternativa, é uma história diferente.

Propriedades do Nautilus para filesystem.squashfs em um CD da área de trabalho Ubuntu 12.10 i386

Então, posso lhe dizer agora que arquivo está quase certamente corrompido em cada uma das ISOs que você baixou: esse arquivo, em todas elas. Quando algo está corrompido em uma ISO do Ubuntu, os bytes ruins estão quase sempre em algum lugar.

filesystem.squashfs é si uma imagem de disco; é montado como parte da inicialização do sistema no CD ao vivo. Você pode extraí-lo da ISO, extrair seu 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 achará que isso é uma tarefa não trivial. E essa imagem é compactada, portanto não há garantia de que pequenos danos na ISO que contém não afetem vários arquivos.

Além disso, se você tentou baixar a imagem ISO várias vezes e sempre está corrompida, pode ter certeza de que não se trata apenas de uma pequena corrupção. Pode ser necessário substituir centenas ou milhares de arquivos se você tentar fazer dessa maneira.

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 fará o download apenas das partes necessárias dos arquivos ISO, em vez de apenas dos arquivos necessários contidos nele.

Verifique se você está comparando com o hash MD5 correto

A primeira coisa a fazer quando sua soma MD5 está errada-- especialmente errada se estiver errado após o download do arquivo novamente - é garantir que você o esteja comparando com o hash MD5 do 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 ) 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 (por isso, se esse for o caso, faça o download de um espelho diferente e, se desejar, relate um bug no conteúdo do site ubuntu-web para que o problema seja corrigido) 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 deve corrigir isso também), ou
  • você está baixando via FTP e um problema com o servidor ou com o cliente FTP está fazendo com que o arquivo seja transferido no modo de texto em vez do modo binário (isso o corromperá e, geralmente, sempre da mesma maneira) ou
  • sua conexão está sendo interceptada e alterada deliberadamente por terceiros mal-intencionados que estão deliberadamente fornecendo a você o arquivo errado (isso geralmente é bastante improvável).

Você pode selecionar manualmente um espelho de download (diferente) na parte inferior desta página .

Se sua imagem ISO estiver realmente corrompida, veja algumas maneiras de obter um bom arquivo.

zsync

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 possui 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 zsyncfunciona é a seguinte: alguém oferecendo o arquivo (como o projeto Ubuntu) cria um.zsync arquivo 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 do nada ao arquivo inteiro.

Com nada, o arquivo inteiro é baixado. Com parte do arquivo (ou seja, um arquivo com o mesmo nome e com um tamanho diferente ou o mesmo tamanho com várias diferenças binárias), ele descobre quais partes precisam ser baixadas e apenas as baixa. Com o arquivo inteiro, ele não baixa nada.

Para conexões de Internet muito pouco confiáveis , zsyncnão é muito melhor do que um navegador da Web 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 nas execuções anteriores . Para todas as conexões de Internet com exceção da taxa de erro mais alta, executar o zsync duas vezes ou, ocasionalmente, três vezes em um arquivo deve ser suficiente.

Mas você não precisa se preocupar tanto em executar zsyncvárias vezes. Como você já - presumivelmente - possui a maior parte do arquivo, isso não deve ser um problema. E como sempre, se zsynclhe der algo corrompido, você sempre poderá executarzsync novamente para corrigi-lo.

Obtendo zsyncpara Windows

zsynctradicionalmente roda em sistema semelhante ao Unix (que na verdade não inclui o Windows). No entanto, recentemente, foi criada uma porta nativa do Windowszsync , portanto você provavelmente pode usá-la.

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.exena caixa de texto no menu Iniciar e pressionar Enter. Ou, no Windows XP e versões anteriores, Iniciar> Executar> cmd.exe.)

Outra maneira: obter zsync Cygwin

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

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

    Mensagem de alerta de instalação sobre como é a primeira vez que você instala esta versão específica do Cygwin.  Se você nunca usou o Cygwin, isso pode ser ignorado.  Como diz: "Se esta é a primeira vez que você instala o Cygwin neste sistema, pode ignorar esta mensagem."

  6. Agora você pode selecionar quais pacotes instalar. Há uma caixa de texto para pesquisar pacotes por nome. Digite zsynclá (mas não pressione Enter- se você pressionar , é como clicar em Avançar ). Uma entrada para Net será exibida. Expanda-o clicando no +lado esquerdo e você verá Ignorar abaixo dele. Isso significa que, se você não mudar nada, nãosetup.exe será instalado .zsync

    Velma Dinkley instala o zsync no Cygwin enquanto atualiza seu blog em "Siren's Song".

  7. Então clique uma vez, onde diz Ignorar . Agora ele instalará a versão estável mais recente disponível zsyncpara o Cygwin.

    insira a descrição da imagem aqui

  8. Clique em Avançar novamente para concluir a instalação. O ambiente Cygwin, e zsync, será baixado e instalado. (Se você for solicitado a instalar pacotes necessários como dependências, vá em frente e faça-o.)

Uma vez instalado, abra o shell Cygwin. Você pode correr zsyncde lá.

Referências

Observe que, embora você possa postar na lista de e-mails da Cygwin por problemas com o Cygwin (depois de ler isso e os materiais que ele pede para ler), eles compreensivelmente não suportam instruções não oficiais.cygwinpossui uma documentação bastante boa, assim como outros projetos com boa documentação centralizada (como o OpenBSD), eles esperam que as pessoas que solicitam ajuda leiam a documentação e estejam trabalhando (ou pelo menos muito familiarizadas) com ela.

(Portanto, se você tiver problemas com minhas instruções, provavelmente o melhor lugar para perguntar sobre elas é aqui .)

zsync no Ubuntu

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

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

Agora você pode executá-lo no Terminal.

Relacionado: Como atualizo um ISO com zsync?

Usando zsyncpara corrigir suas imagens ISO corrompidas

No prompt de comando, vá para o diretório que contém o arquivo ISO corrompido. (Você pode usar cdpara alterar o diretório, assim como o Ubuntu. Use dirpara listar o conteúdo de um diretório.) Verifique se o arquivo que você possui tem o mesmo nome de arquivo que o obtido.

Agora execute zsyncuma dessas maneiras, 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, zsynco ISO será corrigido automaticamente até a versão correta e você estará pronto.

Usando zsyncpara outros arquivos

A sintaxe geral é que você executa, zsyncseguido por uma URL completa para o .zsyncarquivo no servidor que tem o mesmo nome do arquivo que você tem uma versão e deseja fazer o download (exceto .zsyncno final do curso).

Caso alguém queira fazer isso para 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), veja a regra de onde os .zsyncarquivos estão localizados :

  • As imagens ISO que contêm instaladores atualmente suportados, incluindo ISOs para a versão pontual mais recente das versões LTS e todas as ISOs para versões LTS atualmente suportadas, estão localizadas em:

    http://releases.ubuntu.com/

  • Imagens ISO para versões em fim de vida (que você não deve usar de qualquer maneira) ou versões pontuais 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 role para baixo para ver a lista completa de arquivos (ou pesquisar na página .zsync). Em seguida, copie o URL e cole-o no zsynccomando

Use em "Atualizando"

Você também pode usar zsyncpara "atualizar" um ISO para outro. 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 versões de pontos (como 12.04 LTS para 12.04.1 LTS), ele não precisará baixar tanto. Essa é uma excelente maneira de obter um novo release de ponto de maneira rápida e eficiente.

Apenas renomeie o arquivo antigo para que ele tenha o mesmo nome do novo arquivo e execute zsynccomo acima.

BitTorrent

Quando sua conexão com a Internet tem uma alta taxa de erros, o BitTorrent geralmente é uma das melhores maneiras de baixar arquivos de forma confiável. Os arquivos são divididos em vários pequenos pedaços, e cada um é baixado e verificado para ver se é realmente real. (As peças individuais podem ser baixadas de computadores diferentes, o que permite ao BitTorrent evitar sobrecarregar um servidor central e atingir velocidades muitas vezes 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" do BitTorrent para fazer o download. Se você ainda não tem um de sua preferência, para o Windows eu recomendo o BitTornado .

Após o download, recomendo semear alguns, se puder, para retribuir à comunidade. (Com o BitTorrent é de pessoas como você.) Você não precisa fazer isso imediatamente - você pode voltar ao seu programa BitTorrent e propagar mais tarde. Você pode até encerrá-lo enquanto o download não está concluído e continuar a qualquer momento.

Usando o BitTorrent para corrigir o arquivo que você possui

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

Embora o BitTorrent não seja tão comumente usado para esse fim zsync, o próprio protocolo BitTorrent é tão capaz quanto ele.

Alguns programas BitTorrent farão isso - outros se recusarão ou farão o download do arquivo inteiro a partir do zero - a menos que o arquivo inicial seja exatamente do mesmo tamanho. (Convenientemente, um download corrompido geralmente tem o mesmo tamanho do arquivo correto.)

Coloque a imagem ISO antiga na mesma pasta que o .torrentarquivo. Verifique se o seu programa BitTorrent baixa o torrent por lá. Ele verificará se o seu arquivo atual está bom. Quando vê que algumas partes estão erradas, 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.

Eliah Kagan
fonte
15
Esta é uma resposta bastante épica.
Nan13
@ Anne Obrigado! Aliás, se você souber mais detalhes do que eu forneci sobre o uso do BitTorrent para reparar arquivos pré-existentes, edite-o para fornecer melhores informações sobre isso (se desejar).
Eliah Kagan
Uau ... Agora isso é cerca de 10x a resposta que eu estava esperando! Obrigado! Faça uma tentativa e aceite ou atualize a pergunta com mais alguns detalhes!
Hailwood
-1

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

Mukund
fonte