Baixando ISOs-Linux em altíssima velocidade
Baixar as ISOs de uma distro sempre foi algo devagar e ineficiente. Veja uma ferramenta que agiliza extremamente essa tarefa. Jigdo é direcionado para a distribuição e obtenção de ISOs de forma fácil, rápida e muito eficiente. Este artigo descreve porque você usar jigdo, como funciona e como usá-lo para obter e (maravilha!) fazer o update de uma ISO.
Parte 4: Como Jigdo funciona
Você não precisa conhecer esta parte para baixar as ISOs, mas pode ajudar a desmistificar como o jigdo funciona. Se não estiver interessado em detalhes, pode passar diretamente para a próxima página.
Daí jigdo-file recebe dois inputs: a imagem de CD completa (portanto a ISO precisa já estar pronta) e um conjunto de arquivos que podem ou não estar na imagem. Veja uma visualização de um input para o jigdo-file:
O dado "x" (informação de diretórios, etc) dentro da ISO está comprimida e escrita no arquivo .template. Finalmente, qualquer arquivo dentro da ISO que não foi indicada como arquivos perdidos (como file-2) também é comprimido e escrito no arquivo .template. Este arquivo é mostrado como "c" na visualização do arquivo .template.
Arquivos perdidos fornecidos para o jigdo-file que não são encontrados na ISO (como file-4) são ignorados.
md5-0=http://algum-mirror.org/file-0
md5-1=http://algum-mirror.org1/file-1
md5-2=http://algum-mirror.org2/file-2
md5-3=http://algum-mirror.org/file-3
O arquivo .jigdo simplesmente fornece um mapeamento entre o md5sum de um arquivo dentro de uma ISO e a URL de download deste arquivo. Existem outras coisas dentro do arquivo .jigdo, e se vou olhar dentro dele, verá que o arquivo .jigdo tem o mesmo formato de um arquivo .ini. Ele seria auto-explicativo, mas se quiser detalhes bem simples, veja a documentação do jigdo.
O formato mostrado acima não é extremamente parecido com o que você veria em um típico arquivo .jigdo, mas é muito próximo. Se desejar, olhe a seção [Section] no final do arquivo .jigdo, e verá exatamente qual é a diferença entre o real e o mostrado acima.
Preparando a ISO para download
Uma imagem de CD é um sistema de arquivos chamado iso9660, mas aqui podemos falar tranquilamente em uma imagem de CD como sendo um arquivo grande chamado "imagem ISO" (cerca de 650 MB) que contém arquivos de várias filas. Por exemplo, se o CD contém um arquivo com 567 bytes chamado LEIAME, a imagem ISO pode conter o conteúdo do arquivo LEIAME entre as filas 20480000 e 20480567. Você pode visualizar uma imagem de CD como:
--------------------------------------------------------
ISO Image: |xxxx| file-0 |xx| file-1 |xxx| file-2 |x| file-3 |xxxx|
--------------------------------------------------------
As áreas "x" da imagem contém informações sobre diretórios, nomes de disco, blocos de boot etc.
Daí jigdo-file recebe dois inputs: a imagem de CD completa (portanto a ISO precisa já estar pronta) e um conjunto de arquivos que podem ou não estar na imagem. Veja uma visualização de um input para o jigdo-file:
--------------------------------------------------------
ISO Image: |xxxx| file-0 |xx| file-1 |xxx| file-2 |x| file-3 |xxxx|
--------------------------------------------------------
---------- ---------- ----------
Loose Files: | file-0 | | file-1 | | file-3 |
---------- ---------- ----------
Como mágica, jigdo-file encontra quais entre os arquivos perdidos estão na ISO e suas filas dentro do arquivo ISO. Então, jigdo-file produz dois arquivos: um arquivo ".template" e um arquivo ".jigdo".
O arquivo template
Recebendo um input de uma imagem ISO e um conjunto de arquivos que podem ou não estar na imagem ISO, jigdo-file fornece como saída um arquivo .template para esta imagem ISO. Aqui está o formato do arquivo .template:
--------------------------------------------------------
.template: |xxxx| md5-0 |xx| md5-1 |xxx|cccccccc|x| md5-3 |xxxx|
--------------------------------------------------------
O programa jigdo-file identificou que os arquivos file-o, file-1 e file-3 estavam contidos na imagem ISO. Então removeu o conteúdo desses arquivos e substituiu o md5 'checksum' de cada arquivo (md-5-0, md5-1, etc).
O dado "x" (informação de diretórios, etc) dentro da ISO está comprimida e escrita no arquivo .template. Finalmente, qualquer arquivo dentro da ISO que não foi indicada como arquivos perdidos (como file-2) também é comprimido e escrito no arquivo .template. Este arquivo é mostrado como "c" na visualização do arquivo .template.
Arquivos perdidos fornecidos para o jigdo-file que não são encontrados na ISO (como file-4) são ignorados.
O arquivo .jigdo
Recebendo um input de uma ISO e um conjunto de arquivos perdidos que podem ou não estar na ISO, jigdo-file fornece como saída um arquivo .jigdo para esta ISO. Os arquivos .jigdo Debian são zipados (gzip), portanto é preciso usar zcat ou zless para visualizá-los. Veja como um arquivo .jigdo 'parece' após descomprimir:md5-0=http://algum-mirror.org/file-0
md5-1=http://algum-mirror.org1/file-1
md5-2=http://algum-mirror.org2/file-2
md5-3=http://algum-mirror.org/file-3
O arquivo .jigdo simplesmente fornece um mapeamento entre o md5sum de um arquivo dentro de uma ISO e a URL de download deste arquivo. Existem outras coisas dentro do arquivo .jigdo, e se vou olhar dentro dele, verá que o arquivo .jigdo tem o mesmo formato de um arquivo .ini. Ele seria auto-explicativo, mas se quiser detalhes bem simples, veja a documentação do jigdo.
O formato mostrado acima não é extremamente parecido com o que você veria em um típico arquivo .jigdo, mas é muito próximo. Se desejar, olhe a seção [Section] no final do arquivo .jigdo, e verá exatamente qual é a diferença entre o real e o mostrado acima.
Obrigado pela dica