Becoming a mirror for Debian USB/CD/DVD images
To become a Debian CD Image mirror site, you need a Linux or Unix-like machine with a permanent, reliable connection to the Internet. Debian CD mirrors hold .iso images for CDs and DVDs of various sizes, files for jigdo (.jigdo and .template), BitTorrent files (.torrent) and verification files for the images (SHA512SUMS* and SHA256SUMS*).
- Master site
- Mirroring using HTTP/FTP is discouraged
- Mirroring using rsync is acceptable
- Mirroring using jigdo-lite is discouraged
- Mirroring using jigdo-mirror is recommended
- How to become a push mirror
- Excluding files from mirroring
- Naming conventions and size requirements for .iso images
- Registering the mirror
Master site
The URLs of the master site are shown below - however, please consider mirroring from another nearby mirror (mirror lists: HTTP/FTP, rsync) if possible. Access to the master site may be restricted around release time.
Also be aware that a huge amount of data is stored in these directories - read the section below for details on how to cut down the size by excluding certain files.
- Stable images (updated for each stable release):
https://cdimage.debian.org/debian-cd/
rsync://cdimage.debian.org/debian-cd/ - Weekly images:
https://cdimage.debian.org/cdimage/weekly-builds/
rsync://cdimage.debian.org/cdimage/weekly-builds/ - Daily images:
https://cdimage.debian.org/cdimage/daily-builds/
rsync://cdimage.debian.org/cdimage/daily-builds/
Mirroring using HTTP/FTP is discouraged
You should not use FTP or HTTP to update your mirror. These transfer methods have a high failure probability because of the enormous size of the files.
Furthermore, HTTP and FTP do not include integrity checks of the downloaded data, it is more likely that aborted downloads or data corruption will go unnoticed.
Mirroring using rsync is acceptable
The rsync program is a good solution for mirroring. It is less efficient than the other, Debian-specific mirroring solution below, but may be easier to set up. Furthermore, it ensures that all files are transferred correctly and that the metadata (e.g. timestamps) is kept in sync just like the file data.
See the section Excluding files from mirroring for examples of --include and --exclude switches. The list of rsync mirrors is available on a separate page.
Use at least the options --times --links --hard-links --partial --block-size=8192. This will preserve modification time, symlinks and hardlinks, and use a block size of 8192 bytes (most efficient for CD images). When modification time and size are the same, rsync will just leave the file alone, so --times is really obligatory.
Mirroring using jigdo-lite is discouraged
Recent versions of the jigdo-lite program support batch downloading of multiple images. However, we do not recommend to use jigdo-lite to create Debian CD mirrors - use jigdo-mirror instead.
Mirroring using jigdo-mirror is recommended
Actually, this means: Mirror the .iso files using jigdo-mirror, then (if you also want to mirror other types of files, e.g. .jigdo and .template files) run rsync over the directory to fetch the rest. The scripts on this page might help when setting this up.
A lot of people maintain "regular" Debian mirrors (debian/), or just have such a mirror nearby. This means that they already have the .debs that are included in the USB/CD/DVD images. The obvious question is -- why can't we use those same files in the USB/CD/DVD images?
jigdo-mirror is a program that enables one to generate a set of Debian USB/CD/DVD images using the files from a "normal" mirror, plus a few extra jigdo template files.
Firstly, you need the jigdo template files. See the jigdo information page for links. Fetch the files for each architecture you wish to build images for.
Create ~/.jigdo-mirror file to configure the program. This is an example:
jigdoDir="/where/you/keep/mirrors/debian-cd/current/jigdo" imageDir="/where/you/keep/mirrors/debian-cd/current/images" tmpDir="/where/you/keep/mirrors/debian-cd/current/images" debianMirror="file:/where/you/keep/mirrors/debian" include='i386/|sparc/|powerpc/|source/'; exclude='-1\.'
The include and exclude variables contain the list of architectures you wish to create images for (regular expressions, rather). For more information, see the jigdo-mirror manual page or the source itself (it's a shell script with a lot of comments).
After you've configured it, simply run jigdo-mirror and it will do everything on its own. It will make a lot of output and probably take a while, so we suggest that you make steps to handle that (run it in screen, redirect the output into a file etc).
How to become a push mirror
Whenever new images are available, the master site can send a message to its mirrors and make them start updating immediately. This way, the new data is "pushed" out rather than "pulled" by the mirrors during their next daily update, which leads to faster propagation of new image releases.
If you want your mirror to be part of this update system, have a look at this page.
Excluding files from mirroring
To reduce the amount of storage required by your Debian CD mirror, you can exclude certain files from being mirrored. The following instructions include command line switches for rsync, but might help you even if you use a different tool for mirroring. With rsync, --include and --exclude switches are considered in order of appearance, and the first switch whose file pattern matches determines whether the file is excluded or included.
- Exclude source code:
--exclude=source/
This will prevent images containing source code from being mirrored. Note that some people consider it inappropriate to offer binaries of GPL-licensed programs on a server without also offering the programs' source code on the same server. - Exclude full images:
--include='*netinst*.iso'
--exclude='*.iso'
Exclude all full USB/CD/DVD image sets for all architectures, but mirror the net-install .iso images. We recommend always to mirror these small images: Relative to their size, they are extremely useful! - Exclude full images for non-i386 architectures:
--include='*netinst*.iso'
--include='i386/**.iso' --exclude='*.iso'
As above, but do include all USB/CD/DVD images for the i386 architecture. - Exclude full images, except for i386 CDs 1 to
3:
--include='*netinst*.iso' --include='i386/**-[1-3].iso'
--exclude='*.iso'
The full set of i386 images may still take too much space for you if it includes DVD and dual-layer DVD images. This excludes all .iso images except for the net-install images and the first three i386 DVDs. - Exclude multiple architectures except i386:
--exclude=alpha/ --exclude=arm/ --exclude=hppa/ --exclude=hurd/
--exclude=ia64/ --exclude=m68k/ --exclude=mips/ --exclude=mipsel/
--exclude=powerpc/ --exclude=s390/ --exclude=sh/
--exclude=sparc/
Only include the full set of files for i386, do not include any .jigdo, .iso etc files whatsoever for the other architectures.
Check the architecture list before mirroring - the list changes and these examples may be out of date!
Naming conventions and size requirements for .iso images
The different variants of .iso images are distinguishable by their names, allowing you to restrict the types of images you mirror:
- *-netinst.iso: One image for each architecture, up to 500 MB
- *-dvd.iso (single-layer DVDs): Multiple images, each up to 4482 MB large. For buster, there are up to 16 DVD images per architecture. Debian servers provide only a small subset of DVD images in .iso form for direct download: 3 for amd64, 3 for i386 and 1 each for other architectures. The remaining images are only provided in jigdo form.
- *-bd.iso (single-layer Blu-Rays): As above, except that individual images are up to 23 GB in size. These images are only available as jigdo files for a limited set of architectures (amd64 and i386) and source.
- *-dlbd.iso (dual-layer Blu-Rays): As above, except that individual images are up to 48 GB in size. These images are only available as jigdo files for a limited set of architectures (amd64 and i386) and source.
- *-STICK16GB*.iso (16GB USB images): As above, except that individual images are up to 16 GB in size. These images are only available as jigdo files for a limited set of architectures (amd64 and i386).
Registering the mirror
To make your CD image mirror useful to a wider audience, you can register it in our mirror list such as this one or this one. However, since full images are large files, this might cause you many gigabytes of network traffic per day.
You can register your mirror either by filling out the mirror submission form (note that the CDImage-* fields are the important ones), or by sending an e-mail to debian-cd@lists.debian.org.
We appreciate all new CD image mirrors. Thanks in advance!