JIGDO

Jigsaw (Puzzle) Downloader

Debian GNU/Linux heeft verschillende download opties beschikbaar, van de standaard ISO downloads via FTP/HTTP en BitTorrent tot het minder bekende jigdo. jigdo of Jigsaw-Downloader download in tegenstelling tot the andere methodes géén volledig ISO bestand, maar de verschillende paketten van deze ISO individueel en past ze op het einde als een puzzle in elkaar.

jigdo komt niet standaard geïnstalleerd op een Debian installatie, dus dit moet je eerst manueel installeren: $ sudo apt install jigdo-file
Figuur 1. $ sudo apt install jigdo-file
$ sudo apt install jigdo-file

jigdo is heel gamakkelijk om te gebruiken. Er zijn in princiepe 2 methodes om dit te doen.

URL van bestanden opgeven:

Je kunt jigdo het URL van 1 of meerdere .jigdo bestanden geven:

$ jigdo-lite https://cdimage.debian.org/debian-cd/current/amd/jigdo-dvd/debian-10.5.0-amd-DVD-{1,2,3}.jigdo
Figuur 2. $ jigdo-lite https://cdimage.debian.org/debian-cd/current/amd/jigdo-dvd/debian-10.5.0-amd-DVD-{1,2,3}.jigdo
$ jigdo-lite https://cdimage.debian.org/debian-cd/current/amd/jigdo-dvd/debian-10.5.0-amd-DVD-{1,2,3}.jigdo

De accolades op het einde met 1,2,3 ertussen geven aan dat ik DVD-1, DVD-2 en DVD-3 wil downloaden. Wil ik enkel DVD-1 downloaden dan gebruik ik het commando : jigdo-lite https://cdimage.debian.org/debian-cd/current/amd/jigdo-dvd/debian-10.5.0-amd-DVD-1.jigdo

Vanaf hier moeten we nog enkele vragen beantwoorden:

Als er reeds een oudere versie van een ISO gedownload is, kunnen we de lokatie van dit bestand hier opgeven. jigdo zal dan kijken of er bestanden uit dit vorige ISO bestand gebruikt kunnen worden voor het nieuwe bestand (dan moeten deze niet nog eens gedownload worden).

Ik heb deze niet, dus druk ik gewoon op ENTER.

Vervolgens moeten we het URL van een mirror of spiegelserver opgeven, of op ENTER drukken om de standaard server http://deb.debian.org/debian/ te gebruiken.

Het .jigdo bestand voor deze ISO's bevat ook bestanden die op de non-US1 servers staan, hiervoor moet ik een andere URL opgeven.

http://ftp.be.debian.org/debian/

jigdo begint nu het het downloaden van alle nodige paketten van de opgegeven servers. We kunnen ondertussen een kopje koffie gaan drinken of de hond uitlaten, en als we terugkomen is jigdo hopelijk klaar met het downloaden.

jigdo is klaar met het downloaden en samenvoegen van de laatste ISO uit de lijst. De MD5 checksum van het bestand is correct, maar zoals jigdo aangeeft is dit geen "veilige" hash en is het beter om ook nog een andere verificatie uit te voeren.

Laten we een kijken op de site van Debian of we daar andere checksums kunnen vinden:

