3. Come funziona jigdo (facoltativo)

Non c'è bisogno di conoscere questo materiale per scaricare ISO Debian. Ma ci può aiutare a scoprire come jigdo funziona. Se non si è interessati nei dettagli andare semplicemente avanti alla la Sezione 4.

3.1. Prepare l'ISO per il trasferimento

Un'immagine CD è un file system denominato iso9660, ma per questa discussione possiamo parlare in modo sicuro di un immagine cd come un grande file denominato "immagine ISO" (circa 650MB) che contiene i file in varie posizioni. Per esempio, se un cd contiene un file di 567 byte chiamato README, l'immagine ISO potrebbe avere i contenuti del file README fra le posizioni 20480000 e 20480567. Si può visualizzare un'immagine CD come:

                    --------------------------------------------------------
      ISO Image:    |xxxx| file-0 |xx| file-1 |xxx| file-2 |x| file-3 |xxxx|
                    --------------------------------------------------------
      

Le aree di "x" dell'immagine contengono cose come le informazioni di una direcory, il riempimento zero, il nome del disco, il settore di boot, ecc.

jigdo-file prende due cose come input: l'immagine CD completa (è necessario che l'ISO sia già fatta) e un insieme di file che possono o non possono essere nell'immagine. Ecco una visualizzazione dell'input del 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 |    | file-4 |
                         ----------  ----------              ----------    ----------
      

Con magia, jigdo-file scopre quali dei file sciolti sono contenuti nell'immagine ISO e le loro posizioni all'interno del file ISO. Dà in output due file: un file .template e un file .jigdo

3.2. Il file .template

Dati in input un'immagine ISO e una serie di file che possono o non possono essere nell'immagine ISO, il jigdo-file dà in output un file .template per quell'immagine ISO. Ecco a cosa assomiglia il file .template

                    --------------------------------------------------------
      .template:    |xxxx| md5-0  |xx| md5-1  |xxx|cccccccc|x| md5-3  |xxxx|
                    --------------------------------------------------------
      

Il jigdo-file scoprirà che i file-0, file-1 e file-3 erano contenuti nell'immagine ISO. Rimossi i contenuti di questi file li sostituisce con il checksum md5 del relativo file (md5-0, md5-1, ecc).

I dati "x" (informazioni directory, riempimento zero, etc.) all'interno dell'immagine ISO sono compressi e riscritti nel file .template. Infine, tutti i file all'interno dell'immagine ISO che non sono stati forniti come file sciolti (tipo file-2) sono compressi e scritti sul file .template. Ciò è indicato come dati "c" nella visualizzazione del file .template.

I file sciolti forniti a jigdo-file che non sono stati trovati nell' immagine ISO (come file-4) sono ignorati.

3.3. Il file .jigdo

Dando in input un'immagine ISO e una serie di file sciolti i quali possono o no essere nella immagine ISO, jigdo-file genera il file .jigdo relativo. I file .jigdo di Debian sono compressi con gzip, quindi c'è bisogno di usare zcat o zless per vederlo. Ecco come appare un file .jigdo quando viene decompresso:

      md5-0=http://somemirror.org/file-0
      md5-1=http://somemirror.org/file-1
      md5-2=http://somemirror.org/file-2
      md5-3=http://somemirror.org/file-3
      

Il file .jigdo fornisce semplicemente una corrispondenza tra md5sum di un file all'interno dell'immagine ISO e la URL di download di questo file. Ci sono altre cose all'interno del file .jigdo, e se si guarda all'interno si vede che il jigdo-file ha lo stesso formato di un file ".ini". Dovrebbe essere autoesplicativo, ma se si vogliono maggiori dettagli è necessario consultare la documentazione di jigdo.

Il formato sopra descritto non è uguale a quello che si potrebbe vedere in un tipico file .jigdo, ma è molto simile. Osservando la sezione [Servers] in fondo al file .jigdo, si vedrà esattamente la differenza fra ciò che si è scritto sopra e un reale file .jigdo.

3.4. Download dell'immagine

Una volta usato jigdo-file per generare il file .jigdo e .template per un'immagine ISO, ognuno può usare jigdo-lite per scaricare quell'immagine. jigdo-lite scarica tutti i files dell'ISO di Debian usando wget, li assembla e crea una copia al volo dell'immagine ISO.