Hier zien we oa. verschillende checksums en de .jigdo en .template bestanden die jigdo nodig heeft om alles te downloaden (je kun ipv het opgeven vah het URL naar deze .jigdo bestanden deze ook downloaden en ze dan als invoer gebruiken voor jigdo.

Om te controleren gaan we de "beste" SHA checksum gebruiken, daarom downloaden we SHA512SUMS en SHA512SUMS.sign.

Het eerste bestand is gewoon een tekstbestand met de SHA512 checksum waardes van de ISO bestanden en het .sign bestand is om te controleren of het SHA512SUMS bestand niet is aangepast door onbevoegden (man-in-the-middle attacj bijvoorbeeld).

Voor deze controle hebben we het programma gnupg (gpg2) nodig, dit moet je eerst installeren met $ sudo apt install gnupg2.

Daarna moeten we de signing-keys die worden gebruikt om de bestanden te "tekenen" downloaden en toevoegen aan de sleutelbos:

Debian heeft momenteel 3 signing-keys:
pub   4096R/64E6EA7D 2009-10-03
      Key fingerprint = 1046 0DAD 7616 5AD8 1FBC  0CE9 9880 21A9 64E6 EA7D
uid                  Debian CD signing key <debian-cd@lists.debian.org>

pub   4096R/6294BE9B 2011-01-05
      Key fingerprint = DF9B 9C49 EAA9 2984 3258  9D76 DA87 E80D 6294 BE9B
uid                  Debian CD signing key <debian-cd@lists.debian.org>
sub   4096R/11CD9819 2011-01-05

pub   4096R/09EA8AC3 2014-04-15
      Key fingerprint = F41D 3034 2F35 4669 5F65  C669 4246 8F40 09EA 8AC3
uid                  Debian Testing CDs Automatic Signing Key <debian-cd@lists.debian.org>
sub   4096R/6BD05CFB 2014-04-15

We gaan deze alle 3 toevoegen:

$ gpg --keyserver keyring.debian.org --recv-keys 64E6EA7D
$ gpg --keyserver keyring.debian.org --recv-keys 6294BE9B
$ gpg --keyserver keyring.debian.org --recv-keys 09EA8AC3

Nu kunnen we het SHA512SUMS bestand controleren:

$ gpg2 --verify SHA512SUMS.sign
gpg: assuming signed data in 'SHA512SUMS'
gpg: Signature made zo 02 aug 2020 04:01:34 CEST
gpg:                using RSA key DF9B9C49EAA9298432589D76DA87E80D6294BE9B
gpg: checking the trustdb
gpg: marginals needed: 3  completes needed: 1  trust model: pgp
gpg: depth: 0  valid:   1  signed:   1  trust: 0-, 0q, 0n, 0m, 0f, 1u
gpg: depth: 1  valid:   1  signed:   0  trust: 1-, 0q, 0n, 0m, 0f, 0u
gpg: Good signature from "Debian CD signing key <debian-cd@lists.debian.org>" [full]
De handtekening van het bestand is correct, ik heb deze sleutel eerst met mijn eigen sleutel ondertekend, doe je dit niet dan krijg je de volgende uitvoer van gnupg:
gpg: assuming signed data in 'SHA512SUMS'
gpg: Signature made zo 02 aug 2020 04:01:34 CEST
gpg:                using RSA key DF9B9C49EAA9298432589D76DA87E80D6294BE9B
gpg: Good signature from "Debian CD signing key <debian-cd@lists.debian.org>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: DF9B 9C49 EAA9 2984 3258  9D76 DA87 E80D 6294 BE9B

Nu we weten dat het SHA512SUMS de correcte checksum waardes bevat, kunnen we deze checksums gaan vergelijken met deze van de gedownloade ISO bestanden.

Het programma dat we gebruiken om deze checksum te berekenen heet sha512sum je kunt dit op verschillende manieren controleren. Je kunt 1 enkel bestand controleren en de uitvoer vergelijken met wat er in het SHA512SUMS bestand staat:

sha512sum debian-10.5.0-amd64-DVD-1.iso

Dit zal enige tijd in beslag nemen (hoe beter de hash (sha512 is beter dan sha256) hoe langer het duurt om deze te berekenen, maar hoe zekerder je bent dat deze correct is.

de uitvoer is dan (in dit geval) :
a577aa8b7bd798dc20120c89432a2485d1cb10e3b2ebe987a91265ca028b5293ccd32f43bb1578ba3cd59390b8d77fa3c5ecfa8239974f2772a437085d8182f8  debian-10.5.0-amd64-DVD-1.iso

Een betere methode is door gebruik te maken van het SHA512SUMS bestand en alle bestanden in 1 keer te controleren:

sha512sums -c SHA512SUMS

Dit duurt wel véél langer omdat je nu niet 1 ISO bestand maar alle gedownloade bestanden (ISO, .jigdo, .template) controleert. De uitvoer kan er dan zo uitzien:
Debian-10.5.0-amd64-DVD-1.iso: OK
debian-10.5.0-amd64-DVD-1.jigdo: OK
debian-10.5.0-amd64-DVD-1.template: OK
sha512sum: debian-10.5.0-amd64-DVD-10.iso: No such file or directory
debian-10.5.0-amd64-DVD-10.iso: FAILED open or read
sha512sum: debian-10.5.0-amd64-DVD-10.jigdo: No such file or directory
debian-10.5.0-amd64-DVD-10.jigdo: FAILED open or read
sha512sum: debian-10.5.0-amd64-DVD-10.template: No such file or directory
debian-10.5.0-amd64-DVD-10.template: FAILED open or read

Zoals je kunt zien zijn de 3 bestanden voor ISO 1 correct, en omdat ik DVD-10 niet gedownload heb2 wordt daarvoor een foutmelding gegeven. Indien je alle DVD ISO bestanden gedownload hebt, kun je dus met dit ene commando alle 16 bestanden controleren.

Een van de redenen waarom je jigdo zou gebruiken en niet het downloaden vanaf de website met een download manager zoals aria2 of wget is dat Debian een 16GB ISO bestand aanbied, speciaal voor op een USB-Stick the branden. Deze kun je enkel via jigdo downloaden.

jigdo-lite debian-testing-amd64-STICK16GB-1.jigdo

De 16GB USB ISO is momenteel enkel beschikaar voor Debian Testing (Bullseye):

Ook hiervoor worden weer SHA512 checksum bestanden bijgeleverd.

Meer informatie kun je altijd terugvinden in de manpages of de infopages

1 Er zijn bepaalde programma's en libraries die in de VS als "illegaal" beschouwd worden (libdvdcss is hiervan een goed voorbeeld, deze library laat toe om DVD's met kopieerbeveiliging te lezen en is dus nodig om de meeste koop DVD's af te kunnen spelen. in de VS is dit echter illegaal en mag deze library niet op servers in de VS voorkomen).
2 Debian 10.5.0 bestaat momenteel uit 16 DVD iso bestanden.